Your CFO isn’t against hiring. She’s against line items she can’t tie to a number. The good news: a recruiting fee is one of the easiest engineering expenses to defend, because the alternative (an open req) is already costing more than the fee, quietly, every single day.
TL;DR
- Never lead with the fee. Lead with cost of vacancy. A $140K engineering role typically burns $1,500-$2,500 per business day it stays open.
- A 20% contingency fee on that role (~$28K) breaks even at roughly 16 days of avoided vacancy. Most agency searches beat in-house time-to-fill by 30-60 days.
- In-house sourcing isn’t free. It’s 60-80 recruiter hours plus 50-60 engineering hours per hire, charged at fully loaded cost and invisible on the P&L.
- The thing the fee actually buys is the replacement guarantee. A bad hire costs 3-6 months of salary plus a second search.
- Know your fee model before the meeting: contingency, retained, or monthly staff augmentation. Each hits cash flow differently and your CFO cares about that more than the percentage.
- Bring a one-pager with five numbers, not a deck. Template at the bottom.
All figures below are illustrative. Swap in your own salary bands, revenue per engineer, and time-to-fill before you walk into the room.
Step 1: Put a daily price on the open req
Finance thinks in dollars per period. So convert the vacancy into one.
Two ways to get there. The revenue method: take annual revenue divided by number of engineers, then divide by ~260 business days. A company at $12M ARR with 40 engineers is at $300K revenue per engineer, or roughly $1,150 per engineer per business day. The roadmap method: take the fully loaded cost of the role (base × 1.25-1.4 for payroll taxes, benefits, equipment, software) and apply the value multiple your business already uses to justify headcount (usually 2-3x). A $140K base becomes ~$180K loaded, and at 2.5x that’s $450K of expected annual output, or ~$1,730 per business day.
Either way you land in the $1,500-$2,500/day band for a mid-to-senior engineering role. That’s your anchor number. Say it out loud in the first 60 seconds: “This req has been open 51 days. At $1,800 a day, we’ve already spent $92,000 of roadmap we’ll never get back, and we have nothing to show for it.”
One caveat that keeps you honest: cost of vacancy is not a cash cost, and your CFO will say so. The answer is that it’s an opportunity cost with a delivery date attached: a delayed release, a missed SLA, a team carrying 1.3x load.
Step 2: Price the in-house search honestly
The “free” internal search is the most expensive thing in this comparison, and it’s expensive in a currency Finance doesn’t see: engineering hours. A typical senior backend search that ends in one hire runs through 150-250 sourced profiles, 25-35 screens, and 4-6 onsite loops. Count it:
- Recruiter time: 60-80 hours across sourcing, screening, scheduling, and follow-up. At a $110K salary loaded to ~$143K, that’s ~$69/hour → $4,100-$5,500.
- Engineering time: 50-60 hours across take-home reviews, technical screens, panel loops, and debriefs. At $180K loaded, ~$87/hour → $4,400-$5,200.
- Hiring manager time: 20-25 hours of calibration, intake, debriefs, and closing calls → $2,200-$2,800.
- Tooling and job ads: $1,500-$3,000.
That’s $12K-$16K of real cost before anyone is hired, and it’s spent whether or not the search succeeds. Also worth naming: those 60 engineering hours came out of the same roadmap you’re trying to protect.
Step 3: Show both scenarios side by side
This is the table that ends the argument. Same role, $140K base, two paths.
| Line item | In-house only | Agency-assisted |
|---|---|---|
| Days to fill | 75 | 35 |
| Recruiter hours (loaded) | 80 hrs → $5,520 | 20 hrs → $1,380 |
| Engineering interview hours (loaded) | 60 hrs → $5,220 | 25 hrs → $2,175 |
| Hiring manager hours (loaded) | 25 hrs → $2,750 | 10 hrs → $1,100 |
| Job ads + sourcing tools | $2,000 | $0 |
| Agency fee (20% of base) | $0 | $28,000 |
| Cost of vacancy @ $1,800/day | $135,000 | $63,000 |
| Total cost of the hire | $150,490 | $95,655 |
Delta: ~$55,000 in favor of paying the fee. And the breakeven is the sentence to underline: $28,000 ÷ $1,800 per day = the fee pays for itself if the agency saves you 16 business days. You’re projecting 40. That’s a wide margin of safety, and margin of safety is a language CFOs speak natively.
If your CFO discounts cost of vacancy entirely (some do), run the table again at $0/day. The agency scenario still wins on hard costs only if the fee is under ~$9K, which it won’t be. So don’t hide from that. Say: “On pure cash costs, in-house is cheaper. The entire case rests on time. If you believe an engineer produces more value than they cost, the math is decisive. If you don’t, we shouldn’t be hiring at all.”
Step 4: The bad hire is the risk you’re actually insuring against
A mis-hire at $140K costs 3-6 months of salary before anyone admits it ($35K-$70K), plus manager time on performance management, plus the team’s rework, plus a second search that resets the whole clock. Realistic all-in: $80K-$120K.
This is why the replacement guarantee is the real product. A serious agency replaces a hire who leaves or fails inside 60-90 days at no additional fee. Reframed for Finance, the fee isn’t a finder’s fee. It’s a priced warranty on a $180K/year commitment. Nobody in your company would buy $180K of infrastructure with no SLA.
Push on the guarantee terms before you present. Get the window in writing, confirm it covers voluntary departures and not just terminations, and confirm it’s a replacement rather than a credit toward a future search. A credit is worth far less and your CFO will spot the difference.
Step 5: Know your fee model and how it books
Three structures dominate, and they have different consequences for cash flow, which is often the actual objection hiding behind “the fee is too high.”
| Model | Typical shape | Cash impact |
|---|---|---|
| Contingency | 18-25% of first-year base, paid only on start date | One-time hit, lands in the month they start; zero risk if no hire |
| Retained / engaged | Same range, split into 2-3 installments (kickoff, shortlist, start) | Some cash at risk upfront; usually buys priority and exclusivity |
| Monthly staff augmentation | Flat monthly rate per engineer, no placement fee | Predictable recurring OpEx, no lump sum, cancel with notice |
The accounting side, briefly: recruiting fees are almost always operating expense recognized in the period incurred, sitting in G&A or the hiring department’s cost center, not capitalized as an asset. Confirm treatment with your controller before you assert it, but expect a one-time OpEx spike, which is exactly why the monthly staff aug model is easier to approve when there’s no room in the quarter for a lump sum.
Step 6: The five objections, and what to say
“We already pay a recruiting team. Why pay twice?” You’re not paying twice; you’re paying for a different funnel. Your internal team owns the roles where inbound works. This one has been open 51 days with 2 onsites, and their time is better spent on the four reqs that are converting.
“20% for a few résumés is outrageous.” The percentage is the wrong unit. Compare it against $135K of vacancy cost and $12K of internal search cost. Also: contingency means we pay $0 if they deliver nothing. Name a vendor with better downside protection.
“Can we negotiate it down?” Sometimes, and here’s the trade. Volume commitments (3+ hires) and exclusivity move the number more than haggling does. Cutting the fee by 3 points saves $4,200, roughly two days of vacancy. Trading fee for a longer guarantee window is usually the better deal.
“What if they quit in three months?” That’s what the 90-day replacement guarantee covers, in writing. Here’s the clause.
“It’s not in this quarter’s budget.” Then compare it to the alternative in the same quarter: the vacancy is already spending $1,800 a day off-budget, it just doesn’t have an invoice attached. If cash timing is the real blocker, the monthly staff augmentation model spreads it and needs no lump sum.
Step 7: The one-pager you can copy
Send this 24 hours before the meeting. Five numbers, one page, no deck.
- Req: Senior Backend Engineer, $140K base | Open since: [date], [X] days
- Cost of vacancy: $1,800/day → $[X] burned to date
- In-house search cost so far: [X] recruiter hrs + [X] engineering hrs = $[X], 0 offers
- Proposed: [Agency], 20% contingency = $28,000, paid on start date, 90-day replacement guarantee
- Projected time-to-fill: 35 days vs. 75 in-house → 40 days of vacancy avoided = $72,000
- Breakeven: fee is repaid at 16 days of time saved
- Net expected impact: -$55,000 total cost of hire
Numbers your CFO can audit, an ask with a ceiling, and a risk clause. Most approvals stall not because the fee is too high, but because the requester never quantified the alternative.
Frequently Asked Questions
What is a typical recruiting fee for an engineering role?
Contingency fees for technical roles usually run 18-25% of first-year base salary, paid only when the candidate starts. Retained search sits in a similar range but is invoiced in installments. Staff augmentation replaces the fee entirely with a monthly rate per engineer.
How do I calculate cost of vacancy if my team doesn't touch revenue directly?
Use the loaded-cost multiple instead. Take base salary × 1.25-1.4 for fully loaded cost, apply the 2-3x value multiple your company already implicitly uses when it approves headcount, then divide by ~260 business days. If your company can't articulate why an engineer is worth more than they cost, that's a bigger conversation than the fee.
Is a recruiting fee OpEx or can we capitalize it?
In practice it's recognized as operating expense in the period incurred, typically in G&A or the hiring department's cost center. Internal engineering payroll on qualifying development work may follow different treatment under your company's software-cost policy, but the external fee generally doesn't. Confirm with your controller rather than asserting it in the meeting.
What should I negotiate besides the percentage?
The replacement guarantee window (push for 90 days over 60), whether it covers voluntary departures, and whether it's a true replacement or a credit. Volume commitments and exclusivity give you more leverage on price than direct haggling, and a longer guarantee is usually worth more than two or three points off the fee.
How do I handle a CFO who won't accept cost of vacancy as a real number?
Run the comparison twice (once with cost of vacancy, once without) and say the quiet part directly. Without it, the case rests on internal search cost and hit rate alone, which is a weaker argument. Then tie the delay to something Finance already tracks: a committed release date, a renewal at risk, a support backlog.
When is paying a fee genuinely the wrong call?
When the role isn't urgent, your inbound funnel is already producing qualified candidates, or the req is poorly defined. Agencies amplify a working process; they don't fix a broken scorecard. If your last three searches failed at the offer stage, fix compensation and the interview loop before you write a check.