| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_get_refuse_reason_view_form |
applicant.get.refuse.reason.form | applicant.get.refuse.reason | form | New |
applicant_hired_template |
applicant_hired_template | ir.ui.view | qweb | New |
applicant_send_mail_view_form |
applicant.send.mail | form | New | |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | list | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.list | hr.applicant.category | list | New |
hr_applicant_refuse_reason_view_form |
Applicant refuse reason form | hr.applicant.refuse.reason | form | New |
hr_applicant_refuse_reason_view_tree |
Applicant refuse reason list | hr.applicant.refuse.reason | list | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_form_interviewer |
hr.applicant | xpath | Inherits hr_applicant_view_form | |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.list.activity | hr.applicant | list | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_job_platform_form |
hr.job.platform.form | hr.job.platform | form | New |
hr_job_platform_tree |
hr.job.platform.list | hr.job.platform | list | New |
hr_job_search_view |
hr.job.search | hr.job | xpath | Inherits hr_recruitment.view_job_filter_recruitment |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | xpath | Inherits hr.view_hr_job_form |
hr_job_view_tree_inherit |
hr.job | field | Inherits hr.view_hr_job_tree | |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_kanban_view_applicant_talent_pool |
hr.applicant | xpath | Inherits hr_recruitment.hr_kanban_view_applicant | |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.list | hr.recruitment.degree | list | New |
hr_recruitment_source_tree |
hr.recruitment.source.list | hr.recruitment.source | list | New |
hr_recruitment_source_view_search |
hr.recruitment.source.view.search | hr.recruitment.source | search | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.list | hr.recruitment.stage | list | New |
hr_talent_pool_view_form |
hr.talent.pool.view.form | hr.talent.pool | form | New |
hr_talent_pool_view_kanban |
hr.talent.pool.view.kanban | hr.talent.pool | kanban | New |
hr_talent_pool_view_list |
hr.talent.pool.view.list | hr.talent.pool | list | New |
ir_attachment_hr_recruitment_list_view |
ir.attachment | list | New | |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
job_add_applicants_view_form |
job.add.applicants.view.form | job.add.applicants | form | New |
mail_notification_light_without_background |
mail_notification_light_without_background | ir.ui.view | qweb | Inherits mail.mail_notification_light |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
talent_pool_add_applicants_view_form |
talent.pool.add.applicants.view.form | talent.pool.add.applicants | form | New |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | xpath | Inherits hr.view_job_filter |
applicant_ids
Many2many → hr.applicant
applicant_without_email
Text
compute='_compute_applicant_without_email'
string='Applicant(s) not having email'
attachment_ids
Many2many → ir.attachment
bypass_search_access=True
compute='_compute_from_template_id'
readonly=False
store=True
string='Attachments'
args: 'ir.attachment'
duplicate_applicant_ids
Many2many → hr.applicant
compute='_compute_duplicate_applicant_ids'
readonly=False
relation='applicant_get_refuse_reason_duplicate_applicants_rel'
store=True
string='Duplicate Applications'
args: 'hr.applicant'
duplicate_applicant_ids_domain
Binary
compute='_compute_duplicate_applicant_ids_domain'
duplicates
Boolean
string='Refuse Duplicate Applications'
duplicates_count
Integer
compute='_compute_duplicate_applicant_ids_domain'
args: 'Duplicates Count'
refuse_reason_id
Many2one → hr.applicant.refuse.reason
default=_default_refuse_reason_id
required=True
args: 'hr.applicant.refuse.reason', 'Refuse Reason'
scheduled_date
Char
compute='_compute_from_template_id'
help='send emails after that date. This date is considered as being in UTC timezone.'
readonly=False
store=True
args: 'Scheduled Date'
send_mail
Boolean
compute='_compute_send_mail'
precompute=True
readonly=False
store=True
args: 'Send Email'
template_id
Many2one → mail.template
compute='_compute_template_id'
domain="[('model', '=', 'hr.applicant')]"
precompute=True
readonly=False
store=True
string='Email Template'
args: 'mail.template'
action_refuse_reason_apply(self)
applicant_ids
Many2many → hr.applicant
context={'active_test': False}
required=True
string='Applications'
args: 'hr.applicant'
attachment_ids
Many2many → ir.attachment
bypass_search_access=True
readonly=False
store=True
string='Attachments'
args: 'ir.attachment'
author_id
Many2one → res.partner
default=<expr>
required=True
args: 'res.partner', 'Author'
action_send(self)
applicant_id
Many2one → hr.applicant
index='btree_not_null'
ondelete='set null'
string='Applicant'
args: 'hr.applicant'
create(self, vals_list)
default_get(self, fields)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
index=True
args: 'Active'
applicant_notes
Html
applicant_properties
Properties
copy=True
definition='job_id.applicant_properties_definition'
args: 'Properties'
application_count
Integer
compute='_compute_application_count'
help='Applications with the same email or phone or mobile'
application_status
Selection
compute='_compute_application_status'
search='_search_application_status'
args: [('ongoing', 'Ongoing'), ('hired', 'Hired'), ('refused', 'Refused'), ('archived', 'Archived')]
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
tracking=True
args: 'Availability'
campaign_id
Many2one
ondelete='set null'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
compute='_compute_company'
readonly=False
store=True
tracking=True
args: 'res.company', 'Company'
create_date
Datetime
readonly=True
args: 'Applied on'
date_closed
Datetime
compute='_compute_date_closed'
copy=False
readonly=False
store=True
tracking=True
args: 'Hire Date'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
compute_sudo=True
string='Days to Close'
day_open
Float
compute='_compute_day'
compute_sudo=True
string='Days to Open'
delay_close
Float
aggregator='avg'
compute='_compute_delay'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
compute='_compute_department'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
tracking=True
args: 'hr.department', 'Department'
email_from
Char
compute='_compute_partner_phone_email'
copy=True
index='trigram'
inverse='_inverse_partner_email'
size=128
store=True
string='Email'
email_normalized
Char
index='trigram'
emp_is_active
Boolean
related='employee_id.active'
string='Employee Active'
employee_id
Many2one → hr.employee
copy=False
help='Employee linked to the applicant.'
index='btree_not_null'
string='Employee'
args: 'hr.employee'
employee_name
Char
readonly=False
related='employee_id.name'
string='Employee Name'
tracking=False
interviewer_ids
Many2many → res.users
copy=False
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
index=True
string='Interviewers'
tracking=True
args: 'res.users', 'hr_applicant_res_users_interviewers_rel'
is_applicant_in_pool
Boolean
compute='_compute_is_applicant_in_pool'
search='_search_is_applicant_in_pool'
is_pool_applicant
Boolean
compute='_compute_is_pool'
job_id
Many2one → hr.job
copy=False
domain="company_id and [('company_id', '=', company_id)] or []"
index=True
tracking=True
args: 'hr.job', 'Job Position'
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'In Progress'), ('done', 'Ready for Next Stage'), ('waiting', 'Waiting'), ('blocked', 'Blocked')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
related='stage_id.legend_normal'
string='Kanban Ongoing'
legend_waiting
Char
related='stage_id.legend_waiting'
string='Kanban Waiting'
linkedin_profile
Char
index='btree_not_null'
args: 'LinkedIn Profile'
medium_id
Many2one
help='This displays how the applicant has reached out, e.g. via Email, LinkedIn, Website, etc.'
ondelete='set null'
meeting_display_date
Date
compute='_compute_meeting_display'
meeting_display_text
Char
compute='_compute_meeting_display'
meeting_ids
One2many → calendar.event
partner_id
Many2one → res.partner
copy=False
index='btree_not_null'
args: 'res.partner', 'Contact'
partner_name
Char
partner_phone
Char
compute='_compute_partner_phone_email'
copy=True
index='btree_not_null'
inverse='_inverse_partner_email'
size=32
store=True
string='Phone'
partner_phone_sanitized
Char
compute='_compute_partner_phone_sanitized'
index='btree_not_null'
store=True
string='Sanitized Phone Number'
pool_applicant_id
Many2one → hr.applicant
index='btree_not_null'
args: 'hr.applicant'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Evaluation'
probability
Float
refuse_date
Datetime
refuse_reason_id
Many2one → hr.applicant.refuse.reason
string='Refuse Reason'
tracking=True
args: 'hr.applicant.refuse.reason'
salary_expected
Float
aggregator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant'
tracking=True
args: 'Expected'
salary_expected_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant, extra advantages'
tracking=True
args: 'Expected Salary Extra'
salary_proposed
Float
aggregator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation'
tracking=True
args: 'Proposed'
salary_proposed_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation, extra advantages'
tracking=True
args: 'Proposed Salary Extra'
sequence
Integer
default=10
index=True
string='Sequence'
source_id
Many2one
ondelete='set null'
stage_id
Many2one → hr.recruitment.stage
compute='_compute_stage'
copy=False
domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
tracking=True
args: 'hr.recruitment.stage', 'Stage'
talent_pool_count
Integer
compute='_compute_talent_pool_count'
talent_pool_ids
Many2many → hr.talent.pool
comodel_name='hr.talent.pool'
string='Talent Pools'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
user_id
Many2one → res.users
compute='_compute_user'
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
readonly=False
store=True
tracking=True
args: 'res.users', 'Recruiter'
action_archive(self)
action_create_meeting(self)
action_job_add_applicants(self)
action_open_applications(self)
action_open_attachments(self)
action_open_employee(self)
action_send_email(self)
action_talent_pool_add_applicants(self)
action_talent_pool_stat_button(self)
action_unarchive(self)
archive_applicant(self)
copy(self, default=None)
copy_data(self, default=None)
create(self, vals_list)
create_employee_from_applicant(self)
get_empty_list_help(self, help_message)
get_view(self, view_id=None, view_type='form', **options)
link_applicant_to_talent(self)
message_new(self, msg_dict, custom_values=None)
reset_applicant(self)
write(self, vals)
color
Integer
default=_get_default_color
string='Color Index'
name
Char
required=True
args: 'Tag Name'
No public methods.
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Description'
sequence
Integer
copy=False
default=10
template_id
Many2one → mail.template
domain="[('model', '=', 'hr.applicant')]"
string='Email Template'
args: 'mail.template'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
compute_sudo=True
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
applicant_ids
One2many → hr.applicant
groups='hr.group_hr_user'
args: 'hr.applicant', 'employee_id', 'Applicants'
create(self, vals_list)
activity_count
Integer
compute='_compute_activities'
groups='hr_recruitment.group_hr_recruitment_interviewer'
address_id
Many2one → res.partner
default=_default_address_id
domain=<expr>
help="Select the location where the applicant will work. Addresses listed here are defined on the company's contact information."
tracking=True
args: 'res.partner', 'Job Location'
alias_id
Many2one
groups='hr_recruitment.group_hr_recruitment_interviewer'
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
all_application_count
Integer
compute='_compute_all_application_count'
groups='hr_recruitment.group_hr_recruitment_interviewer'
string='All Application Count'
applicant_hired
Integer
compute='_compute_applicant_hired'
groups='hr_recruitment.group_hr_recruitment_interviewer'
string='Applicants Hired'
applicant_properties_definition
PropertiesDefinition
groups='hr_recruitment.group_hr_recruitment_interviewer'
args: 'Applicant Properties'
application_count
Integer
compute='_compute_application_count'
groups='hr_recruitment.group_hr_recruitment_interviewer'
string='Application Count'
application_ids
One2many → hr.applicant
groups='hr_recruitment.group_hr_recruitment_interviewer'
args: 'hr.applicant', 'job_id', 'Job Applications'
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
groups='hr_recruitment.group_hr_recruitment_interviewer'
readonly=True
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
groups='hr_recruitment.group_hr_recruitment_interviewer'
string='Document Count'
employee_count
Integer
compute='_compute_employee_count'
expected_degree
Many2one → hr.recruitment.degree
groups='hr_recruitment.group_hr_recruitment_interviewer'
args: 'hr.recruitment.degree'
expected_employees
Integer
groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
extended_interviewer_ids
Many2many → res.users
compute='_compute_extended_interviewer_ids'
groups='hr_recruitment.group_hr_recruitment_interviewer'
store=True
args: 'res.users', 'hr_job_extended_interviewer_res_users'
favorite_user_ids
Many2many → res.users
default=_get_default_favorite_user_ids
args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
industry_id
Many2one → res.partner.industry
groups='hr_recruitment.group_hr_recruitment_interviewer'
tracking=True
args: 'res.partner.industry', 'Industry'
interviewer_ids
Many2many → res.users
domain="[('share', '=', False), ('company_ids', '=?', company_id)]"
groups='hr_recruitment.group_hr_recruitment_interviewer'
help="The Interviewers set on the job position can see all Applicants in it. They have access to the information, the attachments, the meeting management and they can refuse him. You don't need to have Recruitment rights to be set as an interviewer."
string='Interviewers'
args: 'res.users'
is_favorite
Boolean
compute='_compute_is_favorite'
inverse='_inverse_is_favorite'
job_properties
Properties
definition='company_id.job_properties_definition'
groups='hr_recruitment.group_hr_recruitment_interviewer'
args: 'Properties'
job_source_ids
One2many → hr.recruitment.source
groups='hr_recruitment.group_hr_recruitment_interviewer'
args: 'hr.recruitment.source', 'job_id'
manager_id
Many2one → hr.employee
groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
new_application_count
Integer
compute='_compute_new_application_count'
groups='hr_recruitment.group_hr_recruitment_interviewer'
help='Number of applications that are new in the flow (typically at first step of the flow)'
string='New Application'
no_of_employee
Integer
groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
no_of_hired_employee
Integer
compute='_compute_no_of_hired_employee'
copy=False
groups='hr_recruitment.group_hr_recruitment_interviewer'
help='Number of hired employees for this job position during recruitment phase.'
store=True
string='Hired'
old_application_count
Integer
compute='_compute_old_application_count'
groups='hr_recruitment.group_hr_recruitment_interviewer'
string='Old Application'
open_application_count
Integer
compute='_compute_open_application_count'
groups='hr_recruitment.group_hr_recruitment_interviewer'
help='Number of applications that are still ongoing (not hired or refused)'
string='Open Application Count'
requirements
Text
groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
user_id
Many2one
groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
action_open_activities(self)
action_open_attachments(self)
action_open_employees(self)
create(self, vals_list)
write(self, vals)
email
Char
help="Applications received from this Email won't be linked to a contact.There will be no email address set on the Applicant either."
required=True
name
Char
required=True
regex
Char
help="The regex facilitates to extract information from the subject or body of the received email to autopopulate the Applicant's name field"
create(self, vals_list)
write(self, vals)
name
Char
required=True
translate=True
args: 'Degree Name'
score
Float
default=0
required=True
args: 'Score'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
ondelete='restrict'
args: 'mail.alias', 'Alias ID'
campaign_id
Many2one → utm.campaign
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
has_domain
Char
compute='_compute_has_domain'
job_id
Many2one → hr.job
index=True
ondelete='cascade'
args: 'hr.job', 'Job'
medium_id
Many2one → utm.medium
default=<expr>
args: 'utm.medium'
create_alias(self)
create_and_get_alias(self)
unlink(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Kanban'
hired_stage
Boolean
help='If checked, this stage is used to determine the hire date of an applicant'
args: 'Hired Stage'
is_warning_visible
Boolean
compute='_compute_is_warning_visible'
job_ids
Many2many → hr.job
help='Specific jobs that use this stage. Other jobs will not use this stage.'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
legend_waiting
Char
default=<expr>
required=True
translate=True
args: 'Orange Kanban Label'
name
Char
required=True
translate=True
args: 'Stage Name'
requirements
Text
rotting_threshold_days
Integer
default=0
help='Day count before applicants in this stage become stale. Set to 0 to disable. Changing this parameter will not affect the rotting status/date of resources last updated before this change.'
args: 'Days to rot'
sequence
Integer
default=10
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Email Template'
default_get(self, fields)
active
Boolean
default=True
categ_ids
Many2many → hr.applicant.category
comodel_name='hr.applicant.category'
readonly=False
store=True
string='Tags'
color
Integer
default=_get_default_color
string='Color'
company_id
Many2one → res.company
default=<expr>
string='Company'
tracking=True
args: 'res.company'
description
Html
string='Talent Pool Description'
name
Char
required=True
string='Title'
translate=True
no_of_talents
Integer
compute='_compute_talent_count'
help='The number of talents in this talent pool.'
string='# Talents'
pool_manager
Many2one → res.users
default=<expr>
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
readonly=False
store=True
tracking=True
args: 'res.users', 'Pool Manager'
talent_ids
Many2many → hr.applicant
comodel_name='hr.applicant'
groups='base.group_user'
string='Talent'
action_talent_pool_add_talents(self)
No new fields.
Public methods (1)init(self)
No new fields.
Public methods (0)No public methods.
applicant_ids
Many2many → hr.applicant
required=True
string='Applications'
args: 'hr.applicant'
job_ids
Many2many → hr.job
required=True
string='Job Positions'
args: 'hr.job'
action_add_applicants_to_job(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
job_properties_definition
PropertiesDefinition
No public methods.
module_hr_recruitment_extract
Boolean
string='Send CV to OCR to fill applications'
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
applicant_ids
One2many → hr.applicant
string='Applicants'
args: 'hr.applicant', 'partner_id'
No public methods.
No new fields.
Public methods (0)No public methods.
applicant_ids
Many2many → hr.applicant
domain=['|', ('talent_pool_ids', '!=', False), ('is_applicant_in_pool', '=', False)]
required=True
string='Applicants'
args: 'hr.applicant'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
talent_pool_ids
Many2many → hr.talent.pool
string='Talent Pool'
args: 'hr.talent.pool'
action_add_applicants_to_pool(self)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_get_refuse_reason_view_form |
applicant.get.refuse.reason.form | applicant.get.refuse.reason | form | New |
applicant_send_mail_view_form |
applicant.send.mail | form | New | |
candidate_hired_template |
candidate_hired_template | ir.ui.view | qweb | New |
candidate_send_mail_view_form |
candidate.send.mail | form | New | |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | list | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.list | hr.applicant.category | list | New |
hr_applicant_refuse_reason_view_form |
Applicant refuse reason form | hr.applicant.refuse.reason | form | New |
hr_applicant_refuse_reason_view_tree |
Applicant refuse reason list | hr.applicant.refuse.reason | list | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_form_interviewer |
hr.applicant | xpath | Inherits hr_applicant_view_form | |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.list.activity | hr.applicant | list | New |
hr_candidate_view_calendar |
hr.candidate.view.calendar | hr.candidate | calendar | New |
hr_candidate_view_form |
hr.candidate.view.form | hr.candidate | form | New |
hr_candidate_view_kanban |
hr.candidate.view.kanban | hr.candidate | kanban | New |
hr_candidate_view_search |
hr.candidate.view.search | hr.candidate | search | New |
hr_candidate_view_tree |
hr.candidate.view.list | hr.candidate | list | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_job_platform_form |
hr.job.platform.form | hr.job.platform | form | New |
hr_job_platform_tree |
hr.job.platform.list | hr.job.platform | list | New |
hr_job_search_view |
hr.job.search | hr.job | xpath | Inherits hr_recruitment.view_job_filter_recruitment |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | xpath | Inherits hr.view_hr_job_form |
hr_job_view_tree_inherit |
hr.job | field | Inherits hr.view_hr_job_tree | |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.list | hr.recruitment.degree | list | New |
hr_recruitment_source_tree |
hr.recruitment.source.list | hr.recruitment.source | list | New |
hr_recruitment_source_view_search |
hr.recruitment.source.view.search | hr.recruitment.source | search | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.list | hr.recruitment.stage | list | New |
ir_attachment_hr_recruitment_list_view |
ir.attachment | list | New | |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
mail_notification_light_without_background |
mail_notification_light_without_background | ir.ui.view | qweb | Inherits mail.mail_notification_light |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | xpath | Inherits hr.view_job_filter |
applicant_emails
Text
compute='_compute_applicant_emails'
applicant_ids
Many2many → hr.applicant
applicant_without_email
Text
compute='_compute_applicant_without_email'
string='Applicant(s) not having email'
duplicates
Boolean
duplicates_count
Integer
compute='_compute_duplicates_count'
args: 'Duplicates Count'
refuse_reason_id
Many2one → hr.applicant.refuse.reason
required=True
args: 'hr.applicant.refuse.reason', 'Refuse Reason'
send_mail
Boolean
compute='_compute_send_mail'
readonly=False
store=True
args: 'Send Email'
single_applicant_email
Char
compute='_compute_single_applicant_email'
inverse='_inverse_single_applicant_email'
template_id
Many2one → mail.template
compute='_compute_send_mail'
context={'active_test': True}
domain="[('model', '=', 'hr.applicant')]"
readonly=False
store=True
string='Email Template'
args: 'mail.template'
action_refuse_reason_apply(self)
applicant_ids
Many2many → hr.applicant
context={'active_test': False}
required=True
string='Applications'
args: 'hr.applicant'
attachment_ids
Many2many → ir.attachment
readonly=False
store=True
string='Attachments'
args: 'ir.attachment'
author_id
Many2one → res.partner
default=<expr>
required=True
args: 'res.partner', 'Author'
action_send(self)
applicant_id
Many2one → hr.applicant
index='btree_not_null'
ondelete='set null'
string='Applicant'
args: 'hr.applicant'
candidate_id
Many2one → hr.candidate
compute='_compute_candidate_id'
index='btree_not_null'
ondelete='set null'
readonly=False
store=True
string='Candidate'
args: 'hr.candidate'
create(self, vals_list)
default_get(self, fields)
attachment_ids
Many2many → ir.attachment
readonly=False
store=True
string='Attachments'
args: 'ir.attachment'
author_id
Many2one → res.partner
default=<expr>
required=True
args: 'res.partner', 'Author'
candidate_ids
Many2many → hr.candidate
required=True
string='Candidates'
args: 'hr.candidate'
action_send(self)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
index=True
args: 'Active'
applicant_notes
Html
applicant_properties
Properties
copy=True
definition='job_id.applicant_properties_definition'
args: 'Properties'
application_status
Selection
compute='_compute_application_status'
search='_search_application_status'
args: [('ongoing', 'Ongoing'), ('hired', 'Hired'), ('refused', 'Refused'), ('archived', 'Archived')]
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
readonly=False
related='candidate_id.availability'
campaign_id
Many2one
ondelete='set null'
candidate_id
Many2one → hr.candidate
index=True
required=True
args: 'hr.candidate'
categ_ids
Many2many → hr.applicant.category
compute='_compute_categ_ids'
readonly=False
store=True
string='Tags'
args: 'hr.applicant.category'
color
Integer
related='candidate_id.color'
company_id
Many2one → res.company
compute='_compute_company'
readonly=False
store=True
tracking=True
args: 'res.company', 'Company'
create_date
Datetime
readonly=True
args: 'Applied on'
date_closed
Datetime
compute='_compute_date_closed'
copy=False
readonly=False
store=True
tracking=True
args: 'Hire Date'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
compute_sudo=True
string='Days to Close'
day_open
Float
compute='_compute_day'
compute_sudo=True
string='Days to Open'
delay_close
Float
aggregator='avg'
compute='_compute_delay'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
compute='_compute_department'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
tracking=True
args: 'hr.department', 'Department'
email_from
Char
readonly=False
related='candidate_id.email_from'
email_normalized
Char
related='candidate_id.email_normalized'
emp_is_active
Boolean
related='candidate_id.emp_is_active'
employee_id
Many2one
readonly=False
related='candidate_id.employee_id'
employee_name
Char
related='candidate_id.employee_name'
interviewer_ids
Many2many → res.users
copy=False
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
index=True
string='Interviewers'
tracking=True
args: 'res.users', 'hr_applicant_res_users_interviewers_rel'
job_id
Many2one → hr.job
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
tracking=True
args: 'hr.job', 'Job Position'
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
related='stage_id.legend_normal'
string='Kanban Ongoing'
linkedin_profile
Char
readonly=False
related='candidate_id.linkedin_profile'
medium_id
Many2one
help='This displays how the applicant has reached out, e.g. via Email, LinkedIn, Website, etc.'
ondelete='set null'
meeting_display_date
Date
compute='_compute_meeting_display'
meeting_display_text
Char
compute='_compute_meeting_display'
meeting_ids
One2many → calendar.event
other_applications_count
Integer
compute='_compute_other_applications_count'
compute_sudo=True
partner_id
Many2one
related='candidate_id.partner_id'
partner_name
Char
compute='_compute_partner_name'
compute_sudo=True
inverse='_inverse_name'
search='_search_partner_name'
partner_phone
Char
readonly=False
related='candidate_id.partner_phone'
partner_phone_sanitized
Char
related='candidate_id.partner_phone_sanitized'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Evaluation'
probability
Float
refuse_date
Datetime
refuse_reason_id
Many2one → hr.applicant.refuse.reason
string='Refuse Reason'
tracking=True
args: 'hr.applicant.refuse.reason'
salary_expected
Float
aggregator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant'
tracking=True
args: 'Expected'
salary_expected_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant, extra advantages'
tracking=True
args: 'Expected Salary Extra'
salary_proposed
Float
aggregator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation'
tracking=True
args: 'Proposed'
salary_proposed_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation, extra advantages'
tracking=True
args: 'Proposed Salary Extra'
source_id
Many2one
ondelete='set null'
stage_id
Many2one → hr.recruitment.stage
compute='_compute_stage'
copy=False
domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
tracking=True
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one
readonly=False
related='candidate_id.type_id'
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
user_id
Many2one → res.users
compute='_compute_user'
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
readonly=False
store=True
tracking=True
args: 'res.users', 'Recruiter'
action_create_meeting(self)
action_open_attachments(self)
action_open_employee(self)
action_open_other_applications(self)
action_send_email(self)
archive_applicant(self)
create(self, vals_list)
create_employee_from_applicant(self)
get_empty_list_help(self, help_message)
get_view(self, view_id=None, view_type='form', **options)
init(self)
message_new(self, msg, custom_values=None)
reset_applicant(self)
toggle_active(self)
write(self, vals)
color
Integer
default=_get_default_color
string='Color Index'
name
Char
required=True
args: 'Tag Name'
No public methods.
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Description'
sequence
Integer
copy=False
default=10
template_id
Many2one → mail.template
domain="[('model', '=', 'hr.applicant')]"
string='Email Template'
args: 'mail.template'
No public methods.
accepted_applications_count
Integer
compute='_compute_applications_count'
string='# Accepted Offers'
active
Boolean
default=True
index=True
args: 'Active'
applicant_ids
One2many → hr.applicant
application_count
Integer
compute='_compute_application_count'
applications_count
Integer
compute='_compute_applications_count'
string='# Offers'
attachment_count
Integer
compute='_compute_attachment_count'
string='Number of Attachments'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.candidate')]
string='Attachments'
args: 'ir.attachment', 'res_id'
availability
Date
help='The date at which the applicant will be available to start working'
tracking=True
args: 'Availability'
candidate_properties
Properties
copy=True
definition='company_id.candidate_properties_definition'
args: 'Properties'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
email_from
Char
compute='_compute_partner_phone_email'
index='trigram'
inverse='_inverse_partner_email'
size=128
store=True
string='Email'
email_normalized
Char
index='trigram'
emp_is_active
Boolean
related='employee_id.active'
string='Employee Active'
employee_id
Many2one → hr.employee
copy=False
help='Employee linked to the candidate.'
string='Employee'
args: 'hr.employee'
employee_name
Char
readonly=False
related='employee_id.name'
string='Employee Name'
tracking=False
linkedin_profile
Char
meeting_display_date
Date
compute='_compute_meeting_display'
meeting_display_text
Char
compute='_compute_meeting_display'
meeting_ids
One2many → calendar.event
partner_id
Many2one → res.partner
copy=False
index='btree_not_null'
args: 'res.partner', 'Contact'
partner_name
Char
partner_phone
Char
compute='_compute_partner_phone_email'
index='btree_not_null'
inverse='_inverse_partner_email'
size=32
store=True
string='Phone'
partner_phone_sanitized
Char
compute='_compute_partner_phone_sanitized'
index='btree_not_null'
store=True
string='Sanitized Phone Number'
priority
Selection
compute='_compute_priority'
store=True
string='Evaluation'
args: AVAILABLE_PRIORITIES
refused_applications_count
Integer
compute='_compute_applications_count'
string='# Refused Offers'
similar_candidates_count
Integer
compute='_compute_similar_candidates_count'
help='Candidates with the same email or phone or mobile'
type_id
Many2one → hr.recruitment.degree
user_id
Many2one → res.users
default=<expr>
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
string='Candidate Manager'
tracking=True
args: 'res.users'
action_create_meeting(self)
action_open_applications(self)
action_open_attachments(self)
action_open_employee(self)
action_open_similar_candidates(self)
action_send_email(self)
create_employee_from_candidate(self)
init(self)
write(self, vals)
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
compute_sudo=True
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
candidate_id
One2many → hr.candidate
groups='hr.group_hr_user'
args: 'hr.candidate', 'employee_id', 'Candidate'
create(self, vals_list)
activities_overdue
Integer
compute='_compute_activities'
activities_today
Integer
compute='_compute_activities'
address_id
Many2one → res.partner
default=_default_address_id
domain=<expr>
help="Select the location where the applicant will work. Addresses listed here are defined on the company's contact information."
args: 'res.partner', 'Job Location'
alias_id
Many2one
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
all_application_count
Integer
compute='_compute_all_application_count'
string='All Application Count'
allowed_user_ids
Many2many → res.users
compute='_compute_allowed_user_ids'
readonly=True
args: 'res.users'
applicant_hired
Integer
compute='_compute_applicant_hired'
string='Applicants Hired'
applicant_properties_definition
PropertiesDefinition
application_count
Integer
compute='_compute_application_count'
string='Application Count'
application_ids
One2many → hr.applicant
color
Integer
date_from
Date
help='Is set, update candidates availability once hired for that specific mission.'
date_to
Date
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
readonly=True
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Document Count'
extended_interviewer_ids
Many2many → res.users
compute='_compute_extended_interviewer_ids'
store=True
args: 'res.users', 'hr_job_extended_interviewer_res_users'
favorite_user_ids
Many2many → res.users
default=_get_default_favorite_user_ids
args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
industry_id
Many2one → res.partner.industry
interviewer_ids
Many2many → res.users
domain="[('id', 'in', allowed_user_ids)]"
help="The Interviewers set on the job position can see all Applicants in it. They have access to the information, the attachments, the meeting management and they can refuse him. You don't need to have Recruitment rights to be set as an interviewer."
string='Interviewers'
args: 'res.users'
is_favorite
Boolean
compute='_compute_is_favorite'
inverse='_inverse_is_favorite'
job_properties
Properties
definition='company_id.job_properties_definition'
args: 'Properties'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
new_application_count
Integer
compute='_compute_new_application_count'
help='Number of applications that are new in the flow (typically at first step of the flow)'
string='New Application'
no_of_hired_employee
Integer
compute='_compute_no_of_hired_employee'
copy=False
help='Number of hired employees for this job position during recruitment phase.'
store=True
string='Hired'
old_application_count
Integer
compute='_compute_old_application_count'
string='Old Application'
user_id
Many2one → res.users
default=<expr>
domain="[('share', '=', False), ('id', 'in', allowed_user_ids)]"
help="The Recruiter will be the default value for all Applicants Recruiter's field in this job position. The Recruiter is automatically added to all meetings with the Applicant."
tracking=True
args: 'res.users', 'Recruiter'
action_open_activities(self)
action_open_attachments(self)
action_open_late_activities(self)
action_open_today_activities(self)
close_dialog(self)
create(self, vals_list)
edit_dialog(self)
write(self, vals)
email
Char
help="Applications received from this Email won't be linked to a contact.There will be no email address set on the Applicant either."
required=True
name
Char
required=True
regex
Char
help="The regex facilitates to extract information from the subject or body of the received email to autopopulate the Applicant's name field"
create(self, vals_list)
write(self, vals)
name
Char
required=True
translate=True
args: 'Degree Name'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
ondelete='restrict'
args: 'mail.alias', 'Alias ID'
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
has_domain
Char
compute='_compute_has_domain'
job_id
Many2one → hr.job
ondelete='cascade'
args: 'hr.job', 'Job'
medium_id
Many2one → utm.medium
default=<expr>
args: 'utm.medium'
create_alias(self)
unlink(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Kanban'
hired_stage
Boolean
help='If checked, this stage is used to determine the hire date of an applicant'
args: 'Hired Stage'
is_warning_visible
Boolean
compute='_compute_is_warning_visible'
job_ids
Many2many → hr.job
help='Specific jobs that use this stage. Other jobs will not use this stage.'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
translate=True
args: 'Stage Name'
requirements
Text
sequence
Integer
default=10
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Email Template'
default_get(self, fields)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
candidate_properties_definition
PropertiesDefinition
job_properties_definition
PropertiesDefinition
No public methods.
group_applicant_cv_display
Boolean
implied_group='hr_recruitment.group_applicant_cv_display'
module_hr_recruitment_extract
Boolean
string='Send CV to OCR to fill applications'
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_get_refuse_reason_view_form |
applicant.get.refuse.reason.form | applicant.get.refuse.reason | form | New |
applicant_hired_template |
applicant_hired_template | ir.ui.view | qweb | New |
applicant_send_mail_view_form |
applicant.send.mail | form | New | |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.tree | hr.applicant.category | tree | New |
hr_applicant_refuse_reason_view_form |
Applicant refuse reason form | hr.applicant.refuse.reason | form | New |
hr_applicant_refuse_reason_view_tree |
Applicant refuse reason tree | hr.applicant.refuse.reason | tree | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_form_interviewer |
hr.applicant | xpath | Inherits hr_applicant_view_form | |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.tree.activity | hr.applicant | tree | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_job_search_view |
hr.job.search | hr.job | xpath | Inherits hr_recruitment.view_job_filter_recruitment |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | div | Inherits hr.view_hr_job_form |
hr_job_view_tree_inherit |
hr.job | field | Inherits hr.view_hr_job_tree | |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_kanban |
hr.recruitment.source.kanban | hr.recruitment.source | kanban | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_source_view_search |
hr.recruitment.source.view.search | hr.recruitment.source | search | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_hr_recruitment_list_view |
ir.attachment | tree | New | |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
mail_notification_light_without_background |
mail_notification_light_without_background | ir.ui.view | qweb | Inherits mail.mail_notification_light |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | xpath | Inherits hr.view_job_filter |
applicant_emails
Text
compute='_compute_applicant_emails'
applicant_ids
Many2many → hr.applicant
applicant_without_email
Text
compute='_compute_applicant_without_email'
string='Applicant(s) not having email'
refuse_reason_id
Many2one → hr.applicant.refuse.reason
required=True
args: 'hr.applicant.refuse.reason', 'Refuse Reason'
send_mail
Boolean
compute='_compute_send_mail'
readonly=False
store=True
args: 'Send Email'
template_id
Many2one → mail.template
compute='_compute_send_mail'
domain="[('model', '=', 'hr.applicant')]"
readonly=False
store=True
string='Email Template'
args: 'mail.template'
action_refuse_reason_apply(self)
applicant_ids
Many2many → hr.applicant
context={'active_test': False}
required=True
string='Applications'
args: 'hr.applicant'
author_id
Many2one → res.partner
default=<expr>
required=True
args: 'res.partner', 'Author'
action_send(self)
applicant_id
Many2one → hr.applicant
index='btree_not_null'
ondelete='set null'
string='Applicant'
args: 'hr.applicant'
create(self, vals_list)
default_get(self, fields)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
index=True
args: 'Active'
applicant_properties
Properties
copy=True
definition='job_id.applicant_properties_definition'
args: 'Properties'
application_count
Integer
compute='_compute_application_count'
help='Applications with the same email or phone or mobile'
application_status
Selection
compute='_compute_application_status'
args: [('ongoing', 'Ongoing'), ('hired', 'Hired'), ('refused', 'Refused'), ('archived', 'Archived')]
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
tracking=True
args: 'Availability'
campaign_id
Many2one
ondelete='set null'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
compute='_compute_company'
readonly=False
store=True
tracking=True
args: 'res.company', 'Company'
create_date
Datetime
readonly=True
args: 'Applied on'
date_closed
Datetime
compute='_compute_date_closed'
copy=False
readonly=False
store=True
tracking=True
args: 'Hire Date'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
compute_sudo=True
string='Days to Close'
day_open
Float
compute='_compute_day'
compute_sudo=True
string='Days to Open'
delay_close
Float
compute='_compute_delay'
group_operator='avg'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
compute='_compute_department'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
tracking=True
args: 'hr.department', 'Department'
description
Html
email_from
Char
compute='_compute_partner_phone_email'
index='trigram'
inverse='_inverse_partner_email'
size=128
store=True
args: 'Email'
email_normalized
Char
index='trigram'
emp_id
Many2one → hr.employee
copy=False
help='Employee linked to the applicant.'
string='Employee'
args: 'hr.employee'
emp_is_active
Boolean
related='emp_id.active'
string='Employee Active'
employee_name
Char
readonly=False
related='emp_id.name'
string='Employee Name'
tracking=False
interviewer_ids
Many2many → res.users
copy=False
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
index=True
string='Interviewers'
tracking=True
args: 'res.users', 'hr_applicant_res_users_interviewers_rel'
job_id
Many2one → hr.job
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
tracking=True
args: 'hr.job', 'Applied Job'
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
related='stage_id.legend_normal'
string='Kanban Ongoing'
linkedin_profile
Char
medium_id
Many2one
ondelete='set null'
meeting_display_date
Date
compute='_compute_meeting_display'
meeting_display_text
Char
compute='_compute_meeting_display'
meeting_ids
One2many → calendar.event
name
Char
help='Email subject for applications sent via email'
index='trigram'
required=True
args: 'Subject / Application'
partner_id
Many2one → res.partner
copy=False
index='btree_not_null'
args: 'res.partner', 'Contact'
partner_mobile
Char
compute='_compute_partner_phone_email'
index='btree_not_null'
inverse='_inverse_partner_email'
readonly=False
size=32
store=True
args: 'Mobile'
partner_mobile_sanitized
Char
compute='_compute_partner_mobile_sanitized'
index='btree_not_null'
store=True
string='Sanitized Mobile Number'
partner_name
Char
partner_phone
Char
compute='_compute_partner_phone_email'
index='btree_not_null'
inverse='_inverse_partner_email'
readonly=False
size=32
store=True
args: 'Phone'
partner_phone_sanitized
Char
compute='_compute_partner_phone_sanitized'
index='btree_not_null'
store=True
string='Sanitized Phone Number'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Evaluation'
probability
Float
refuse_reason_id
Many2one → hr.applicant.refuse.reason
string='Refuse Reason'
tracking=True
args: 'hr.applicant.refuse.reason'
salary_expected
Float
group_operator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant'
tracking=True
args: 'Expected Salary'
salary_expected_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant, extra advantages'
tracking=True
args: 'Expected Salary Extra'
salary_proposed
Float
group_operator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation'
tracking=True
args: 'Proposed Salary'
salary_proposed_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation, extra advantages'
tracking=True
args: 'Proposed Salary Extra'
source_id
Many2one
ondelete='set null'
stage_id
Many2one → hr.recruitment.stage
compute='_compute_stage'
copy=False
domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
tracking=True
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
user_id
Many2one → res.users
compute='_compute_user'
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
readonly=False
store=True
tracking=True
args: 'res.users', 'Recruiter'
action_applications_email(self)
action_makeMeeting(self)
action_open_attachments(self)
action_open_employee(self)
action_send_email(self)
archive_applicant(self)
create(self, vals_list)
create_employee_from_applicant(self)
get_empty_list_help(self, help_message)
get_view(self, view_id=None, view_type='form', **options)
init(self)
message_new(self, msg, custom_values=None)
reset_applicant(self)
toggle_active(self)
write(self, vals)
color
Integer
default=_get_default_color
string='Color Index'
name
Char
required=True
args: 'Tag Name'
No public methods.
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Description'
sequence
Integer
copy=False
default=10
template_id
Many2one → mail.template
domain="[('model', '=', 'hr.applicant')]"
string='Email Template'
args: 'mail.template'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
compute_sudo=True
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
applicant_id
One2many → hr.applicant
create(self, vals_list)
activities_overdue
Integer
compute='_compute_activities'
activities_today
Integer
compute='_compute_activities'
address_id
Many2one → res.partner
default=_default_address_id
domain=<expr>
help="Select the location where the applicant will work. Addresses listed here are defined on the company's contact information."
args: 'res.partner', 'Job Location'
alias_id
Many2one
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
all_application_count
Integer
compute='_compute_all_application_count'
string='All Application Count'
allowed_user_ids
Many2many → res.users
compute='_compute_allowed_user_ids'
readonly=True
args: 'res.users'
applicant_hired
Integer
compute='_compute_applicant_hired'
string='Applicants Hired'
applicant_properties_definition
PropertiesDefinition
application_count
Integer
compute='_compute_application_count'
string='Application Count'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
readonly=True
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Document Count'
extended_interviewer_ids
Many2many → res.users
compute='_compute_extended_interviewer_ids'
store=True
args: 'res.users', 'hr_job_extended_interviewer_res_users'
favorite_user_ids
Many2many → res.users
default=_get_default_favorite_user_ids
args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
interviewer_ids
Many2many → res.users
domain="[('id', 'in', allowed_user_ids)]"
help="The Interviewers set on the job position can see all Applicants in it. They have access to the information, the attachments, the meeting management and they can refuse him. You don't need to have Recruitment rights to be set as an interviewer."
string='Interviewers'
args: 'res.users'
is_favorite
Boolean
compute='_compute_is_favorite'
inverse='_inverse_is_favorite'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
new_application_count
Integer
compute='_compute_new_application_count'
help='Number of applications that are new in the flow (typically at first step of the flow)'
string='New Application'
old_application_count
Integer
compute='_compute_old_application_count'
string='Old Application'
user_id
Many2one → res.users
domain="[('id', 'in', allowed_user_ids)]"
help="The Recruiter will be the default value for all Applicants Recruiter's field in this job position. The Recruiter is automatically added to all meetings with the Applicant."
tracking=True
args: 'res.users', 'Recruiter'
action_open_activities(self)
action_open_attachments(self)
action_open_late_activities(self)
action_open_today_activities(self)
close_dialog(self)
create(self, vals_list)
edit_dialog(self)
write(self, vals)
name
Char
required=True
translate=True
args: 'Degree Name'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
ondelete='restrict'
args: 'mail.alias', 'Alias ID'
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
has_domain
Char
compute='_compute_has_domain'
job_id
Many2one → hr.job
ondelete='cascade'
args: 'hr.job', 'Job'
medium_id
Many2one → utm.medium
default=<expr>
args: 'utm.medium'
create_alias(self)
unlink(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Kanban'
hired_stage
Boolean
help='If checked, this stage is used to determine the hire date of an applicant'
args: 'Hired Stage'
is_warning_visible
Boolean
compute='_compute_is_warning_visible'
job_ids
Many2many → hr.job
help='Specific jobs that uses this stage. Other jobs will not use this stage.'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
translate=True
args: 'Stage Name'
requirements
Text
sequence
Integer
default=10
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Email Template'
default_get(self, fields)
No new fields.
Public methods (0)No public methods.
group_applicant_cv_display
Boolean
implied_group='hr_recruitment.group_applicant_cv_display'
module_hr_recruitment_extract
Boolean
string='Send CV to OCR to fill applications'
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_get_refuse_reason_view_form |
applicant.get.refuse.reason.form | applicant.get.refuse.reason | form | New |
applicant_hired_template |
applicant_hired_template | ir.ui.view | qweb | New |
applicant_send_mail_view_form |
applicant.send.mail | form | New | |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.tree | hr.applicant.category | tree | New |
hr_applicant_refuse_reason_view_form |
Applicant refuse reason form | hr.applicant.refuse.reason | form | New |
hr_applicant_refuse_reason_view_tree |
Applicant refuse reason tree | hr.applicant.refuse.reason | tree | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_form_interviewer |
hr.applicant | xpath | Inherits hr_applicant_view_form | |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.tree.activity | hr.applicant | tree | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_search_view |
hr.job.search | hr.job | xpath | Inherits hr.view_job_filter |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | div | Inherits hr.view_hr_job_form |
hr_job_view_tree_inherit |
hr.job | field | Inherits hr.view_hr_job_tree | |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_kanban |
hr.recruitment.source.kanban | hr.recruitment.source | kanban | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_source_view_search |
hr.recruitment.source.view.search | hr.recruitment.source | search | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_hr_recruitment_list_view |
ir.attachment | tree | New | |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | xpath | Inherits hr.view_job_filter |
applicant_ids
Many2many → hr.applicant
applicant_without_email
Text
compute='_compute_applicant_without_email'
string='Applicant(s) not having email'
refuse_reason_id
Many2one → hr.applicant.refuse.reason
required=True
args: 'hr.applicant.refuse.reason', 'Refuse Reason'
send_mail
Boolean
compute='_compute_send_mail'
readonly=False
store=True
args: 'Send Email'
template_id
Many2one → mail.template
compute='_compute_send_mail'
domain="[('model', '=', 'hr.applicant')]"
readonly=False
store=True
string='Email Template'
args: 'mail.template'
action_refuse_reason_apply(self)
applicant_ids
Many2many → hr.applicant
required=True
string='Applications'
args: 'hr.applicant'
author_id
Many2one → res.partner
default=<expr>
required=True
args: 'res.partner', 'Author'
action_send(self)
applicant_id
Many2one → hr.applicant
index='btree_not_null'
ondelete='set null'
string='Applicant'
args: 'hr.applicant'
default_get(self, fields)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
application_count
Integer
compute='_compute_application_count'
help='Applications with the same email or phone or mobile'
application_status
Selection
compute='_compute_application_status'
args: [('ongoing', 'Ongoing'), ('hired', 'Hired'), ('refused', 'Refused')]
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
tracking=True
args: 'Availability'
campaign_id
Many2one
ondelete='set null'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
compute='_compute_company'
readonly=False
store=True
tracking=True
args: 'res.company', 'Company'
create_date
Datetime
readonly=True
args: 'Creation Date'
date_closed
Datetime
compute='_compute_date_closed'
copy=False
readonly=False
store=True
tracking=True
args: 'Hire Date'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
compute_sudo=True
string='Days to Close'
day_open
Float
compute='_compute_day'
compute_sudo=True
string='Days to Open'
delay_close
Float
compute='_compute_day'
group_operator='avg'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
compute='_compute_department'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
tracking=True
args: 'hr.department', 'Department'
description
Html
email_from
Char
compute='_compute_partner_phone_email'
inverse='_inverse_partner_email'
size=128
store=True
args: 'Email'
emp_id
Many2one → hr.employee
copy=False
help='Employee linked to the applicant.'
string='Employee'
args: 'hr.employee'
employee_name
Char
readonly=False
related='emp_id.name'
string='Employee Name'
tracking=False
interviewer_ids
Many2many → res.users
copy=False
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
index=True
string='Interviewers'
tracking=True
args: 'res.users', 'hr_applicant_res_users_interviewers_rel'
job_id
Many2one → hr.job
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
tracking=True
args: 'hr.job', 'Applied Job'
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
related='stage_id.legend_normal'
string='Kanban Ongoing'
linkedin_profile
Char
medium_id
Many2one
ondelete='set null'
meeting_display_date
Date
compute='_compute_meeting_display'
meeting_display_text
Char
compute='_compute_meeting_display'
meeting_ids
One2many → calendar.event
name
Char
help='Email subject for applications sent via email'
index='trigram'
required=True
args: 'Subject / Application'
partner_id
Many2one → res.partner
copy=False
args: 'res.partner', 'Contact'
partner_mobile
Char
compute='_compute_partner_phone_email'
inverse='_inverse_partner_mobile'
size=32
store=True
args: 'Mobile'
partner_name
Char
partner_phone
Char
compute='_compute_partner_phone_email'
inverse='_inverse_partner_phone'
size=32
store=True
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Evaluation'
probability
Float
refuse_reason_id
Many2one → hr.applicant.refuse.reason
string='Refuse Reason'
tracking=True
args: 'hr.applicant.refuse.reason'
salary_expected
Float
group_operator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant'
tracking=True
args: 'Expected Salary'
salary_expected_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Expected by Applicant, extra advantages'
tracking=True
args: 'Expected Salary Extra'
salary_proposed
Float
group_operator='avg'
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation'
tracking=True
args: 'Proposed Salary'
salary_proposed_extra
Char
groups='hr_recruitment.group_hr_recruitment_user'
help='Salary Proposed by the Organisation, extra advantages'
tracking=True
args: 'Proposed Salary Extra'
source_id
Many2one
ondelete='set null'
stage_id
Many2one → hr.recruitment.stage
compute='_compute_stage'
copy=False
domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
tracking=True
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
user_id
Many2one → res.users
compute='_compute_user'
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
readonly=False
store=True
tracking=True
args: 'res.users', 'Recruiter'
action_applications_email(self)
action_makeMeeting(self)
action_open_attachments(self)
action_open_employee(self)
action_send_email(self)
archive_applicant(self)
create(self, vals_list)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
get_view(self, view_id=None, view_type='form', **options)
message_new(self, msg, custom_values=None)
name_get(self)
reset_applicant(self)
toggle_active(self)
write(self, vals)
color
Integer
default=_get_default_color
string='Color Index'
name
Char
required=True
args: 'Tag Name'
No public methods.
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Description'
template_id
Many2one → mail.template
domain="[('model', '=', 'hr.applicant')]"
string='Email Template'
args: 'mail.template'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
compute_sudo=True
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
applicant_id
One2many → hr.applicant
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
create(self, vals_list)
activities_overdue
Integer
compute='_compute_activities'
activities_today
Integer
compute='_compute_activities'
address_id
Many2one → res.partner
default=_default_address_id
domain=<expr>
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
all_application_count
Integer
compute='_compute_all_application_count'
string='All Application Count'
applicant_hired
Integer
compute='_compute_applicant_hired'
string='Applicants Hired'
application_count
Integer
compute='_compute_application_count'
string='Application Count'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
readonly=True
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Document Count'
extended_interviewer_ids
Many2many → res.users
compute='_compute_extended_interviewer_ids'
store=True
args: 'res.users', 'hr_job_extended_interviewer_res_users'
favorite_user_ids
Many2many → res.users
default=_get_default_favorite_user_ids
args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
hr_responsible_id
Many2one → res.users
help="Person responsible of validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
interviewer_ids
Many2many → res.users
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
help="The Interviewers set on the job position can see all Applicants in it. They have access to the information, the attachments, the meeting management and they can refuse him. You don't need to have Recruitment rights to be set as an interviewer."
string='Interviewers'
args: 'res.users'
is_favorite
Boolean
compute='_compute_is_favorite'
inverse='_inverse_is_favorite'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
new_application_count
Integer
compute='_compute_new_application_count'
help='Number of applications that are new in the flow (typically at first step of the flow)'
string='New Application'
old_application_count
Integer
compute='_compute_old_application_count'
string='Old Application'
user_id
Many2one → res.users
domain="[('share', '=', False), ('company_ids', 'in', company_id)]"
help="The Recruiter will be the default value for all Applicants Recruiter's field in this job position. The Recruiter is automatically added to all meetings with the Applicant."
tracking=True
args: 'res.users', 'Recruiter'
action_open_activities(self)
action_open_attachments(self)
action_open_late_activities(self)
action_open_today_activities(self)
close_dialog(self)
create(self, vals_list)
edit_dialog(self)
write(self, vals)
name
Char
required=True
translate=True
args: 'Degree Name'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
has_domain
Char
compute='_compute_has_domain'
job_id
Many2one → hr.job
ondelete='cascade'
args: 'hr.job', 'Job'
medium_id
Many2one → utm.medium
default=<expr>
args: 'utm.medium'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Kanban'
hired_stage
Boolean
help='If checked, this stage is used to determine the hire date of an applicant'
args: 'Hired Stage'
is_warning_visible
Boolean
compute='_compute_is_warning_visible'
job_ids
Many2many → hr.job
help='Specific jobs that uses this stage. Other jobs will not use this stage.'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
translate=True
args: 'Stage Name'
requirements
Text
sequence
Integer
default=10
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Email Template'
default_get(self, fields)
No new fields.
Public methods (0)No public methods.
group_applicant_cv_display
Boolean
implied_group='hr_recruitment.group_applicant_cv_display'
module_hr_recruitment_extract
Boolean
string='Send CV to OCR to fill applications'
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/15.0/hr_recruitment |
| VERSION | |
| VERSION | 1.1 |
| CATEGORY | |
| CATEGORY | Human Resources/Recruitment |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, Goffin Simon, Mohammed Shekha, Thibault Francois, GitHub, Barad Mahendra, Yannick Tivisse, Xavier-Do, Andrea Grazioso (agr-odoo), Julien Mougenot, Adrien Widart, Ivan Yelizariev, Nasreddin Boulif (bon), Tiffany Chang (tic), Nathan Marotte (nama), IEL, Mathieu Duckerts-Antoine, William Braeckman, Kevin Baptiste, jdoutreloux, sofiagvaladze, yhu-odoo, Didier (did), Adrien Minet, Nicolas Bayet, Jinjiu Liu, dht-odoo, João Marques, Thomas Lefebvre (thle), Louis Wicket (wil), Munaf Khan, Pierre Collinet (pic), Nguyễn Đại Dương, Leonardo Pavan Rocha, Baffour Kusi Frimpong |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/app/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:25:28 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - calendar - fetchmail - utm - attachment_indexation - digest - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_get_refuse_reason_view_form |
applicant.get.refuse.reason.form | applicant.get.refuse.reason | form | New |
applicant_hired_template |
applicant_hired_template | ir.ui.view | qweb | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.tree | hr.applicant.category | tree | New |
hr_applicant_refuse_reason_view_form |
Applicant refuse reason form | hr.applicant.refuse.reason | form | New |
hr_applicant_refuse_reason_view_tree |
Applicant refuse reason tree | hr.applicant.refuse.reason | tree | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.tree.activity | hr.applicant | tree | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_search_view |
hr.job.search | hr.job | xpath | Inherits hr.view_job_filter |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | xpath | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_kanban |
hr.recruitment.source.kanban | hr.recruitment.source | kanban | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_source_view_search |
hr.recruitment.source.view.search | hr.recruitment.source | search | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | xpath | Inherits hr.view_job_filter |
applicant_ids
Many2many → hr.applicant
applicant_without_email
Text
compute='_compute_applicant_without_email'
string='Applicant(s) not having email'
refuse_reason_id
Many2one → hr.applicant.refuse.reason
send_mail
Boolean
compute='_compute_send_mail'
readonly=False
store=True
args: 'Send Email'
template_id
Many2one → mail.template
compute='_compute_send_mail'
domain="[('model', '=', 'hr.applicant')]"
readonly=False
store=True
string='Email Template'
args: 'mail.template'
action_refuse_reason_apply(self)
applicant_id
Many2one → hr.applicant
index=True
ondelete='set null'
string='Applicant'
args: 'hr.applicant'
default_get(self, fields)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
application_count
Integer
compute='_compute_application_count'
help='Applications with the same email'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
tracking=True
args: 'Availability'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
compute='_compute_company'
readonly=False
store=True
tracking=True
args: 'res.company', 'Company'
create_date
Datetime
index=True
readonly=True
args: 'Creation Date'
date_closed
Datetime
compute='_compute_date_closed'
copy=False
index=True
readonly=False
store=True
tracking=True
args: 'Hire Date'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
index=True
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
compute_sudo=True
string='Days to Close'
day_open
Float
compute='_compute_day'
compute_sudo=True
string='Days to Open'
delay_close
Float
compute='_compute_day'
group_operator='avg'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
compute='_compute_department'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
tracking=True
args: 'hr.department', 'Department'
description
Html
email_from
Char
compute='_compute_partner_phone_email'
help='Applicant email'
inverse='_inverse_partner_email'
size=128
store=True
args: 'Email'
emp_id
Many2one → hr.employee
copy=False
help='Employee linked to the applicant.'
string='Employee'
args: 'hr.employee'
employee_name
Char
readonly=False
related='emp_id.name'
string='Employee Name'
tracking=False
job_id
Many2one → hr.job
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
tracking=True
args: 'hr.job', 'Applied Job'
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
related='stage_id.legend_normal'
string='Kanban Ongoing'
meeting_display_date
Date
compute='_compute_meeting_display'
meeting_display_text
Char
compute='_compute_meeting_display'
meeting_ids
One2many → calendar.event
name
Char
help='Email subject for applications sent via email'
required=True
args: 'Subject / Application Name'
partner_id
Many2one → res.partner
copy=False
args: 'res.partner', 'Contact'
partner_mobile
Char
compute='_compute_partner_phone_email'
inverse='_inverse_partner_mobile'
size=32
store=True
args: 'Mobile'
partner_name
Char
partner_phone
Char
compute='_compute_partner_phone_email'
inverse='_inverse_partner_phone'
size=32
store=True
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Appreciation'
probability
Float
refuse_reason_id
Many2one → hr.applicant.refuse.reason
string='Refuse Reason'
tracking=True
args: 'hr.applicant.refuse.reason'
salary_expected
Float
group_operator='avg'
help='Salary Expected by Applicant'
tracking=True
args: 'Expected Salary'
salary_expected_extra
Char
help='Salary Expected by Applicant, extra advantages'
tracking=True
args: 'Expected Salary Extra'
salary_proposed
Float
group_operator='avg'
help='Salary Proposed by the Organisation'
tracking=True
args: 'Proposed Salary'
salary_proposed_extra
Char
help='Salary Proposed by the Organisation, extra advantages'
tracking=True
args: 'Proposed Salary Extra'
stage_id
Many2one → hr.recruitment.stage
compute='_compute_stage'
copy=False
domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
tracking=True
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
user_id
Many2one → res.users
compute='_compute_user'
readonly=False
store=True
tracking=True
args: 'res.users', 'Recruiter'
action_applications_email(self)
action_get_attachment_tree_view(self)
action_makeMeeting(self)
archive_applicant(self)
create(self, vals)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
message_new(self, msg, custom_values=None)
reset_applicant(self)
toggle_active(self)
write(self, vals)
color
Integer
default=_get_default_color
string='Color Index'
name
Char
required=True
args: 'Tag Name'
No public methods.
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Description'
template_id
Many2one → mail.template
domain="[('model', '=', 'hr.applicant')]"
string='Email Template'
args: 'mail.template'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
applicant_id
One2many → hr.applicant
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
create(self, vals)
address_id
Many2one → res.partner
default=_default_address_id
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
all_application_count
Integer
compute='_compute_all_application_count'
string='All Application Count'
application_count
Integer
compute='_compute_application_count'
string='Application Count'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Document Count'
favorite_user_ids
Many2many → res.users
default=_get_default_favorite_user_ids
args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
hr_responsible_id
Many2one → res.users
help="Person responsible of validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
is_favorite
Boolean
compute='_compute_is_favorite'
inverse='_inverse_is_favorite'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
new_application_count
Integer
compute='_compute_new_application_count'
help='Number of applications that are new in the flow (typically at first step of the flow)'
string='New Application'
no_of_hired_employee
Integer
compute='_compute_no_of_hired_employee'
store=True
old_application_count
Integer
compute='_compute_old_application_count'
string='Old Application'
user_id
Many2one → res.users
tracking=True
args: 'res.users', 'Recruiter'
action_get_attachment_tree_view(self)
close_dialog(self)
create(self, vals)
edit_dialog(self)
write(self, vals)
name
Char
required=True
translate=True
args: 'Degree Name'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of degrees.'
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
job_id
Many2one → hr.job
ondelete='cascade'
args: 'hr.job', 'Job'
source_id
Many2one → utm.source
ondelete='cascade'
required=True
args: 'utm.source', 'Source'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Kanban'
hired_stage
Boolean
help='If checked, this stage is used to determine the hire date of an applicant'
args: 'Hired Stage'
is_warning_visible
Boolean
compute='_compute_is_warning_visible'
job_ids
Many2many → hr.job
help='Specific jobs that uses this stage. Other jobs will not use this stage.'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
translate=True
args: 'Stage Name'
requirements
Text
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of stages.'
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Email Template'
default_get(self, fields)
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/14.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Recruitment |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Goffin Simon, Mohammed Shekha, Nicolas Martinelli, Nicolas Lempereur, Thibault Francois, Aaron Bohy, GitHub, Barad Mahendra, Yannick Tivisse, Adrien Dieudonne, Julien Castiaux, Xavier-Do, Victor Feyens, Andrea Grazioso (agr-odoo), Sébastien Theys, fw-bot, Adrien Widart, Nathan Marotte (nama), IEL, Mathieu Duckerts-Antoine, jbm-odoo, William Braeckman, Kevin Baptiste, Arnaud Baes, yhu-odoo, Didier (did), Jinjiu Liu, João Marques, Francois (fge), Louis Wicket (wil) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:14:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - calendar - fetchmail - utm - attachment_indexation - digest - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_get_refuse_reason_view_form |
applicant.get.refuse.reason.form | applicant.get.refuse.reason | form | New |
applicant_hired_template |
applicant_hired_template | ir.ui.view | qweb | New |
assets_backend |
hr_recruitment assets | ir.ui.view | qweb | Inherits web.assets_backend |
assets_tests |
HR Recruitment Assets Tests | ir.ui.view | qweb | Inherits web.assets_tests |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.tree | hr.applicant.category | tree | New |
hr_applicant_refuse_reason_view_form |
Applicant refuse reason form | hr.applicant.refuse.reason | form | New |
hr_applicant_refuse_reason_view_tree |
Applicant refuse reason tree | hr.applicant.refuse.reason | tree | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.tree.activity | hr.applicant | tree | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_search_view |
hr.job.search | hr.job | xpath | Inherits hr.view_job_filter |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | xpath | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_source_view_search |
hr.recruitment.source.view.search | hr.recruitment.source | search | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | xpath | Inherits hr.view_job_filter |
applicant_ids
Many2many → hr.applicant
refuse_reason_id
Many2one → hr.applicant.refuse.reason
action_refuse_reason_apply(self)
applicant_id
Many2one → hr.applicant
index=True
ondelete='set null'
string='Applicant'
args: 'hr.applicant'
default_get(self, fields)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
No public methods.
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
application_count
Integer
compute='_compute_application_count'
help='Applications with the same email'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
tracking=True
args: 'Availability'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
compute='_compute_company'
readonly=False
store=True
tracking=True
args: 'res.company', 'Company'
create_date
Datetime
index=True
readonly=True
args: 'Creation Date'
date_closed
Datetime
compute='_compute_date_closed'
index=True
store=True
args: 'Closed'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
index=True
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
compute_sudo=True
string='Days to Close'
day_open
Float
compute='_compute_day'
compute_sudo=True
string='Days to Open'
delay_close
Float
compute='_compute_day'
group_operator='avg'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
compute='_compute_department'
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
readonly=False
store=True
tracking=True
args: 'hr.department', 'Department'
description
Text
email_from
Char
compute='_compute_partner_phone_email'
help='Applicant email'
inverse='_inverse_partner_email'
size=128
store=True
args: 'Email'
emp_id
Many2one → hr.employee
copy=False
help='Employee linked to the applicant.'
string='Employee'
args: 'hr.employee'
employee_name
Char
readonly=False
related='emp_id.name'
string='Employee Name'
tracking=False
job_id
Many2one → hr.job
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
tracking=True
args: 'hr.job', 'Applied Job'
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
related='stage_id.legend_normal'
string='Kanban Ongoing'
meeting_count
Integer
compute='_compute_meeting_count'
help='Meeting Count'
name
Char
help='Email subject for applications sent via email'
required=True
args: 'Subject / Application Name'
partner_id
Many2one → res.partner
copy=False
args: 'res.partner', 'Contact'
partner_mobile
Char
compute='_compute_partner_phone_email'
inverse='_inverse_partner_mobile'
size=32
store=True
args: 'Mobile'
partner_name
Char
partner_phone
Char
compute='_compute_partner_phone_email'
inverse='_inverse_partner_phone'
size=32
store=True
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Appreciation'
probability
Float
refuse_reason_id
Many2one → hr.applicant.refuse.reason
string='Refuse Reason'
tracking=True
args: 'hr.applicant.refuse.reason'
salary_expected
Float
group_operator='avg'
help='Salary Expected by Applicant'
tracking=True
args: 'Expected Salary'
salary_expected_extra
Char
help='Salary Expected by Applicant, extra advantages'
tracking=True
args: 'Expected Salary Extra'
salary_proposed
Float
group_operator='avg'
help='Salary Proposed by the Organisation'
tracking=True
args: 'Proposed Salary'
salary_proposed_extra
Char
help='Salary Proposed by the Organisation, extra advantages'
tracking=True
args: 'Proposed Salary Extra'
stage_id
Many2one → hr.recruitment.stage
compute='_compute_stage'
copy=False
domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
readonly=False
store=True
tracking=True
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
user_id
Many2one → res.users
compute='_compute_user'
readonly=False
store=True
tracking=True
args: 'res.users', 'Recruiter'
action_applications_email(self)
action_get_attachment_tree_view(self)
action_makeMeeting(self)
archive_applicant(self)
create(self, vals)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
message_new(self, msg, custom_values=None)
reset_applicant(self)
toggle_active(self)
write(self, vals)
color
Integer
default=_get_default_color
string='Color Index'
name
Char
required=True
args: 'Tag Name'
No public methods.
active
Boolean
default=True
args: 'Active'
name
Char
required=True
translate=True
args: 'Description'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
applicant_id
One2many → hr.applicant
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
create(self, vals)
address_id
Many2one → res.partner
default=_default_address_id
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
all_application_count
Integer
compute='_compute_all_application_count'
string='All Application Count'
application_count
Integer
compute='_compute_application_count'
string='Application Count'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Document Count'
favorite_user_ids
Many2many → res.users
default=_get_default_favorite_user_ids
args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
hr_responsible_id
Many2one → res.users
help="Person responsible of validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
is_favorite
Boolean
compute='_compute_is_favorite'
inverse='_inverse_is_favorite'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
new_application_count
Integer
compute='_compute_new_application_count'
help='Number of applications that are new in the flow (typically at first step of the flow)'
string='New Application'
user_id
Many2one → res.users
tracking=True
args: 'res.users', 'Recruiter'
action_get_attachment_tree_view(self)
close_dialog(self)
create(self, vals)
edit_dialog(self)
name
Char
required=True
translate=True
args: 'Degree Name'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of degrees.'
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
job_id
Many2one → hr.job
ondelete='cascade'
args: 'hr.job', 'Job'
source_id
Many2one → utm.source
ondelete='cascade'
required=True
args: 'utm.source', 'Source'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Kanban'
job_ids
Many2many → hr.job
help='Specific jobs that uses this stage. Other jobs will not use this stage.'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
translate=True
args: 'Stage Name'
requirements
Text
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of stages.'
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Email Template'
default_get(self, fields)
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/13.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources/Recruitment |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Mohammed Shekha, Nicolas Martinelli, Nicolas Lempereur, Thibault Francois, Jeremy Kersten, GitHub, Yannick Tivisse, Martin Geubelle, Odoo Online, Nicolas Seinlet, Jigar Patel, Adrien Dieudonne, RomainLibert, Jorge Pinna Puissant, Alexandre Kühn, Adrian Torres, Xavier-Do, Andrea Grazioso (agr-odoo), Sébastien Theys, IEL, Thanh Dodeur, ThanhDodeurOdoo, Pierre Paridans, jbm-odoo, William Braeckman, Kevin Baptiste, qmo-odoo, Jinjiu Liu, Federico (fega) |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:06:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - mail_bot - calendar - fetchmail - utm - attachment_indexation - digest - portal - web_editor - http_routing - auth_signup |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_hired_template |
applicant_hired_template | ir.ui.view | qweb | New |
assets_backend |
hr_recruitment assets | ir.ui.view | qweb | Inherits web.assets_backend |
assets_tests |
HR Recruitment Assets Tests | ir.ui.view | qweb | Inherits web.assets_tests |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.tree | hr.applicant.category | tree | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.tree.activity | hr.applicant | tree | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_search_view |
hr.job.search | hr.job | xpath | Inherits hr.view_job_filter |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | xpath | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | xpath | Inherits hr.view_job_filter |
applicant_id
Many2one → hr.applicant
string='Applicant'
args: 'hr.applicant'
default_get(self, fields)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
compute_kpis_actions(self, company, user)
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
application_count
Integer
compute='_compute_application_count'
help='Applications with the same email'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
args: 'Availability'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=_default_company_id
args: 'res.company', 'Company'
create_date
Datetime
index=True
readonly=True
args: 'Creation Date'
date_closed
Datetime
index=True
readonly=True
args: 'Closed'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
index=True
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
compute_sudo=True
string='Days to Close'
day_open
Float
compute='_compute_day'
compute_sudo=True
string='Days to Open'
delay_close
Float
compute='_compute_day'
group_operator='avg'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
args: 'hr.department', 'Department'
description
Text
email_from
Char
help='Applicant email'
size=128
args: 'Email'
emp_id
Many2one → hr.employee
copy=False
help='Employee linked to the applicant.'
string='Employee'
args: 'hr.employee'
employee_name
Char
readonly=False
related='emp_id.name'
string='Employee Name'
tracking=False
job_id
Many2one → hr.job
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
index=True
args: 'hr.job', 'Applied Job'
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
readonly=False
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
readonly=False
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
readonly=False
related='stage_id.legend_normal'
string='Kanban Ongoing'
meeting_count
Integer
compute='_compute_meeting_count'
help='Meeting Count'
name
Char
required=True
args: 'Subject / Application Name'
partner_id
Many2one → res.partner
copy=False
args: 'res.partner', 'Contact'
partner_mobile
Char
size=32
args: 'Mobile'
partner_name
Char
partner_phone
Char
size=32
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Appreciation'
probability
Float
salary_expected
Float
group_operator='avg'
help='Salary Expected by Applicant'
args: 'Expected Salary'
salary_expected_extra
Char
help='Salary Expected by Applicant, extra advantages'
args: 'Expected Salary Extra'
salary_proposed
Float
group_operator='avg'
help='Salary Proposed by the Organisation'
args: 'Proposed Salary'
salary_proposed_extra
Char
help='Salary Proposed by the Organisation, extra advantages'
args: 'Proposed Salary Extra'
stage_id
Many2one → hr.recruitment.stage
copy=False
default=_default_stage_id
domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
tracking=True
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
type='char'
user_id
Many2one → res.users
default=<expr>
tracking=True
args: 'res.users', 'Responsible'
action_applications_email(self)
action_get_attachment_tree_view(self)
action_makeMeeting(self)
archive_applicant(self)
create(self, vals)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
message_new(self, msg, custom_values=None)
onchange_email_from(self)
onchange_job_id(self)
onchange_partner_id(self)
onchange_partner_mobile(self)
onchange_partner_phone(self)
onchange_stage_id(self)
reset_applicant(self)
write(self, vals)
color
Integer
default=10
string='Color Index'
name
Char
required=True
args: 'Tag Name'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
No public methods.
address_id
Many2one → res.partner
default=_default_address_id
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
application_count
Integer
compute='_compute_application_count'
string='Application Count'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Document Count'
favorite_user_ids
Many2many → res.users
default=_get_default_favorite_user_ids
args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
hr_responsible_id
Many2one → res.users
help="Person responsible of validating the employee's contracts."
tracking=True
args: 'res.users', 'HR Responsible'
is_favorite
Boolean
compute='_compute_is_favorite'
inverse='_inverse_is_favorite'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
new_application_count
Integer
compute='_compute_new_application_count'
help='Number of applications that are new in the flow (typically at first step of the flow)'
string='New Application'
user_id
Many2one → res.users
tracking=True
args: 'res.users', 'Responsible'
action_get_attachment_tree_view(self)
close_dialog(self)
create(self, vals)
edit_dialog(self)
get_alias_model_name(self, vals)
get_alias_values(self)
search_panel_select_range(self, field_name)
name
Char
required=True
translate=True
args: 'Degree Name'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of degrees.'
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
job_id
Many2one → hr.job
source_id
Many2one → utm.source
ondelete='cascade'
required=True
args: 'utm.source', 'Source'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Kanban'
job_ids
Many2many → hr.job
help='Specific jobs that uses this stage. Other jobs will not use this stage.'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
translate=True
args: 'Stage Name'
requirements
Text
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of stages.'
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Email Template'
default_get(self, fields)
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Nicolas Lempereur, Géry Debongnie, Aaron Bohy, GitHub, Lucas Perais (lpe), Yannick Tivisse, Alexandre Kühn, qsm-odoo, Martin Geubelle, Adrien Dieudonne, RomainLibert, Christophe Monniez, Alexandre Kühn, fda-odoo, Adrian Torres, XavierDo, Xavier-Do, Kinjal Mehta, William Braeckman |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:01 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - calendar - fetchmail - utm - document - digest - portal - http_routing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_recruitment assets | ir.ui.view | qweb | Inherits web.assets_backend |
crm_case_form_view_job |
Jobs - Recruitment Form | hr.applicant | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | xpath | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.tree.activity | hr.applicant | tree | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | xpath | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_crm_case_jobs_filter |
hr.applicant.view.search | hr.applicant | search | New |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | field | Inherits hr.view_job_filter |
applicant_id
Many2one → hr.applicant
string='Applicant'
args: 'hr.applicant'
default_get(self, fields)
kpi_hr_recruitment_new_colleagues
Boolean
kpi_hr_recruitment_new_colleagues_value
Integer
compute='_compute_kpi_hr_recruitment_new_colleagues_value'
compute_kpis_actions(self, company, user)
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
args: 'Availability'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=_default_company_id
args: 'res.company', 'Company'
create_date
Datetime
index=True
readonly=True
args: 'Creation Date'
date_closed
Datetime
index=True
readonly=True
args: 'Closed'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
index=True
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
string='Days to Close'
day_open
Float
compute='_compute_day'
string='Days to Open'
delay_close
Float
compute='_compute_day'
group_operator='avg'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
description
Text
email_cc
Text
help='These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma'
size=252
args: 'Watchers Emails'
email_from
Char
help='These people will receive email.'
size=128
args: 'Email'
emp_id
Many2one → hr.employee
help='Employee linked to the applicant.'
string='Employee'
track_visibility='onchange'
args: 'hr.employee'
employee_name
Char
readonly=False
related='emp_id.name'
string='Employee Name'
job_id
Many2one → hr.job
kanban_state
Selection
copy=False
default='normal'
required=True
string='Kanban State'
args: [('normal', 'Grey'), ('done', 'Green'), ('blocked', 'Red')]
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
legend_blocked
Char
readonly=False
related='stage_id.legend_blocked'
string='Kanban Blocked'
legend_done
Char
readonly=False
related='stage_id.legend_done'
string='Kanban Valid'
legend_normal
Char
readonly=False
related='stage_id.legend_normal'
string='Kanban Ongoing'
name
Char
required=True
args: 'Subject / Application Name'
partner_id
Many2one → res.partner
partner_mobile
Char
size=32
args: 'Mobile'
partner_name
Char
partner_phone
Char
size=32
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Appreciation'
probability
Float
reference
Char
salary_expected
Float
group_operator='avg'
help='Salary Expected by Applicant'
args: 'Expected Salary'
salary_expected_extra
Char
help='Salary Expected by Applicant, extra advantages'
args: 'Expected Salary Extra'
salary_proposed
Float
group_operator='avg'
help='Salary Proposed by the Organisation'
args: 'Proposed Salary'
salary_proposed_extra
Char
help='Salary Proposed by the Organisation, extra advantages'
args: 'Proposed Salary Extra'
stage_id
Many2one → hr.recruitment.stage
copy=False
default=_default_stage_id
domain="['|', ('job_id', '=', False), ('job_id', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
ondelete='restrict'
track_visibility='onchange'
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
type='char'
user_id
Many2one → res.users
default=<expr>
track_visibility='onchange'
args: 'res.users', 'Responsible'
action_get_attachment_tree_view(self)
action_get_created_employee(self)
action_makeMeeting(self)
archive_applicant(self)
create(self, vals)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
message_get_suggested_recipients(self)
message_new(self, msg, custom_values=None)
onchange_job_id(self)
onchange_partner_id(self)
onchange_stage_id(self)
reset_applicant(self)
write(self, vals)
color
Integer
default=10
string='Color Index'
name
Char
required=True
args: 'Name'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
No public methods.
address_id
Many2one → res.partner
default=_default_address_id
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
application_count
Integer
compute='_compute_application_count'
string='Application Count'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
string='Documents'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Document Count'
hr_responsible_id
Many2one → res.users
help="Person responsible of validating the employee's contracts."
track_visibility='onchange'
args: 'res.users', 'HR Responsible'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
user_id
Many2one → res.users
track_visibility='onchange'
args: 'res.users', 'Recruitment Responsible'
action_get_attachment_tree_view(self)
close_dialog(self)
create(self, vals)
edit_dialog(self)
get_alias_model_name(self, vals)
get_alias_values(self)
name
Char
required=True
translate=True
args: 'Degree'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of degrees.'
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
job_id
Many2one → hr.job
source_id
Many2one → utm.source
ondelete='cascade'
required=True
args: 'utm.source', 'Source'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Recruitment Pipe'
job_id
Many2one → hr.job
help='Specific job that uses this stage. Other jobs will not use this stage.'
ondelete='cascade'
string='Job Specific'
args: 'hr.job'
legend_blocked
Char
default=<expr>
required=True
translate=True
args: 'Red Kanban Label'
legend_done
Char
default=<expr>
required=True
translate=True
args: 'Green Kanban Label'
legend_normal
Char
default=<expr>
required=True
translate=True
args: 'Grey Kanban Label'
name
Char
required=True
translate=True
args: 'Stage name'
requirements
Text
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of stages.'
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Automated Email'
default_get(self, fields)
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Nicolas Lempereur, Jérome Maes, Richard Mathot, Aaron Bohy, GitHub, Lucas Perais (lpe), Olivier Colson, Yannick Tivisse, qsm-odoo, Martin Geubelle, Odoo Online, Adrien Dieudonne, Christophe Monniez |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr - base_setup - base - web - bus - web_tour - resource - calendar - fetchmail - utm - document |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_recruitment assets | ir.ui.view | qweb | Inherits web.assets_backend |
crm_case_form_view_job |
Jobs - Recruitment Form | hr.applicant | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.tree.activity | hr.applicant | tree | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | xpath | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | xpath | Inherits base.res_config_settings_view_form |
view_crm_case_jobs_filter |
hr.applicant.view.search | hr.applicant | search | New |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | field | Inherits hr.view_job_filter |
applicant_id
Many2one → hr.applicant
string='Applicant'
args: 'hr.applicant'
default_get(self, fields)
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
args: 'Availability'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=_default_company_id
args: 'res.company', 'Company'
create_date
Datetime
index=True
readonly=True
args: 'Creation Date'
date_closed
Datetime
index=True
readonly=True
args: 'Closed'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
index=True
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
string='Days to Close'
day_open
Float
compute='_compute_day'
string='Days to Open'
delay_close
Float
compute='_compute_day'
group_operator='avg'
help='Number of days to close'
readonly=True
store=True
string='Delay to Close'
department_id
Many2one → hr.department
description
Text
email_cc
Text
help='These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma'
size=252
args: 'Watchers Emails'
email_from
Char
help='These people will receive email.'
size=128
args: 'Email'
emp_id
Many2one → hr.employee
help='Employee linked to the applicant.'
string='Employee'
track_visibility='onchange'
args: 'hr.employee'
employee_name
Char
related='emp_id.name'
string='Employee Name'
job_id
Many2one → hr.job
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
name
Char
required=True
args: 'Subject / Application Name'
partner_id
Many2one → res.partner
partner_mobile
Char
size=32
args: 'Mobile'
partner_name
Char
partner_phone
Char
size=32
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Appreciation'
probability
Float
reference
Char
salary_expected
Float
group_operator='avg'
help='Salary Expected by Applicant'
args: 'Expected Salary'
salary_expected_extra
Char
help='Salary Expected by Applicant, extra advantages'
args: 'Expected Salary Extra'
salary_proposed
Float
group_operator='avg'
help='Salary Proposed by the Organisation'
args: 'Proposed Salary'
salary_proposed_extra
Char
help='Salary Proposed by the Organisation, extra advantages'
args: 'Proposed Salary Extra'
stage_id
Many2one → hr.recruitment.stage
copy=False
default=_default_stage_id
domain="['|', ('job_id', '=', False), ('job_id', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
track_visibility='onchange'
args: 'hr.recruitment.stage', 'Stage'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
type='char'
user_id
Many2one → res.users
default=<expr>
track_visibility='onchange'
args: 'res.users', 'Responsible'
write_date
Datetime
readonly=True
args: 'Update Date'
action_get_attachment_tree_view(self)
action_get_created_employee(self)
action_makeMeeting(self)
archive_applicant(self)
create(self, vals)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
message_get_reply_to(self, ids, default=None)
message_get_suggested_recipients(self)
message_new(self, msg, custom_values=None)
onchange_job_id(self)
onchange_partner_id(self)
onchange_stage_id(self)
reset_applicant(self)
write(self, vals)
color
Integer
default=10
string='Color Index'
name
Char
required=True
args: 'Name'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
No public methods.
address_id
Many2one → res.partner
default=_default_address_id
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
application_count
Integer
compute='_compute_application_count'
string='Applications'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
string='Applications'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Documents'
hr_responsible_id
Many2one → res.users
help="Person responsible of validating the employee's contracts."
track_visibility='onchange'
args: 'res.users', 'HR Responsible'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
user_id
Many2one → res.users
track_visibility='onchange'
args: 'res.users', 'Recruitment Responsible'
action_get_attachment_tree_view(self)
close_dialog(self)
create(self, vals)
edit_dialog(self)
get_alias_model_name(self, vals)
get_alias_values(self)
name
Char
required=True
translate=True
args: 'Degree'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of degrees.'
args: 'Sequence'
No public methods.
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
job_id
Many2one → hr.job
source_id
Many2one → utm.source
ondelete='cascade'
required=True
args: 'utm.source', 'Source'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Recruitment Pipe'
job_id
Many2one → hr.job
help='Specific job that uses this stage. Other jobs will not use this stage.'
ondelete='cascade'
string='Job Specific'
args: 'hr.job'
name
Char
required=True
translate=True
args: 'Stage name'
requirements
Text
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of stages.'
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Automated Email'
default_get(self, fields)
module_hr_recruitment_survey
Boolean
string='Interview Forms'
module_website_hr_recruitment
Boolean
string='Online Posting'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Joren Van Onder, Nicolas Martinelli, Jérome Maes, Julien Legros, qdp-odoo, Aaron Bohy, GitHub, Lucas Perais (lpe), Yannick Tivisse, qsm-odoo, Christophe Monniez |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:48 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - decimal_precision - base - hr - base_setup - web_kanban - web - bus - web_tour - resource - calendar - base_action_rule - web_calendar - fetchmail - web_kanban_gauge - utm - document |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Manage job positions and the recruitment process ================================================ This application allows you to easily keep track of jobs, vacancies, applications, interviews... It is integrated with the mail gateway to automatically fetch email sent to <jobs@yourcompany.com> in the list of applications. It's also integrated with the document management system to store and search in the CV base and find the candidate that you are looking for. Similarly, it may integrated with the survey module to allow you to define interviews for different jobs. You can define the different phases of interviews and easily rate the applicant from the kanban view. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_recruitment assets | ir.ui.view | qweb | Inherits web.assets_backend |
crm_case_form_view_job |
Jobs - Recruitment Form | hr.applicant | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | group | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | xpath | Inherits base.view_attachment_search |
view_crm_case_jobs_filter |
Jobs - Recruitment Search | hr.applicant | search | New |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_configuration |
Configure Recruitment | hr.recruitment.config.settings | form | New |
view_hr_recruitment_report_graph |
hr.recruitment.report.graph | hr.recruitment.report | graph | New |
view_hr_recruitment_report_pivot |
hr.recruitment.report.pivot | hr.recruitment.report | pivot | New |
view_hr_recruitment_report_search |
hr.recruitment.report.search | hr.recruitment.report | search | New |
view_job_filter_recruitment |
Job | hr.job | field | Inherits hr.view_job_filter |
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
args: 'Availability'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=_default_company_id
args: 'res.company', 'Company'
create_date
Datetime
index=True
readonly=True
args: 'Creation Date'
date_action
Date
date_closed
Datetime
index=True
readonly=True
args: 'Closed'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
index=True
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
string='Days to Close'
day_open
Float
compute='_compute_day'
string='Days to Open'
department_id
Many2one → hr.department
description
Text
email_cc
Text
help='These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma'
size=252
args: 'Watchers Emails'
email_from
Char
help='These people will receive email.'
size=128
args: 'Email'
emp_id
Many2one → hr.employee
help='Employee linked to the applicant.'
string='Employee'
track_visibility='onchange'
args: 'hr.employee'
employee_name
Char
related='emp_id.name'
string='Employee Name'
job_id
Many2one → hr.job
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
name
Char
required=True
args: 'Subject / Application Name'
partner_id
Many2one → res.partner
partner_mobile
Char
size=32
args: 'Mobile'
partner_name
Char
partner_phone
Char
size=32
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Appreciation'
probability
Float
reference
Char
salary_expected
Float
help='Salary Expected by Applicant'
args: 'Expected Salary'
salary_expected_extra
Char
help='Salary Expected by Applicant, extra advantages'
args: 'Expected Salary Extra'
salary_proposed
Float
help='Salary Proposed by the Organisation'
args: 'Proposed Salary'
salary_proposed_extra
Char
help='Salary Proposed by the Organisation, extra advantages'
args: 'Proposed Salary Extra'
stage_id
Many2one → hr.recruitment.stage
copy=False
default=_default_stage_id
domain="['|', ('job_id', '=', False), ('job_id', '=', job_id)]"
group_expand='_read_group_stage_ids'
index=True
track_visibility='onchange'
args: 'hr.recruitment.stage', 'Stage'
title_action
Char
size=64
args: 'Next Action'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
type='char'
user_id
Many2one → res.users
default=<expr>
track_visibility='onchange'
args: 'res.users', 'Responsible'
write_date
Datetime
readonly=True
args: 'Update Date'
action_get_attachment_tree_view(self)
action_get_created_employee(self)
action_makeMeeting(self)
archive_applicant(self)
create(self, vals)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
message_get_reply_to(self, ids, default=None)
message_get_suggested_recipients(self)
message_new(self, msg, custom_values=None)
onchange_job_id(self)
onchange_partner_id(self)
onchange_stage_id(self)
reset_applicant(self)
write(self, vals)
color
Integer
string='Color Index'
name
Char
required=True
args: 'Name'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
No public methods.
address_id
Many2one → res.partner
default=_default_address_id
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
application_count
Integer
compute='_compute_application_count'
string='Applications'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
string='Applications'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Documents'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
user_id
Many2one → res.users
track_visibility='onchange'
args: 'res.users', 'Recruitment Responsible'
action_get_attachment_tree_view(self)
action_set_no_of_recruitment(self, value)
close_dialog(self)
create(self, vals)
get_alias_model_name(self, vals)
get_alias_values(self)
module_hr_recruitment_survey
Selection
selection=[(0, 'Do not use interview forms'), (1, 'Use interview forms during the recruitment process')]
string='Interview Form'
No public methods.
name
Char
required=True
translate=True
args: 'Degree'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of degrees.'
args: 'Sequence'
No public methods.
active
Boolean
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
date_closed
Date
readonly=True
args: 'Closed'
date_create
Datetime
readonly=True
args: 'Create Date'
date_last_stage_update
Datetime
readonly=True
args: 'Last Stage Update'
delay_close
Float
digits=(16, 2)
group_operator='avg'
help='Number of Days to close the project issue'
readonly=True
args: 'Avg. Delay to Close'
department_id
Many2one → hr.department
readonly=True
args: 'hr.department', 'Department'
job_id
Many2one → hr.job
readonly=True
args: 'hr.job', 'Applied Job'
last_stage_id
Many2one → hr.recruitment.stage
medium_id
Many2one → utm.medium
help='This is the method of delivery. Ex: Postcard, Email, or Banner Ad'
readonly=True
args: 'utm.medium', 'Medium'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner'
priority
Selection
salary_exp
Float
digits=0
args: 'Salary Expected'
salary_exp_avg
Float
digits=0
group_operator='avg'
args: 'Avg. Expected Salary'
salary_prop
Float
digits=0
args: 'Salary Proposed'
salary_prop_avg
Float
digits=0
group_operator='avg'
args: 'Avg. Proposed Salary'
source_id
Many2one → utm.source
help='This is the source of the link Ex: Search Engine, another domain, or name of email list'
readonly=True
args: 'utm.source', 'Source'
stage_id
Many2one → hr.recruitment.stage
type_id
Many2one → hr.recruitment.degree
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'User'
init(self)
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
job_id
Many2one → hr.job
source_id
Many2one → utm.source
ondelete='cascade'
required=True
args: 'utm.source', 'Source'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Recruitment Pipe'
job_id
Many2one → hr.job
help='Specific job that uses this stage. Other jobs will not use this stage.'
ondelete='cascade'
string='Job Specific'
args: 'hr.job'
name
Char
required=True
translate=True
args: 'Stage name'
requirements
Text
sequence
Integer
default=10
help='Gives the sequence order when displaying a list of stages.'
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Use template'
default_get(self, fields)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, David Monjoie, Cedric Snauwaert, Nicolas Martinelli, Nicolas Lempereur, Jérome Maes, Richard Mathot, qdp-odoo, Géry Debongnie, Jeremy Kersten, Damien Bouvy, Julien De Coster, Yannick Tivisse, qsm-odoo, Martin Geubelle |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:30 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - decimal_precision - base - hr - base_setup - web_kanban - web - bus - resource - web_tip - survey - website - web_editor - web_planner - marketing - calendar - base_action_rule - web_calendar - fetchmail - web_kanban_gauge - utm - document |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Manage job positions and the recruitment process ================================================ This application allows you to easily keep track of jobs, vacancies, applications, interviews... It is integrated with the mail gateway to automatically fetch email sent to <jobs@yourcompany.com> in the list of applications. It's also integrated with the document management system to store and search in the CV base and find the candidate that you are looking for. Similarly, it is integrated with the survey module to allow you to define interviews for different jobs. You can define the different phases of interviews and easily rate the applicant from the kanban view. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_recruitment assets | ir.ui.view | qweb | Inherits web.assets_backend |
crm_case_form_view_job |
Jobs - Recruitment Form | hr.applicant | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | data | Inherits hr.hr_department_view_kanban |
hr_employee_view_search |
hr.employee.search.inherit | hr.employee | xpath | Inherits hr.view_employee_filter |
hr_job_survey |
hr.job.form1 | hr.job | group | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
view_crm_case_jobs_filter |
Jobs - Recruitment Search | hr.applicant | search | New |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_configuration |
Configure Recruitment | hr.recruitment.config.settings | form | New |
view_hr_recruitment_report_graph |
hr.recruitment.report.graph | hr.recruitment.report | graph | New |
view_hr_recruitment_report_pivot |
hr.recruitment.report.pivot | hr.recruitment.report | pivot | New |
view_hr_recruitment_report_search |
hr.recruitment.report.search | hr.recruitment.report | search | New |
view_job_filter_recruitment |
Job | hr.job | field | Inherits hr.view_job_filter |
active
Boolean
default=True
help='If the active field is set to false, it will allow you to hide the case without removing it.'
args: 'Active'
attachment_ids
One2many → ir.attachment
domain=[('res_model', '=', 'hr.applicant')]
string='Attachments'
args: 'ir.attachment', 'res_id'
attachment_number
Integer
compute='_get_attachment_number'
string='Number of Attachments'
availability
Date
help='The date at which the applicant will be available to start working'
args: 'Availability'
categ_ids
Many2many → hr.applicant.category
string='Tags'
args: 'hr.applicant.category'
color
Integer
default=0
args: 'Color Index'
company_id
Many2one → res.company
default=_default_company_id
args: 'res.company', 'Company'
create_date
Datetime
index=True
readonly=True
args: 'Creation Date'
date_action
Date
date_closed
Datetime
index=True
readonly=True
args: 'Closed'
date_last_stage_update
Datetime
default=fields.Datetime.now
index=True
args: 'Last Stage Update'
date_open
Datetime
index=True
readonly=True
args: 'Assigned'
day_close
Float
compute='_compute_day'
string='Days to Close'
day_open
Float
compute='_compute_day'
string='Days to Open'
department_id
Many2one → hr.department
description
Text
email_cc
Text
help='These email addresses will be added to the CC field of all inbound and outbound emails for this record before being sent. Separate multiple email addresses with a comma'
size=252
args: 'Watchers Emails'
email_from
Char
help='These people will receive email.'
size=128
args: 'Email'
emp_id
Many2one → hr.employee
help='Employee linked to the applicant.'
string='Employee'
track_visibility='onchange'
args: 'hr.employee'
employee_name
Char
related='emp_id.name'
string='Employee Name'
job_id
Many2one → hr.job
last_stage_id
Many2one → hr.recruitment.stage
help='Stage of the applicant before being in the current stage. Used for lost cases analysis.'
args: 'hr.recruitment.stage', 'Last Stage'
name
Char
required=True
args: 'Subject / Application Name'
partner_id
Many2one → res.partner
partner_mobile
Char
size=32
args: 'Mobile'
partner_name
Char
partner_phone
Char
size=32
args: 'Phone'
priority
Selection
default='0'
args: AVAILABLE_PRIORITIES, 'Appreciation'
probability
Float
reference
Char
response_id
Many2one → survey.user_input
oldname='response'
ondelete='set null'
args: 'survey.user_input', 'Response'
salary_expected
Float
help='Salary Expected by Applicant'
args: 'Expected Salary'
salary_expected_extra
Char
help='Salary Expected by Applicant, extra advantages'
args: 'Expected Salary Extra'
salary_proposed
Float
help='Salary Proposed by the Organisation'
args: 'Proposed Salary'
salary_proposed_extra
Char
help='Salary Proposed by the Organisation, extra advantages'
args: 'Proposed Salary Extra'
stage_id
Many2one → hr.recruitment.stage
copy=False
default=_default_stage_id
domain="[('job_ids', '=', job_id)]"
index=True
track_visibility='onchange'
args: 'hr.recruitment.stage', 'Stage'
survey
Many2one → survey.survey
related='job_id.survey_id'
string='Survey'
args: 'survey.survey'
title_action
Char
size=64
args: 'Next Action'
type_id
Many2one → hr.recruitment.degree
user_email
Char
readonly=True
related='user_id.email'
string='User Email'
type='char'
user_id
Many2one → res.users
default=<expr>
track_visibility='onchange'
args: 'res.users', 'Responsible'
write_date
Datetime
readonly=True
args: 'Update Date'
action_get_attachment_tree_view(self)
action_get_created_employee(self)
action_makeMeeting(self)
action_print_survey(self)
action_start_survey(self)
archive_applicant(self)
create(self, vals)
create_employee_from_applicant(self)
get_empty_list_help(self, help)
message_get_reply_to(self, ids, default=None)
message_get_suggested_recipients(self)
message_new(self, msg, custom_values=None)
onchange_job_id(self)
onchange_partner_id(self)
onchange_stage_id(self)
reset_applicant(self)
write(self, vals)
name
Char
required=True
args: 'Name'
No public methods.
expected_employee
Integer
compute='_compute_recruitment_stats'
string='Expected Employee'
new_applicant_count
Integer
compute='_compute_new_applicant_count'
string='New Applicant'
new_hired_employee
Integer
compute='_compute_recruitment_stats'
string='New Hired Employee'
No public methods.
newly_hired_employee
Boolean
compute='_compute_newly_hired_employee'
search='_search_newly_hired_employee'
args: 'Newly hired employee'
No public methods.
address_id
Many2one → res.partner
default=_default_address_id
help='Address where employees are working'
args: 'res.partner', 'Job Location'
alias_id
Many2one → mail.alias
help='Email alias for this job position. New emails will automatically create new applicants for this job position.'
ondelete='restrict'
required=True
args: 'mail.alias', 'Alias'
application_count
Integer
compute='_compute_application_count'
string='Applications'
application_ids
One2many → hr.applicant
color
Integer
document_ids
One2many → ir.attachment
compute='_compute_document_ids'
string='Applications'
args: 'ir.attachment'
documents_count
Integer
compute='_compute_document_ids'
string='Documents'
manager_id
Many2one → hr.employee
readonly=True
related='department_id.manager_id'
store=True
string='Department Manager'
args: 'hr.employee'
stage_ids
Many2many → hr.recruitment.stage
default=[(0, 0, {'name': _('New')})]
args: 'hr.recruitment.stage', 'job_stage_rel', 'job_id', 'stage_id', 'Job Stages'
survey_id
Many2one → survey.survey
help='Choose an interview form for this job position and you will be able to print/answer this interview from all applicants who apply for this job'
args: 'survey.survey', 'Interview Form'
user_id
Many2one → res.users
track_visibility='onchange'
args: 'res.users', 'Recruitment Responsible'
action_get_attachment_tree_view(self)
action_print_survey(self)
action_set_no_of_recruitment(self, value)
create(self, vals)
unlink(self)
module_document
Selection
help="Manage your CV's and motivation letter related to all applicants.\n-This installs the module document_ftp. This will install the knowledge management module in order to allow you to search using specific keywords through the content of all documents (PDF, .DOCx...)"
selection=[(0, 'Do not manage CVs and motivation letter'), (1, 'Allow the automatic indexation of resumes')]
string='Resumes'
No public methods.
name
Char
required=True
translate=True
args: 'Degree'
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of degrees.'
args: 'Sequence'
No public methods.
company_id
Many2one → res.company
readonly=True
args: 'res.company', 'Company'
date_closed
Date
readonly=True
args: 'Closed'
date_create
Datetime
readonly=True
args: 'Create Date'
date_last_stage_update
Datetime
readonly=True
args: 'Last Stage Update'
delay_close
Float
digits=(16, 2)
group_operator='avg'
help='Number of Days to close the project issue'
readonly=True
args: 'Avg. Delay to Close'
department_id
Many2one → hr.department
readonly=True
args: 'hr.department', 'Department'
job_id
Many2one → hr.job
readonly=True
args: 'hr.job', 'Applied Job'
last_stage_id
Many2one → hr.recruitment.stage
medium_id
Many2one → utm.medium
help='This is the method of delivery. Ex: Postcard, Email, or Banner Ad'
readonly=True
args: 'utm.medium', 'Medium'
partner_id
Many2one → res.partner
readonly=True
args: 'res.partner', 'Partner'
priority
Selection
salary_exp
Float
digits=0
args: 'Salary Expected'
salary_exp_avg
Float
digits=0
group_operator='avg'
args: 'Avg. Expected Salary'
salary_prop
Float
digits=0
args: 'Salary Proposed'
salary_prop_avg
Float
digits=0
group_operator='avg'
args: 'Avg. Proposed Salary'
source_id
Many2one → utm.source
help='This is the source of the link Ex: Search Engine, another domain, or name of email list'
readonly=True
args: 'utm.source', 'Source'
stage_id
Many2one → hr.recruitment.stage
type_id
Many2one → hr.recruitment.degree
user_id
Many2one → res.users
readonly=True
args: 'res.users', 'User'
init(self, cr)
alias_id
Many2one → mail.alias
email
Char
readonly=True
related='alias_id.display_name'
string='Email'
job_id
Many2one → hr.job
source_id
Many2one → utm.source
ondelete='cascade'
required=True
args: 'utm.source', 'Source'
create_alias(self)
fold
Boolean
help='This stage is folded in the kanban view when there are no records in that stage to display.'
args: 'Folded in Recruitment Pipe'
job_ids
Many2many → hr.job
default=<expr>
string='Job Stages'
args: 'hr.job', 'job_stage_rel', 'stage_id', 'job_id'
name
Char
required=True
translate=True
args: 'Stage name'
requirements
Text
sequence
Integer
default=1
help='Gives the sequence order when displaying a list of stages.'
args: 'Sequence'
template_id
Many2one → mail.template
help='If set, a message is posted on the applicant using the template when the applicant is set to the stage.'
args: 'mail.template', 'Use template'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Atul Patel (OpenERP), Odoo Translation Bot, Turkesh Patel (Open ERP), Christophe Matthieu, DBR (OpenERP), Martin Trigaux, Ajay Chauhan (OpenERP), Foram Katharotiya (OpenERP), Purnendu Singh (OpenERP), Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, ggh-openerp, Christophe Simonis, Xavier Morel, Cedric Snauwaert, Vishmita, Chirag Dodiya (OpenERP Trainee), Dharti Ratani (Open ERP), Amit Bhavsar (Open ERP), Paramjit Singh Sahota, Jagdish Panchal, Nimesh Contractor (OpenERP), Richard Mathot, Géry Debongnie, Darshan Kalola (OpenERP Trainee), jke-openerp, Aaron Bohy, bth-openerp, Vishmita Jadeja (openerp), Bharat R. Devnani (OpenERP), Richard Mathot (OpenERP), ged-odoo, Mahendra Barad (OpenERP), ima-openerp, Gery Debongnie, Randhir Mayatra rma-openerp, sgo@tinyerp.com, Darshan Kalola (OpenERP), Darshan Kalola, Jitendra Prajapati (OpenERP), Sunil Sharma (OpenERP Trainee), Yogesh Parekh (OpenERP), Chirag Dodiya (OpenERP), Sunil Sharma (OpenERP), Jignesh Rathod (OpenERP), Barad Mahendra |
| WEBSITE | |
| WEBSITE | https://www.odoo.com/page/recruitment |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - decimal_precision - base - hr - base_setup - web_kanban - web - resource - board - survey - email_template - website - share - marketing - calendar - base_action_rule - web_calendar - fetchmail - web_kanban_gauge |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Manage job positions and the recruitment process ================================================ This application allows you to easily keep track of jobs, vacancies, applications, interviews... It is integrated with the mail gateway to automatically fetch email sent to <jobs@yourcompany.com> in the list of applications. It's also integrated with the document management system to store and search in the CV base and find the candidate that you are looking for. Similarly, it is integrated with the survey module to allow you to define interviews for different jobs. You can define the different phases of interviews and easily rate the applicant from the kanban view. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
hr_recruitment assets | ir.ui.view | qweb | Inherits web.assets_backend |
crm_case_form_view_job |
Jobs - Recruitment Form | hr.applicant | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_job_survey |
hr.job.form1 | hr.job | group | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_form |
hr.recruitment.source.form | hr.recruitment.source | form | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
view_crm_case_jobs_filter |
Jobs - Recruitment Search | hr.applicant | search | New |
view_hr_apll_config_settings |
hr settings for recruitment | hr.config.settings | div | Inherits hr.view_human_resources_configuration |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_partner_create |
hr.recruitment.partner.create.form | hr.recruitment.partner.create | form | New |
view_hr_recruitment_report_graph |
hr.recruitment.report.graph | hr.recruitment.report | graph | New |
view_hr_recruitment_report_search |
hr.recruitment.report.search | hr.recruitment.report | search | New |
view_job_filter_recruitment |
Job | hr.job | field | Inherits hr.view_job_filter |
No new fields.
Public methods (16)action_get_attachment_tree_view(self, cr, uid, ids, context=None)
action_makeMeeting(self, cr, uid, ids, context=None)
action_print_survey(self, cr, uid, ids, context=None)
action_start_survey(self, cr, uid, ids, context=None)
create(self, cr, uid, vals, context=None)
create_employee_from_applicant(self, cr, uid, ids, context=None)
get_empty_list_help(self, cr, uid, help, context=None)
message_get_reply_to(self, cr, uid, ids, context=None)
message_get_suggested_recipients(self, cr, uid, ids, context=None)
message_new(self, cr, uid, msg, custom_values=None, context=None)
onchange_department_id(self, cr, uid, ids, department_id=False, stage_id=False, context=None)
onchange_job(self, cr, uid, ids, job_id=False, context=None)
onchange_partner_id(self, cr, uid, ids, partner_id, context=None)
onchange_stage_id(self, cr, uid, ids, stage_id, context=None)
stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None)
write(self, cr, uid, ids, vals, context=None)
No new fields.
Public methods (2)get_default_alias_prefix(self, cr, uid, ids, context=None)
set_default_alias_prefix(self, cr, uid, ids, context=None)
No new fields.
Public methods (1)init(self, cr)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/7.0/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Jagdish Panchal (Open ERP), Twinkle Christian (OpenERP), Cecile Tonglet, Rucha (Open ERP), Atul Patel (OpenERP), Jalpesh Patel (OpenERP), Randhir Mayatra (OpenERP), Stephane Wirtel, Odoo Translation Bot, Turkesh Patel (Open ERP), Numerigraphe - Lionel Sausin, Christophe Matthieu, Pinakin Nayi (OpenERP), Antonin Bourguignon, pankita shah (Open ERP), ajay javiya (OpenERP), Martin Trigaux, Ajay Chauhan (OpenERP), Foram Katharotiya (OpenERP), Bhumika (OpenERP), Purnendu Singh (OpenERP), Saurang Suthar (OpenERP), Fabien Pinckaers, Antony Lesuisse, Bharat Devnani (OpenERP), Meera Trambadia (OpenERP), Olivier Dony, Rajesh Prajapati (OpenERP), Twinkle (OpenERP), Divyesh Makwana (Open ERP), Tejas Tank, Thibault Delavallée, Vo Minh Thu, Josse Colpaert, pso (OpenERP), Sbh (Openerp), Amit Patel (OpenERP), Launchpad Translations on behalf of openerp, vta vta@openerp.com, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Nimesh (Open ERP), Denis Ledoux, ara@tinyerp.com, Mayur Maheshwari (OpenERP), Jigar Amin - OpenERP, Sanjay Gohel (Open ERP), Fabien Meghazi, niv-openerp, Jiten (OpenERP), Khushboo Bhatt (Open ERP), Roberto López López (OpenERP), Cedric Snauwaert, Amit Patel, Frédéric van der Essen, Gilles Major, Vijaykumar Baladaniya, Jigar Amin, Ashvin Rathod (OpenERP), RGA(OpenERP) |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:43:10 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base_status - base - decimal_precision - hr - base_setup - web_kanban - web - resource - process - board - survey - base_calendar - base_action_rule - fetchmail |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Manage job positions and the recruitment process ================================================ This application allows you to easily keep track of jobs, vacancies, applications, interviews... It is integrated with the mail gateway to automatically fetch email sent to <jobs@yourcompany.com> in the list of applications. It's also integrated with the document management system to store and search in the CV base and find the candidate that you are looking for. Similarly, it is integrated with the survey module to allow you to define interviews for different jobs. You can define the different phases of interviews and easily rate the applicant from the kanban view. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
board_hr_applicants_status_form |
board.hr.applicants.status.form | board.board | xpath | Inherits hr.board_hr_form |
crm_case_form_view_job |
Jobs - Recruitment Form | hr.applicant | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_job_survey |
hr.job.form1 | hr.job | field | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_form |
hr.recruitment.source.form | hr.recruitment.source | form | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
view_applicants_status_tree |
applicants.status.tree | hr.applicant | tree | New |
view_crm_case_jobs_filter |
Jobs - Recruitment Search | hr.applicant | search | New |
view_hr_apll_config_settings |
hr settings for recruitment | hr.config.settings | div | Inherits hr.view_human_resources_configuration |
view_hr_recruitment_hired_employee |
hr.recruitment.hired2employee.form | hired.employee | form | New |
view_hr_recruitment_partner_create |
hr.recruitment.partner.create.form | hr.recruitment.partner.create | form | New |
view_hr_recruitment_report_graph |
hr.recruitment.report.graph | hr.recruitment.report | graph | New |
view_hr_recruitment_report_search |
hr.recruitment.report.search | hr.recruitment.report | search | New |
view_hr_recruitment_report_tree |
hr.recruitment.report.tree | hr.recruitment.report | tree | New |
No new fields.
Public methods (18)action_makeMeeting(self, cr, uid, ids, context=None)
action_print_survey(self, cr, uid, ids, context=None)
case_cancel(self, cr, uid, ids, context=None)
case_close(self, cr, uid, ids, context=None)
case_close_with_emp(self, cr, uid, ids, context=None)
case_open(self, cr, uid, ids, context=None)
case_pending(self, cr, uid, ids, context=None)
case_reset(self, cr, uid, ids, context=None)
create(self, cr, uid, vals, context=None)
message_get_suggested_recipients(self, cr, uid, ids, context=None)
message_new(self, cr, uid, msg, custom_values=None, context=None)
onchange_department_id(self, cr, uid, ids, department_id=False, context=None)
onchange_job(self, cr, uid, ids, job, context=None)
onchange_partner_id(self, cr, uid, ids, partner_id, context=None)
set_high_priority(self, cr, uid, ids, *args)
set_normal_priority(self, cr, uid, ids, *args)
set_priority(self, cr, uid, ids, priority, *args)
stage_find(self, cr, uid, cases, section_id, domain=[], order='sequence', context=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/6.1/hr_recruitment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Jagdish Panchal (Open ERP), Rucha (Open ERP), Stephane Wirtel, DBR (OpenERP), Harry (OpenERP), Fabien Pinckaers, Antony Lesuisse, Meera Trambadia (OpenERP), Olivier Dony, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Mayur Maheshwari (OpenERP), Jigar Amin - OpenERP, vro, Fabien Meghazi, niv-openerp, Christophe Simonis, Ujjvala Collins (OpenERP), Xavier Morel, Jigar Amin, Amit (OpenERP), Minh Tran, Thibault Francois, Carlos Vásquez, ksa (Open ERP), Husen Daudi, Els Van Vossel, Israel Fermin Montilla, Rifakat Haradwala (Open ERP), mayur maheshwari (Open ERP), Hardik Ansodariy (OpenERP), ssu, rch-openerp, Bharat (OpenERP), ARA (OpenERP), aag (OpenERP), Yogesh (OpenERP), ron@tinyerp.com, mtr, fp, Mustufa Rangwala, Tejas (OpenERP), Anup (OpenERP), Atik Agewan (OpenERP) |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:41:35 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - decimal_precision - base - hr - base_setup - base_tools - resource - process - board - survey - crm - base_action_rule - base_calendar - fetchmail |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION |
Manages job positions and the recruitment process.
==================================================
It's integrated with the survey module to allow you to define interview for different jobs.
This module is integrated with the mail gateway to automatically tracks email
sent to jobs@YOURCOMPANY.com. It's also integrated with the document management
system to store and search in your CV base.
|
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
board_hr_applicants_status_form |
board.hr.applicants.status.form | board.board | xpath | Inherits hr.board_hr_manager_form |
crm_case_form_view_job |
Jobs - Recruitment Form | hr.applicant | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_tree_view_job |
Applicants | hr.applicant | tree | New |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_job_survey |
hr.job.form1 | hr.job | field | Inherits hr.view_hr_job_form |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.tree | hr.recruitment.degree | tree | New |
hr_recruitment_source_form |
hr.recruitment.source.form | hr.recruitment.source | form | New |
hr_recruitment_source_tree |
hr.recruitment.source.tree | hr.recruitment.source | tree | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.tree | hr.recruitment.stage | tree | New |
view_applicants_status_tree |
applicants.status.tree | hr.applicant | tree | New |
view_crm_case_jobs_filter |
Jobs - Recruitment Search | hr.applicant | search | New |
view_hr_recruitment_hired_employee |
hr.recruitment.hired2employee.form | hired.employee | form | New |
view_hr_recruitment_partner_create |
hr.recruitment.partner.create.form | hr.recruitment.partner.create | form | New |
view_hr_recruitment_phonecall |
hr.recruitment.job2phonecall.form | hr.recruitment.job2phonecall | form | New |
view_hr_recruitment_report_graph |
hr.recruitment.report.graph | hr.recruitment.report | graph | New |
view_hr_recruitment_report_search |
hr.recruitment.report.search | hr.recruitment.report | search | New |
view_hr_recruitment_report_tree |
hr.recruitment.report.tree | hr.recruitment.report | tree | New |
No models found for this module.