Skip to content
indraft
Start free

Cookbook

Run a recruitment desk where the candidate outlives the placement

A recruitment desk is two-sided and the relationship outlives every placement in it. That is a different record shape from a sales pipeline, and getting it wrong is why most agencies cannot answer their own best question.

What this is, and what it is not

Indraft holds no CVs. No document storage, no parsing, no search across résumé text. If your applicant tracking system is where CVs live, it stays exactly where it is and this sits beside it.

What this holds is the thing an ATS is usually bad at: the history of a relationship with a person across every role you have ever put them in.

The modelling decision

A placement is the record that moves. Not the candidate, and not the role. A candidate is a person you will place again in three years; a role is a client's need that either fills or does not. The placement is the thing that joins them, and there are many of them per person over time.

Model it the other way, with a stage on the candidate, and you get the failure every agency database has: the person is "Placed", then they finish, and now the record says something that was true in 2024.

And the candidate itself: your own type, with its key declared. This recipe used to leave that to be inferred, which was not good enough, because the choice decides whether you spend next year merging records. A Candidate carries your rates and your process, so it is yours rather than a Contact. Name the field that identifies one when you define it, usually the email, and the same person sourced twice by two recruiters is one record instead of an ownership argument with a client. Without that a type of your own matches nothing, and 25,000 candidates becomes 31,000 in a year.

Declaring it on a type you already filled is safe: if records already share an email it refuses and names them, so nothing is merged behind you. Merge those with the duplicates recipe and declare it again. And keep asking for proposals afterwards, because a declared key stops the same email twice and cannot know that a work address and a personal one are one person.

You

Create a placement type: the role, the discipline, whether it is temp, contract or permanent, the margin, and the start and end dates. Each one belongs to a candidate and to a client. Give it a pipeline: briefed, shortlisted, interviewing, offered, placed, and fell through as the way it dies. I want to count and filter by discipline, contract type, margin and dates.

The question a desk actually asks

Somebody rings with a role. The first thing worth knowing is who you have placed before who might fit, and what happened.

You

What is our history with Tomas Aguilar?

Agent

3 placements 2024-03-04 HGV driver temp margin 1,800 2025-02-10 HGV driver temp margin 1,950 2026-04-01 Yard supervisor permanent margin 6,400

That is the whole argument for this model in six lines. One person, two years, temp driver twice and then a permanent supervisory role at a different client, with the margin rising each time. Nothing overwrote anything. A recruiter looking at that knows immediately whether to call him about the next yard role and what he is worth.

Ask it of a candidate-shaped record with a single status and the best you get is "Placed", with the other two placements either gone or duplicated into second and third copies of the same human being.

Redeployment, which is the money

A temp finishing is a placement you already sold once. The desks that make money are the ones that know a fortnight in advance.

You

Who is coming free, and who is already free?

Agent

5 placements have an end date recorded

The agent narrows that to the window you care about. The discipline worth keeping is recording the end date at the moment the placement is agreed rather than when it happens, because a date added afterwards is a date that tells you nothing you did not already know.

Where the desk actually earns

You

Margin by discipline across the whole book.

Agent

engineering 30,600 5 placementswarehouse 13,200 4finance 7,000 1admin 6,400 2driving 5,500 3

Three driving placements for less margin than one finance placement is the kind of thing everybody suspects and nobody has in front of them. It is also the number that should decide where a desk spends next quarter, rather than which discipline shouts loudest at Monday's meeting.

The same question, by client and by candidate

Margin by client and margin by candidate are the same shape of question, and both are answered directly: ask by the name you declared the relationship under. That is what turns "who is our best client" from a spreadsheet into a sentence. Past a couple of hundred groups you are told the answer is too long to read, which is the point at which the question wanted narrowing rather than a longer list.

Verify it

  • Place the same candidate twice. Two placements, one person. If the second overwrites the first, the stage is on the wrong record and everything above stops working.
  • End a placement and ask the history again. The finished one should still be there with its dates, not disappear.
  • Check a margin total against your invoicing. Once, at the start. A margin figure nobody has reconciled is a number people quote until it embarrasses them.

Run it again

The history question every time a role comes in, which is the habit worth building. Redeployment weekly. Margin by discipline monthly, and take it seriously when it disagrees with where the desk is spending its time.