How to calculate Cost per Hire
Cost per hire is the average total cost of recruiting one new employee.
Formula
Cost per hire = (internal recruiting costs + external recruiting costs) ÷ hires in periodSQL query
This example assumes: recruiting_costs(month, type, amount), hires(id, hired_at). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.
SELECT SUM(c.amount) / NULLIF(h.hires, 0) AS cost_per_hire
FROM recruiting_costs c
CROSS JOIN (SELECT COUNT(*) AS hires FROM hires
WHERE hired_at >= DATE '2026-01-01' AND hired_at < DATE '2027-01-01') h
WHERE c.month >= DATE '2026-01-01' AND c.month < DATE '2027-01-01'
GROUP BY h.hires;Common mistakes that make Cost per Hire wrong
- Internal costs (recruiter salaries, tools) are easy to forget and make the figure too low.
- Spend and hires in the same period ignore long pipelines.
- Executive hires cost far more; show the average by level.
Ask for Cost per Hire in plain English
Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.
- What was our cost per hire last year?
- How does cost per hire differ by role type?