EH HR Background Verification
Track criminal, education, employment, reference, and credit checks from request to clearance, every step on a tamper-evident audit trail.
Why this module
EH HR Background Verification
One job, done cleanly
A focused background-check record with five check types, a four-step workflow, and a chatter. No vendor lock-in, no half-built integrations, no claims the code cannot back.
Rules that match your suite
Workflow steps, group gating, and the audit trail come from the shared EH HR Platform engine, so background checks behave exactly like the rest of your HR documents rather than reinventing them.
Proof, not just records
Every change lands in an append-only, sha256 hash-chained log that a single verify pass can confirm has not been tampered with. That is the difference between a note and an audit trail.
Day in the life
From candidate to cleared
An HR officer opens a check for a candidate, picks criminal or reference or one of the other types, and names the agency. They press Request, then Start once the agency is engaged. When results come back the officer records the outcome and presses Clear, or presses Flag if something needs attention. Both outcomes are final, so the result stands. Behind the scenes every step is timestamped against the user, chained into the audit log, and kept inside the candidate's company, with the reference number assigned automatically the moment the record was saved.
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.
Reference numbers are assigned only when the field still reads New, so re-saving, duplicating, or importing a record never burns a second sequence number or overwrites an existing reference.
Cleared and Flagged are marked terminal in the workflow definition. The engine refuses any further transition out of a final state, even one a misconfigured definition might declare, so a closed check cannot be quietly reopened.
The audit log takes a Postgres transaction-scoped advisory lock before computing each row hash, so two checks saved at the same instant cannot fork the chain. The lock releases automatically on commit or rollback.
Each audit row hashes the previous row's hash plus its own fields. A single verify pass walks the chain with keyset pagination and returns the first row whose hash no longer matches, catching any after-the-fact edit.
Every check is pinned to its owning company on create and required to stay there. A write that tries to move a record into a company the user does not belong to is rejected, and any permitted cross-company move is itself written to the audit log.
Each workflow transition is restricted to the HR Officer group. A user outside the allowed groups who somehow reaches the button is refused at the transition, not just hidden from it in the view.
An edit that does not actually change any captured field writes no audit row, so the trail records real state changes rather than noise from no-op saves.
What is inside
Built to do the job, end to end.
- Five check types. Criminal, education, employment, reference, and credit, as a single selection on the record so reporting and filtering stay clean.
- Four-step workflow. Draft, Requested, In Progress, and a terminal Cleared or Flagged outcome, drawn from a configurable workflow definition rather than hard-coded states.
- Automatic reference numbers. A yearly sequence in the form BG slash year slash a zero-padded counter, assigned on save and never duplicated.
- Hash-chained audit trail. State, employee, check type, agency, and completion date changes are captured into the shared append-only audit log with a verifiable hash chain.
- Strict multi-company. Records are scoped to their owning company on create and protected against unaudited cross-company moves.
- Chatter and tracking. A mail thread on every record, with tracked changes on employee, check type, state, and completion date for at-a-glance history.
Honest about the edges
What this does not do, so nothing surprises you.
- This module does not integrate with any external screening agency or vendor API. The agency is recorded as free text and the workflow is driven manually by your HR officers.
- There is no built-in document upload beyond standard chatter attachments, and no encryption of background-check notes at rest within this module.
- There is no automatic re-check scheduling, expiry reminder, or cron in this module. Checks are opened and advanced by people, not on a timer.
- Approval gating and self-approval guards exist in the underlying platform engine but no transition in this module is configured to require approval, so checks clear on a single HR officer's action by default.
- The model covers the check itself. It does not manage onboarding stages, offers, or recruitment pipelines; pair it with your recruitment and onboarding modules for that.
odoo 18 background check, employee background verification odoo, pre-hire screening odoo, criminal record check hr, reference check workflow, education verification odoo hr, employment history verification, credit check employee odoo, hr audit trail odoo, candidate screening odoo community, multi company hr odoo, tamper evident audit log
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