H1HIRD One
Back to Resource Library
Blog

How to Build a Recruitment Pipeline That Doesn't Leak Candidates

September 30, 2026

Every recruiter has felt it: a strong candidate goes quiet between screening and the client interview, and three weeks later nobody remembers whose job it was to follow up. The role eventually gets filled, but slower and with more churn than it should have taken. That gap has a name — pipeline leakage — and it's rarely a sourcing problem. Most leaks happen after the candidate is already found.

Every recruiter has felt it: a strong candidate goes quiet between screening and the client interview, and three weeks later nobody remembers whose job it was to follow up. The role eventually gets filled, but slower and with more churn than it should have taken. That gap has a name — pipeline leakage — and it's rarely a sourcing problem. Most leaks happen after the candidate is already found.

Start by naming your stages honestly

A pipeline only catches leaks you can see. If your stages are vague — "In Progress," "Active" — nobody can tell where a candidate actually stalled. A workable stage list is specific enough that everyone on the team would place the same candidate in the same stage:

  • Sourced — identified, not yet contacted

  • Screened — a real conversation happened, fit confirmed

  • Submitted to Client — resume sent, client hasn't responded

  • Interview Scheduled / Completed

  • Offer Extended

  • Joined

The exact list depends on your process, but the test is the same: can two recruiters looking at the same candidate agree on their stage without discussing it? If not, the stage names are doing too much work.

The four places candidates actually fall through

No owner after handoff. A candidate sourced by one recruiter and submitted by another is an orphan the moment neither one checks back. Every candidate needs exactly one person accountable for their next action, at every stage — not "the team," one name.

No time limit per stage. "Submitted to Client" with no expected response window quietly becomes a place candidates go to be forgotten. Put a real number on it — 5 business days, 10, whatever's realistic for that client — and make stalled candidates visible, not just searchable.

Follow-up that depends on memory. If chasing a client for feedback relies on a recruiter remembering to do it, it won't happen consistently once that recruiter has twelve other open roles. This is the single highest-leverage thing to automate: a stalled-candidate alert beats a diligent recruiter's memory every time, because it doesn't have a bad week.

Data split across tools. When sourcing lives in a spreadsheet, screening notes live in email, and client communication lives in WhatsApp, nobody has one place to see a candidate's actual status — including the candidate, who gets asked the same question twice by two people who didn't know the other had already asked.

What to actually measure

Time-to-fill is the metric everyone tracks and the one that explains the least. Two numbers matter more for finding leaks specifically:

  • Drop-off rate per stage — what percentage of candidates that enter a stage never reach the next one. A pipeline that loses 60% of candidates between "Submitted" and "Interview" has a real problem there, even if overall time-to-fill looks fine.

  • Stalled-candidate count, right now — not a report you run weekly, a number you can see today. If it's not visibly zero, someone should already know why.

The underlying fix

Every leak above traces back to the same root cause: recruiting information living in more places than the people managing it can hold in their heads at once. A spreadsheet, a separate screening doc, a client email thread, and a payroll system that only finds out about a hire after the fact — each handoff between them is a place a candidate can quietly disappear.

The fix isn't more discipline from already-stretched recruiters. It's a pipeline where a candidate's stage, owner, and next action live in exactly one place, visible to everyone who touches that requisition — so a stall shows up as a stall, not as silence.