Odoo 19 Recruitment is a Community app that runs hiring as a kanban pipeline of applicants per job position, from the first email or website application to a signed contract. Interview forms, SMS, and website job posting are optional add-ons; offer letters with e-signature and CV scanning need Enterprise. The step most teams skip is the hand-off: an applicant becomes an employee with one button, and that is where an onboarding plan should start.
Job positions and how applications arrive
Everything hangs off the job position (Recruitment > Configuration > Job Positions). Each position carries a department, a recruiter, a list of interviewers, a target number of new employees, a job summary, and an email alias. Any email sent to that alias creates an applicant for that position with the CV attached.
Applications come in by four routes:
- The job alias, for example
[email protected], which is what most Indian SMEs start with because Naukri, LinkedIn and referral emails can simply be forwarded. - Your website, once Online Posting is ticked in settings. That installs the Online Jobs module (
website_hr_recruitment), which publishes positions and an application form. - Job boards. Under Configuration > Job Boards > Emails, Odoo lists the sender addresses of LinkedIn, Jobsdb and Indeed so that notifications from them are not mistaken for the applicant's own email. You can add the addresses your own boards send from, with a pattern to pull the candidate's name from the subject.
- Manual entry or import, which is fine for walk-ins and campus drives.
Each position also has its own Applicant Properties, custom fields that exist only on applicants for that job. Use them for the two or three facts that decide a shortlist, such as notice period or a required licence, rather than adding fields to every applicant in the company.
The applicant pipeline and stages
A fresh database has six stages: New, Qualification, First Interview, Second Interview, Contract Proposal and Contract Signed. Contract Signed is flagged as the Hired Stage, which is what sets the hire date and counts the applicant as hired in reports. Stages can be shared by all jobs or limited to specific ones.
Two stage settings do real work:
- Email Template. When an applicant enters the stage, Odoo posts that template to them. The New stage ships with an acknowledgement email already attached; check its wording before you go live, because it will reach every applicant.
- Hired Stage. Only tick it on the last stage. If a stage that already holds applicants loses the flag, Odoo warns you, because it changes their status.
Every applicant has an evaluation (stars), a kanban state (In Progress, Ready for Next Stage, Waiting, Blocked), tags, expected and proposed salary, and an availability date. Interviews are calendar meetings created from the applicant, so interviewers see them in their own calendar with the applicant linked.
Refusals, duplicates and talent pools
Refuse opens a wizard with a reason and an optional email. Six reasons are provided, including "Does not fit the job requirements", "Job already fulfilled", "Duplicate" and two "Refused by applicant" reasons (job fit and salary), which is useful later when you ask why offers are being turned down. The wizard can also refuse duplicate applications from the same email or phone in one go.
Good candidates you cannot hire now can be added to a talent pool (Applications > By Talent Pools) and pulled into a future job with Create Applications. That keeps their history instead of creating a stranger's record when they reapply.
Interview forms, access and offers
Recruitment has three access levels: Interviewer, Officer: Manage all applicants and Administrator. Interviewers only see applicants for jobs where they are listed as interviewers, or applicants they have been added to individually, which is usually what department heads need. Salary fields are hidden from interviewers.
Tick Send Interview Survey in settings to install interview forms (hr_recruitment_survey, Community, built on the Survey app). Each job position then gets an Interview Form, and the applicant gets Send Interview to email it to the candidate. We use it for structured pre-screening questions; interviewers' own notes are better kept in the applicant's chatter or notes.
Offers are where the editions split:
| Need | Module | Edition |
|---|---|---|
| Record proposed and expected salary, send a letter by email | Recruitment | Community |
| Send documents to applicants for e-signature | Recruitment - Signature (hr_recruitment_sign) | Enterprise |
| Generate an offer link the candidate opens, reviews and signs | Salary Configurator (hr_contract_salary) | Enterprise |
| Fill applicant name and email from a scanned CV | Résumé Digitization (OCR) | Enterprise, uses IAP credits |
The Salary Configurator adds Generate Offer to the applicant. An offer is tied to a contract template and a Sign template, and is valid for 30 days by default. The only country pack for it in 19.0 is Belgian, so Indian companies will need to set up their own benefits and CTC breakdown before it is useful; for many, a signed PDF through Sign is enough.
From hire to onboarding
Once the applicant is in the hired stage, Create Employee (visible to users with the Employees Officer right) builds the employee record with name, contact details, job position and department carried over, and links the two so the application history stays reachable. Then the employee side takes over (see part 24): load a contract template for the first version and launch the onboarding plan.
- Before hiring starts, edit the Onboarding plan under Employees > Configuration > Employee > Onboarding / Offboarding. Assign each activity to the manager, the coach, the employee, or a named person in IT or admin.
- Create department-specific plans where the work genuinely differs, for example a plant induction with safety training.
- On hire, click Create Employee, set the contract start date, and apply the contract template.
- Click Launch Plan. The activities land in each assignee's to-do list with due dates.
- Create a user only if the new joiner will log in, and collect PAN, bank and UAN details for payroll before the first pay run.
Activity plans also work on applicants themselves (Recruitment > Configuration > Activities > Activity Plans), which is handy for pre-joining checks such as reference calls and background verification.
Recruitment > Configuration > Settings > Online Posting Recruitment > Configuration > Settings > Send Interview Survey Recruitment > Configuration > Stages Recruitment > Configuration > Activities > Activity Plans
Start with one job position, the default stages and the email alias; add the website, interview forms and signatures once the team is actually using the pipeline. Next in the series: time off and attendance. If you want help shaping the process, get in touch.
Questions we get asked
Is Odoo 19 Recruitment free in Community edition?
Yes. The Recruitment app, website job posting (Online Jobs), interview forms and talent pools are all Community modules under LGPL. The Enterprise-only pieces are the Salary Configurator for online offers, Recruitment - Signature for e-signing documents, CV scanning (Résumé Digitization) and the employee referral programme. Community is free; Enterprise pricing is on odoo.com/pricing.
Can Odoo import applicants from Naukri or LinkedIn?
Not through a built-in Naukri connector. The practical route is the job position's email alias: forward or route job board notifications to it and Odoo creates an applicant with the attachment. Job board sender addresses can be listed under Configuration, Job Boards, Emails so Odoo does not treat the board's own address as the candidate's email.
How do I send an offer letter from Odoo 19 Recruitment?
In Community, record the proposed salary on the applicant and email the letter as an attachment from the chatter. With Enterprise, Recruitment - Signature sends documents for e-signature, and the Salary Configurator adds a Generate Offer button that emails the candidate a link to review and sign a contract based on a template. Offer links are valid for 30 days by default.
What happens when an applicant is hired in Odoo 19?
Moving the applicant into the hired stage, Contract Signed by default, sets the hire date and marks them as hired. Clicking Create Employee then builds an employee record with contact details, job and department copied across and linked to the application. From the employee form you apply a contract template and launch the onboarding activity plan.