Recruitment - Skills Management

hr_recruitment_skills
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/hr_recruitment_skills
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources/Recruitment
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Yannick Tivisse, Julien Castiaux, Tiffany Chang (tic), Gorash, Ahmad Khanalizadeh, Victor Piryns (pivi), Dylan Kiss (dyki), Mélanie, Nathaniel (naja), sben-odoo, Krzysztof Magusiak (krma), bhna-odoo, Einar Andersen (eian), Abdelouahab Laaroussi (abla), Amr Yasser, arkp-odoo
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_skills
    - hr
    - base_setup
    - base
    - web
    - digest
    - mail
    - bus
    - web_tour
    - html_editor
    - portal
    - http_routing
    - auth_signup
    - resource
    - phone_validation
    - resource_mail
    - hr_recruitment
    - calendar
    - utm
    - attachment_indexation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
crm_case_tree_view_inherit_hr_recruitment_skills hr.applicant.view.tree.inherit.skills hr.applicant xpath Inherits hr_recruitment_skills.crm_case_tree_view_job
crm_case_tree_view_job hr.applicant.view.list.inherit.hr.recruitment.skills hr.applicant field Inherits hr_recruitment.crm_case_tree_view_job
hr_applicant_skill_view_form hr.applicant.skill.view.form hr.applicant.skill form New
hr_applicant_view_form hr.applicant.view.form.inherit.hr.recruitment.skills hr.applicant notebook Inherits hr_recruitment.hr_applicant_view_form
hr_applicant_view_search hr.applicant.view.search.inherit.skills hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search
hr_applicant_view_search_bis hr.applicant.view.search.inherit.skills.bis hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search_bis
hr_job_list_inherit_hr_recruitment_skills hr.job.view.list.inherit hr.job field Inherits hr_recruitment.hr_job_view_tree_inherit
view_hr_job_form hr.job.view.form.inherit.hr.recruitment.skills hr.job xpath Inherits hr_skills.view_hr_job_form
Models touched (3)

New fields (6)
  • applicant_skill_ids One2many → hr.applicant.skill
    copy=True string='Skills' args: 'hr.applicant.skill', 'applicant_id'
  • current_applicant_skill_ids One2many → hr.applicant.skill
    comodel_name='hr.applicant.skill' compute='_compute_current_applicant_skill_ids' inverse_name='applicant_id' readonly=False
  • matching_score Integer
    compute='_compute_matching_skill_ids' string='Matching Score'
  • matching_skill_ids Many2many → hr.skill
    comodel_name='hr.skill' compute='_compute_matching_skill_ids' string='Matching Skills'
  • missing_skill_ids Many2many → hr.skill
    comodel_name='hr.skill' compute='_compute_matching_skill_ids' string='Missing Skills'
  • skill_ids Many2many → hr.skill
    compute='_compute_skill_ids' store=True args: 'hr.skill'
Public methods (3)
  • action_add_to_job(self)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • applicant_id Many2one → hr.applicant
    comodel_name='hr.applicant' index=True ondelete='cascade' required=True
Public methods (0)

No public methods.

New fields (1)
  • applicant_matching_score Float
    compute='_compute_applicant_matching_score' groups='hr_recruitment.group_hr_recruitment_interviewer' string='Matching Score(%)'
