Tracking
Shipping todayApplicant tracking built for a billing desk
Most tracking systems were designed for a corporate hiring team with one client. Agency desks run twenty clients at once, and the workflow has to survive that.
Surhires tracks a candidate from application through screening, submittal, interview, offer and placement using a stage machine you configure per client or per job type. Every stage change records who moved it, when, and why, using a fixed disposition list rather than free text, so the pipeline can be reported on and audited.
By Surhires Editorial · Published · Reviewed
In the product: ApplicationDetailPanel.tsx, recruitmentStageMachine.ts, RecruiterDecisionControl.tsx and JobDetailView.tsx
The agency workflow is not the corporate workflow
In-house tracking systems assume one employer, one approval chain and one definition of a stage. An agency desk has a different client every few rows: one wants a formatted CV and a written summary, another wants a video introduction, a third wants three candidates presented at once or none at all.
Surhires lets the stage machine differ by client and by job type. A contract IT requisition can run sourced, screened, submitted, client interview, offer, contract signed, started. A retained search can run longlist, research call, longlist presented, shortlist, first interview, second interview, offer, placed. The pipeline view stays consistent even when the underlying stages do not.
There is a second difference that matters more than the stage names. In-house, a candidate belongs to one process. On an agency desk the same person can be live on three requisitions for three clients at once, at three different stages, with three different rates on the table. A system built around a single application object forces recruiters to duplicate the candidate to model that, and the duplicates are where the database starts to rot.
Submittals are a first-class object
The moment that decides whether a desk bills is the submittal, and in most systems it is a status change. Surhires treats a submittal as a record: which candidate, to which client contact, against which requisition, with which documents, at what rate or salary, on what date, and what came back.
That makes the two questions agency owners actually ask answerable. How many submittals did this desk send last week, and what is the submittal-to-interview rate per client? Both are reports rather than a spreadsheet somebody maintains on Fridays.
It also fixes the version problem. The formatted CV that went to the client, the rate that was quoted and the summary that was written are attached to the submittal rather than to the candidate, so a candidate presented to two clients at two rates has two accurate records instead of one that reflects whichever submittal happened last. When a client comes back three weeks later, what they were sent is retrievable exactly as it was sent.
Dispositions are a fixed list, not free text
When a candidate is rejected, the reason is recorded from a standard list: failed technical screen, salary above budget, a better-qualified candidate was selected, candidate declined, candidate accepted a counter-offer, position withdrawn. Free-text rejection notes are still allowed, but the coded reason is mandatory.
This is partly analysis and partly defence. Coded dispositions let you see that a particular client rejects on salary sixty percent of the time, which is a conversation about the brief rather than about the candidates. They also mean that if a hiring decision is ever questioned, the record reconstructs what happened rather than offering an empty field.
The list is deliberately short. A code list that grows to forty entries stops being a list and becomes free text with a dropdown, because nobody scrolls to find the accurate one and everything ends up under other. Agreeing on a dozen codes that the desk will genuinely use, before recruiters start working, is worth more than a comprehensive taxonomy nobody applies consistently.
Interview coordination without the reply-all chain
Interview scheduling reads the panel's calendars, proposes slots, holds them, and sends the candidate a link. Reschedules update everybody rather than requiring a fresh email thread. Reminders go out at a configurable interval before the slot, through whichever channel the candidate agreed to.
Feedback is captured against a scorecard rather than in a reply. Structured feedback is the only kind that can be compared across a panel, and the only kind that supports a defensible decision later.
The case worth designing for is the reschedule, because it is the one that costs a desk placements. When a client moves a slot at short notice, the candidate has to be told, the panel hold has to be released, the new time has to respect a time zone nobody checked, and somebody has to notice if the candidate never confirms. Each of those is a small thing that gets missed on a busy afternoon, and the aggregate of missing them is a candidate who quietly goes cold.
The pipeline view an owner can read
The Placement Pipeline Command Centre shows submittals out, interviews booked, interviews slipped, offers live with acceptance risk, placements closed and revenue booked, and it highlights placements sitting inside a guarantee window where a drop-out would cost a rebate.
The value of the view is that it is derived from the working records rather than typed into a report. Nobody updates it on a Friday, so it does not go stale between Fridays.
That also changes what a management meeting is about. When the numbers come out of the records, the meeting is not spent establishing what happened, which is where most of the hour normally goes. It starts from an agreed picture and moves straight to the two or three requisitions that are in trouble, which is the only part of the conversation that changes an outcome.
An audit trail that survives a question
Every stage change is immutable: who, when, from what to what, and with which disposition. Notes can be edited, but the stage history cannot be rewritten.
For agencies working with government, regulated or enterprise clients, that trail is frequently what procurement asks about. It is also what turns a disputed placement fee into a two-minute conversation.
Immutability has a cost worth stating plainly. A recruiter who moves a candidate to the wrong stage cannot make that disappear; they move it back, and both transitions stay in the history. That looks untidy and it is the point. A history that can be tidied is a history nobody can rely on, and the entire value of the trail comes from the fact that it was never editable.
The first week is spent on stages, not on data
Every team configuring a tracking system for the first time makes the same mistake, which is to model every nuance of every client. Fourteen stages later, half of them are never used and recruiters skip three at a time, which destroys the conversion reporting the stages existed to produce. The working test for whether a stage should exist is simple: a real decision happens there, and somebody would report on how many candidates got past it.
The order that works is to start from the vertical template closest to your desk, whether that is contingent permanent placement, retained executive search, contract and temp staffing, RPO delivery or in-house corporate talent, then configure one demanding client as a variant and run it for a fortnight before cloning anything. Two weeks of real use tells you which stages are load-bearing far better than a workshop does.
The disposition codes deserve the same fortnight. Agree them once, at desk level, before anyone starts working, because codes added later cannot be applied retrospectively to decisions already recorded. A gap in the middle of your first quarter of reporting is a small thing that becomes annoying every time somebody asks a year-on-year question.
Where an applicant tracking system does not help
It does not source. An empty pipeline is a sourcing problem, and a tracking system makes an empty pipeline extremely visible without making it any smaller. The same applies to a pipeline full of candidates who do not meet the brief: the board will show you the volume, and it will not tell you the requisition was mis-scoped unless the coded dispositions say so.
It does not make a client respond. A submittal that has been silent for nineteen days is surfaced, prioritised and attached to the client contact who has not replied, and then a human has to pick up the phone. Software can remove the excuse that nobody noticed. It cannot remove the call.
And it stops where the employment relationship starts. Surhires is recruitment software, not an HRIS, a payroll system, a background-check provider or an assessment platform. Tracking runs from requisition through to placement and the first invoice. Onboarding paperwork, timesheets, payroll and employee records live in systems built for that, and we would rather integrate with them than claim to replace them.
What you get
Configurable stage machine
Different stage sets per client or job type, one consistent pipeline view.
Vertical stage templates
Contingent, retained, contract, RPO and in-house templates configured at signup, then edited rather than built from nothing.
Submittal records
Candidate, contact, requisition, documents, rate and outcome captured as an object.
Coded dispositions
A fixed rejection-reason list, mandatory at every drop-out, reportable and auditable.
Requisition detail
Must-haves, nice-to-haves, salary band, interview stages and the client contact chain.
Requisition ownership
Lead recruiter, sourcers and the client contact chain recorded, so cover during leave is unambiguous.
Kanban and list views
Drag a candidate between stages or work the same pipeline as a keyboard-driven list.
Interview scheduling
Panel availability, held slots, candidate self-select and automatic reschedule notices.
Structured scorecards
Interviewers score against the requisition rather than writing a paragraph.
Offer tracking
Offer value, response deadline, acceptance state and counter-offer risk.
Guarantee window
Placements inside a rebate period flagged until the window closes.
Immutable stage history
Every transition recorded with actor, timestamp and reason; notes editable, history not.
Client-side visibility
Share a shortlist with a hiring manager without giving them a seat.
Pipeline reporting
Submittal-to-interview and interview-to-offer rates by desk, client and source.
Questions recruiters ask
Do we have to use the same stages for every client?
No. Stage sets are configured per client or per job type, and the pipeline view normalises them so an owner still sees one board. Forcing every client through one stage set is the main reason agency teams abandon corporate tracking systems.
Can a hiring manager review candidates without a paid seat?
That is what the client portal is for, and it is in build for the Wave 1 release. The intent is a read-only view of the shortlist you choose to share, structured feedback and interview slot selection, without consuming a licensed seat or exposing the rest of your database. Until it ships, shortlists go out as a generated document.
Why are rejection reasons a fixed list?
Because free text cannot be counted or defended. A coded list lets you see patterns across a client and gives you a real answer if a hiring decision is ever challenged. You can still add a free-text note alongside the code.
Is the audit trail exportable?
Yes, per requisition or per candidate, as CSV or JSON. Enterprise accounts can schedule the export to a location you control.
How does this handle temp and contract as well as permanent?
Contract requisitions carry rate rather than salary, a start and end date, and an extension record. The stage machine and the submittal object are the same; the financial fields differ, and the placement invoice follows the rate.
What happens when a placement falls through inside the guarantee?
The placement moves to a drop-out state, the guarantee obligation is recorded against the client, and the replacement search is linked to the original placement so the rebate or replacement can be tracked to its conclusion.
How long does it take to move a working desk onto this?
The import is rarely the slow part. Agreeing the stage set and the disposition codes is, and that is worth a fortnight of real use before you clone the configuration across every client. Expect to run in parallel with your old system for the first few weeks on live requisitions, and expect ownership and first-contact dates to need explicit mapping rather than inference.
See it against your own reqs
Bring one live role and three resumes. In twenty minutes you will see the match scores, the shortlist and the placement invoice that comes out the other end.