Candidates move one stage at a time.Hires count against an open role.
A recruiting agent can screen and advance candidates. It can't skip a round, and a hire needs an approved requisition with a position still open.
Where agent recruiting goes wrong.
01
Rounds get skipped
An eager agent moves a strong CV straight to offer.
02
Roles get overfilled
Two offers accepted against one open position.
03
Hires against unapproved roles
A requisition still waiting on sign-off ends up with a new joiner.
Scenarios
Questions a hiring team can answer.
How OpenHR answers
Each candidate sits at one stage, with the note from their last move.
How OpenHR answers
Yes. Ishaan is at offer, and the requisition is approved with a position open. A pending or full requisition would refuse the hire.
How OpenHR answers
Withdrawn and rejected are reachable from any live stage, and both are final.
What changes.
- Every round happensStages move forward one at a time, never backwards.
- Positions can't be overfilledHires are counted against the requisition's positions.
- Interview scores in one placeget_candidate returns every round, the scores and the average.
- No per-seat billOpen source under Apache 2.0, on a machine you run.
Controls.
Leave can't go negative
A tracked balance never drops below zero, and overlapping requests are refused.
One holder per asset
A second open assignment is refused by the service and by a database index.
Exits gate on custody
Asset clearance can't be signed off while kit is out.
Audit log
Every change writes an audit row in the same transaction.
Read-only SQL
run_query accepts SELECT statements only.
Self-hosted
One SQLite file on infrastructure you control.
Questions.
Does a hire create the employee record?
Not automatically. create_employee onboards them, with leave entitlements for the joining year created in the same transaction.
Can it raise or approve requisitions?
Not in v0.1. The tools read requisitions; their status is set outside the MCP server.
Does it have sign-in?
Not yet. The open-source server has no sign-in or roles, and its HTTP transports bind to localhost by default. Keep it off shared networks. API keys with employee, manager and HR-admin roles are planned for v0.2, and Attri adds sign-in and roles in managed deployments.
Let your agents handle the HR admin.Keep the rules on the server.
Run OpenHR on a demo company in minutes, or have Attri deploy it inside your environment with sign-in, roles and approval rules.