Public methods (1)
  • action_search_matching_applicants(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/hr_recruitment_skills
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources/Recruitment
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Yannick Tivisse, Odoo Online, Tiffany Chang (tic), Gorash, Yash Vaishnav, Dylan Kiss (dyki), Nathaniel (naja), Louis (wil), stra, Einar Andersen (eian)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_skills
    - hr
    - base_setup
    - base
    - web
    - digest
    - mail
    - bus
    - web_tour
    - html_editor
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - phone_validation
    - resource_mail
    - hr_recruitment
    - calendar
    - utm
    - attachment_indexation
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
hr_applicant_skill_view_form hr.candidate.skill.view.form hr.candidate.skill form New
hr_applicant_view_form hr.applicant.view.form.inherit.hr.recruitment.skills hr.applicant notebook Inherits hr_recruitment.hr_applicant_view_form
hr_applicant_view_search hr.applicant.view.search.inherit.skills hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search
hr_applicant_view_search_bis hr.applicant.view.search.inherit.skills.bis hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search_bis
hr_candidate_view_form hr.candidate.view.form.inherit.hr.recruitment.skills hr.candidate notebook Inherits hr_recruitment.hr_candidate_view_form
hr_candidate_view_search hr.candidate.view.search.inherit.skills hr.candidate xpath Inherits hr_recruitment.hr_candidate_view_search
hr_candidate_view_tree hr.candidate.view.list.inherit.skills hr.candidate xpath Inherits hr_recruitment.hr_candidate_view_tree
hr_job_form_inherit_hr_recruitment_skills hr.job.view.form.inherit hr.job field Inherits hr.view_hr_job_form
Models touched (4)

New fields (2)
  • candidate_skill_ids One2many
    readonly=False related='candidate_id.candidate_skill_ids'
  • skill_ids Many2many
    readonly=False related='candidate_id.skill_ids'
Public methods (0)

No public methods.

New fields (5)
  • candidate_skill_ids One2many → hr.candidate.skill
    string='Skills' args: 'hr.candidate.skill', 'candidate_id'
  • matching_score Float
    compute='_compute_matching_skill_ids' string='Matching Score(%)'
  • matching_skill_ids Many2many → hr.skill
    comodel_name='hr.skill' compute='_compute_matching_skill_ids' string='Matching Skills'
  • missing_skill_ids Many2many → hr.skill
    comodel_name='hr.skill' compute='_compute_matching_skill_ids' string='Missing Skills'
  • skill_ids Many2many → hr.skill
    compute='_compute_skill_ids' store=True args: 'hr.skill'
Public methods (1)
  • action_create_application(self)

New fields (5)
  • candidate_id Many2one → hr.candidate
    comodel_name='hr.candidate' ondelete='cascade' required=True
  • level_progress Integer
    related='skill_level_id.level_progress'
  • skill_id Many2one → hr.skill
    comodel_name='hr.skill' compute='_compute_skill_id' domain="[('skill_type_id', '=', skill_type_id)]" readonly=False required=True store=True
  • skill_level_id Many2one → hr.skill.level
    comodel_name='hr.skill.level' compute='_compute_skill_level_id' domain="[('skill_type_id', '=', skill_type_id)]" readonly=False required=True store=True
  • skill_type_id Many2one → hr.skill.type
    comodel_name='hr.skill.type' required=True
Public methods (0)

No public methods.

New fields (1)
  • skill_ids Many2many → hr.skill
    comodel_name='hr.skill' string='Expected Skills'
Public methods (1)
  • action_search_matching_candidates(self)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/hr_recruitment_skills
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources/Recruitment
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Victor Feyens, Tiffany Chang (tic), Gorash, Kevin Baptiste, sofiagvaladze, Dossogne Bertrand, niyasraphy, Thomas Lefebvre (thle), Jurgen (jugj), Dylan Kiss (dyki), jugj-odoo, Louis (wil)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:05
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_skills
    - hr
    - base_setup
    - base
    - web
    - phone_validation
    - mail
    - bus
    - web_tour
    - resource
    - hr_recruitment
    - calendar
    - onboarding
    - 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

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
hr_applicant_skill_view_form hr.applicant.skill.view.form hr.applicant.skill form New
hr_applicant_view_form hr.applicant.view.form.inherit.hr.recruitment.skills hr.applicant notebook Inherits hr_recruitment.hr_applicant_view_form
hr_applicant_view_search hr.applicant.view.search.inherit.skills hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search
hr_applicant_view_search_bis hr.applicant.view.search.inherit.skills.bis hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search_bis
Models touched (2)

New fields (3)
  • applicant_skill_ids One2many → hr.applicant.skill
    string='Skills' args: 'hr.applicant.skill', 'applicant_id'
  • is_interviewer Boolean
    compute='_compute_is_interviewer'
  • skill_ids Many2many → hr.skill
    compute='_compute_skill_ids' store=True args: 'hr.skill'
Public methods (0)

No public methods.

New fields (5)
  • applicant_id Many2one → hr.applicant
    comodel_name='hr.applicant' ondelete='cascade' required=True
  • level_progress Integer
    related='skill_level_id.level_progress'
  • skill_id Many2one → hr.skill
    comodel_name='hr.skill' compute='_compute_skill_id' domain="[('skill_type_id', '=', skill_type_id)]" readonly=False required=True store=True
  • skill_level_id Many2one → hr.skill.level
    comodel_name='hr.skill.level' compute='_compute_skill_level_id' domain="[('skill_type_id', '=', skill_type_id)]" readonly=False required=True store=True
  • skill_type_id Many2one → hr.skill.type
    comodel_name='hr.skill.type' required=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/hr_recruitment_skills
VERSION
VERSION 1.0
CATEGORY
CATEGORYHuman Resources/Recruitment
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Yannick Tivisse, Romeo Fragomeli, Tiffany Chang (tic), Kevin Baptiste, Dossogne Bertrand, niyasraphy, Jurgen (jugj)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - hr_skills
    - hr
    - base_setup
    - base
    - web
    - mail
    - bus
    - web_tour
    - resource
    - hr_recruitment
    - calendar
    - 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

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
hr_applicant_skill_view_form hr.applicant.skill.view.form hr.applicant.skill form New
hr_applicant_view_form hr.applicant.view.form.inherit.hr.recruitment.skills hr.applicant notebook Inherits hr_recruitment.hr_applicant_view_form
hr_applicant_view_search hr.applicant.view.search.inherit.skills hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search
hr_applicant_view_search_bis hr.applicant.view.search.inherit.skills.bis hr.applicant xpath Inherits hr_recruitment.hr_applicant_view_search_bis
Models touched (2)

New fields (3)
  • applicant_skill_ids One2many → hr.applicant.skill
    string='Skills' args: 'hr.applicant.skill', 'applicant_id'
  • is_interviewer Boolean
    compute='_compute_is_interviewer'
  • skill_ids Many2many → hr.skill
    compute='_compute_skill_ids' store=True args: 'hr.skill'
Public methods (1)
  • create_employee_from_applicant(self)

New fields (5)
  • applicant_id Many2one → hr.applicant
    comodel_name='hr.applicant' ondelete='cascade' required=True
  • level_progress Integer
    related='skill_level_id.level_progress'
  • skill_id Many2one → hr.skill
    comodel_name='hr.skill' compute='_compute_skill_id' domain="[('skill_type_id', '=', skill_type_id)]" readonly=False required=True store=True
  • skill_level_id Many2one → hr.skill.level
    comodel_name='hr.skill.level' compute='_compute_skill_level_id' domain="[('skill_type_id', '=', skill_type_id)]" readonly=False required=True store=True
  • skill_type_id Many2one → hr.skill.type
    comodel_name='hr.skill.type' required=True
Public methods (0)

No public methods.