EH HR Skills
Define the skills a job needs, then see exactly where each employee falls short.
Why this module
EH HR Skills
Builds on standard Skills, does not replace it
Required skills point at the native hr.skill and hr.skill.level records, and gaps read the employee's own skill rows. There is no parallel skill catalogue to keep in sync, and your existing skill data carries straight through.
On-demand gap analysis, classified three ways
Run the analysis from the employee form and each required skill is graded missing, below the required level, or met by comparing level progress. A count of unmet skills sits on a smart button so managers see standing at a glance.
Recomputing never leaves duplicate rows
Each recompute clears the employee's old gap rows and rebuilds them, so running it twice gives the same result instead of stacking duplicates. This is covered by the shipped test suite.
Day in the life
Setting a role's bar and checking who clears it
An HR officer opens the Developer job, adds Python at Expert, SQL at Intermediate and Git at Beginner to its required-skills matrix. On an employee's form they hit the Skill gaps button: the analysis rebuilds, showing Python below required, SQL missing and Git met, with a count of two unmet skills on the button. The Skill Gaps menu lists everyone's gaps, defaulting to unmet only and grouped by employee, with color-coded status and group-by on status or skill type for a whole-team read.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
action_compute_skill_gaps unlinks the employee's existing gap rows before recreating them, so a second run produces the same rows rather than duplicates. The shipped test asserts the row count stays stable across repeated runs.
Employees with no job position are skipped during recompute rather than erroring, so the action runs safely across a mixed selection of staff.
Met versus below is decided on the numeric level_progress of the skill level, not the level name, so a higher proficiency correctly satisfies a lower requirement and a required skill with no level set treats any held level as met.
The current-level lookup reads current_employee_skill_ids where the framework exposes it and falls back to employee_skill_ids otherwise, so the same code reads the right active skill rows across Odoo series.
Each gap row carries an indexed company_id related from the employee, so gap lists respect the company a user is working in.
HR admins and officers can read and maintain required skills and gaps; self-service employees get read-only access and cannot edit the matrix or fabricate gap rows.
What is inside
Built to do the job, end to end.
- Required-skills matrix on the job. A new eh.hr.job.skill model hangs off hr.job as required_skill_ids: each line is a skill plus an optional minimum level, with the skill's type carried as a stored field for grouping and filtering.
- Materialized gap rows. eh.hr.skill.gap holds one row per required skill per employee, with required and current level, required and current progress, and a missing / below / met status. Related job, company and skill-type fields are stored so the list can be grouped and searched.
- Employee smart button and count. hr.employee gains a skill-gap one2many, an unmet-gap count compute, and a Skill gaps stat button on the form that recomputes the analysis and opens the filtered gap list.
- Gap list, filters and menus. The Skill Gaps view color-codes status, defaults to unmet only grouped by employee, and offers Missing and Unmet filters plus group-by on employee, status and skill type. Required Skills and Skill Gaps menus sit under the HR talent section, gated to officers.
- Security and tests. Access rules give admins and officers full control and self-service employees read-only access. A post-install test suite covers the job matrix, the three-way classification and the duplicate-free recompute.
Honest about the edges
What this does not do, so nothing surprises you.
- Gap analysis is recomputed on demand from the employee form or the action; there is no scheduled cron job that refreshes gaps automatically.
- There is no email, chatter notification or escalation when a gap appears; the result is a list and a count, not an alert.
- This module compares existing employee skills against a job's requirements. It does not score recruitment candidates or applicants, and it does not propose training plans or courses.
- Required levels are matched on the native skill level progress value, so it relies on your skill types having meaningful level progress configured.
- It depends on standard hr_skills plus the platform's eh_hr_core and eh_hr_compat; it is not a standalone skills catalogue and does not run without them.
- There is no built-in export, dashboard, pivot or graph view; reporting is the grouped and filtered gap list.
Odoo 16 HR skills, required skills per job, employee skill gap analysis, hr_skills extension, job competency matrix, skill level matching, talent gap report, workforce capability, missing skills by position, Odoo skills matrix, proficiency requirements, HR officer skill review
Need this fitted to the way you work?
ERP Heritage delivers end to end Odoo work: Odoo Implementation, Customization and Development, Integration, Migration, Consultation, Support and Training. We help teams put this module into production, shape it to their process, and keep it running.
We work with businesses across Australia (Melbourne, Sydney, Brisbane, Perth, Adelaide, Canberra) and the Middle East (Dubai, Abu Dhabi, Riyadh, Jeddah, Doha, Kuwait City, Muscat). Start a conversation at erpheritage.com.au or email info@erpheritage.com.au.
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Please log in to comment on this module