Two populations, one system
Recruitment
Two relationships to manage at once, clients and candidates, in one system rather than in two that disagree, with the awkward fact that a great many people are eventually both.
Candidates who become clients
The one structural problem this trade has
Recruitment is the only trade on this site where the business has two entirely separate populations of relationship, both large, both essential, and where the same person moves between them. Consonas holds both populations in one organisation, as relationship types a person can carry more than one of at the same time.
A candidate you placed in 2021 becomes a team leader in 2023 and a hiring manager in 2025. At that point they are a client, and their record as a candidate, including what they were paid, what they said about their previous employer and why a placement did not work out, is both extremely valuable and extremely sensitive.
Systems built around one contact type handle this badly in one of two ways. Either the person becomes two records, which means neither has the whole history and the addresses disagree. Or they are relabelled, which loses the candidate history at the exact moment it became commercially interesting.
Holding relationship types you name, several of which one person can carry, with connections that carry dates, is what expresses it. They were a candidate. They were placed at that client for that period. They are now a hiring manager at this one. All of it is true simultaneously and none of it requires deleting anything.
And the people you did not place
Every agency has a large population of candidates who were nearly right, were right but the timing was wrong, or came second. They are qualified, they know you, and they are frequently the best person for a role that appears eighteen months later.
In most agencies they are effectively invisible, buried in a system organised around vacancies rather than people, or deleted in a tidying exercise. Recording what someone was looking for, what happened and why, with consent recorded properly, turns that population from an archive into a resource.
The obligation nobody enjoys
Recruitment handles personal data on a scale most small businesses never approach, about people who are not customers and who did not necessarily initiate the relationship. A subject access request from a candidate is a routine event rather than a hypothetical one, and the deadline for answering it is the one the Information Commissioner's Office sets instead of one you choose. The obligations themselves sit in the Data Protection Act 2018.
One organisation with one search, consent held per channel with dates and sources, an audit trail no one can edit, and erasure that reaches every place someone appears, is the difference between answering that in an afternoon and answering it across three systems with no certainty the answer is complete.
Client side, candidate side
Six situations that arrive on both desks
All six are ordinary in a recruitment business.
| The situation | One database of contacts | Two populations, one system |
|---|---|---|
| A candidate becomes a hiring manager | Two records, or one record with the wrong label, and their history as a candidate is lost or embarrassing. | One person carrying both types over time, with connections that carry dates. |
| A candidate you did not place two years ago | Buried, or deleted, so the best qualified person for today's role is invisible. | A relationship with what they were looking for and what happened, and consent recorded for contacting them. |
| The hiring manager moves company | You lose the client and never approach them at the new one. | The connection ends with a date. Both the risk and the new opportunity are visible. |
| A subject access request from a candidate | Several systems searched by hand against a statutory deadline. | One organisation, one search, and tooling built for it. |
| A confidential search | An agreement between people not to mention it. | Sensitivity as a grant on the specific records, checked separately by search, reporting and export. |
| Which clients actually give you roles | An impression shaped by who you speak to most. | Vacancies connected to clients, so volume and fill rate by client are numbers. |
Both sides
One person, two histories, and connections that carry dates
A candidate is a relationship. A hiring manager is a relationship. They can be the same person carrying both types, connected to the organisations they have been at, each connection with a role and a period.
That is what lets you answer the question this trade gets constantly: have we dealt with this person before, and in what capacity. It also means a hiring manager moving employer is visible as both an account risk and a new opportunity, which is the same pattern every relationship business has and which recruitment feels most acutely.
Where a candidate history is sensitive now that they are a client, sensitivity is a grant on specific records held separately from the role, so the people who need the current relationship do not automatically get the old one.
Two processes
Vacancies and candidates are different pipelines
Winning a vacancy is one process: introduced, briefed, terms agreed, instructed. Moving candidates through that vacancy is another: submitted, shortlisted, interviewed, offered, placed. They have different stages, different timescales and different probabilities.
On the paid plans you can run both. Trying to describe them with one set of stages produces a board that describes neither, and a forecast that mixes the chance of winning a brief with the chance of filling it.
Temporary and permanent should also be separate, for the same reason. The stage history then tells you the things agencies rarely know precisely: which clients give briefs and never instruct, and where in your own process candidates actually drop out.
Obligations
Consent, erasure, and a trail that cannot be edited
Consent recorded per channel with a date and a source, and checked again for the individual at the moment anything is sent. A candidate who asked not to hear about certain roles has one recorded position rather than a note someone may or may not read.
Erasure removes a person from every place they appear: the record, the connections, the notes, the audiences, the message history, the consent records and the files. The audit trail keeps the fact that an erasure happened and who performed it, without the content.
All of it is on every plan including the free one. In a trade holding this much personal data about people who are not customers, putting the obligations behind a price would mean the agencies least able to afford them are the ones without them.
Sensitivity comes first
What an agency settles before the first import
The two pipelines and the consent configuration are the two worth the time.
- Relationship types
- Client, hiring manager, candidate, placed candidate, referrer, supplier. Candidate and client are the two populations, and a great many people are eventually both.
- Two pipelines, not one
- Vacancies are one process and candidates moving through a vacancy are another. Trying to describe both with one set of stages produces a board that describes neither.
- Connections with periods
- A candidate placed at a client in 2023 is connected to them for that period. When they move, the connection ends and a new one begins, which is how the same person becomes a hiring manager three years later.
- Consent, per channel, with a source
- Candidate data is personal data on a scale most small businesses never handle. Consent per channel with a date and a source is what makes the eventual subject access request answerable.
- Sensitivity
- A candidate whose search is confidential from their current employer, and any client relationship that should not be widely visible. A grant separate from the role.
- Custom fields
- Availability, notice period, salary expectation, right to work checked. Few, and each one something that changes what someone does today.
A candidate you placed in 2021 is a hiring manager by 2025. Their record as a candidate is simultaneously the most valuable thing you have about them and the most sensitive.
Which is why relationship types are things a person can carry several of, rather than a single label.
Not an applicant tracker
This is not an applicant tracking system
What is absent
No CV parsing. No extraction of skills or history into fields. No searching inside uploaded documents. No job board posting or multi posting. No candidate scoring against a specification. No structured skills matching. No integration with any job board or assessment provider.
Those are the core of applicant tracking software. They are genuinely difficult and this is not that product. If searchable CV content is central to how your agency works, you need one.
What agencies use this for alongside one
The relationships, which applicant tracking systems handle poorly because they are organised around vacancies. The hiring manager you have known for six years. The client conversation before there is a brief. The candidate who came second and is now perfect for something else. The reason a client stopped giving you roles.
The limit you will meet first
The relationship allowance, and faster than any other trade on this site, because candidates accumulate in a way clients do not. Every allowance can be raised for an individual organisation without a release, so ask rather than deleting candidates to stay under a number.
Order matters here
What a recruitment agency should do first
The order matters more here than in most trades, because the decision about sensitivity has to be made before anyone is invited rather than after.
Decide the sensitivity rule before you import a single candidate
You are about to hold two populations in one system, and one of them must not be readable by the wrong person. Sensitivity is decided separately from ownership here, which is exactly the property that makes this possible, and it needs to be set up before there is anything in the system rather than afterwards.
Write down who may read a candidate record and who may not, in a sentence, and configure that. Doing it later means auditing what has already been visible.
Import clients first, candidates second
Two separate imports with two different decisions behind them. Doing them together is how an agency ends up with candidates visible on the client side, and that is the mistake that costs the most and is discovered by somebody else.
Record where the candidate came from
Referral, application, approach, board, a previous placement. It is a source in the same sense a lead has one, and it answers the question that decides where an agency spends money: which channels produce placements rather than which produce applications.
Connect placements as connections with dates
A candidate placed at a client in 2021 is a connection with a start date. That is not record keeping for its own sake. It is what makes the single most valuable query in this trade possible: people you placed who are now senior enough to be hiring.
Almost every agency knows this happens and almost none of them can produce the list, because the placement was recorded as an event rather than as a relationship.
Get your consent records right on the candidate side
This is the half of the business where consent actually bites. Consent is recorded here as a fact with a date and a source, per channel, and importing a column marked yes carries an assertion you may not be able to support. What that assertion commits you to is summarised plainly in the government's guide to data protection.
Bring the date and the source if you have them. If you do not, find out now rather than after somebody asks.
One brief, followed
One brief, followed from the first phone call to the end of the rebate period
Invented in every particular. It is here because the cost of a missing record in this trade always lands at one specific moment, and naming the moment is more useful than naming a feature.
The agency below was invented for this page: three consultants, one permanent role, filled on contingency. Its only purpose is to show what is written down at each step and what it costs afterwards when it is not.
Monday: the call that is not yet a vacancy
A hiring manager rings a consultant to ask, informally, what somebody with a particular background is paid at the moment. There is no brief, no terms and no role. Most agencies record nothing at all here, because there is nothing yet to record it against.
What already exists is the relationship and the conversation, so the note goes on the person rather than on a vacancy that does not exist. Three weeks later the same role is briefed to three agencies at once, and the date of that first call is the only evidence anywhere that you heard about it before the other two. It is also, quite often, the only thing that persuades a client to give you the role exclusively.
The hiring manager in this example is somebody the agency placed as a candidate several years ago. Because that placement was recorded as a connection with a period rather than as an event, the consultant who takes the call can see it while the call is still going on. In most agencies that fact is either known by one person or known by nobody.
Thursday: the brief arrives, and the vacancy pipeline starts
Now there is a vacancy, and it moves through the process of winning it: introduced, briefed, terms agreed, instructed. Terms agreed is the stage that agencies most often neglect to record and the only one that decides whether the eventual placement is billable at the fee you think it is.
What is worth writing down at this stage is small and specific. The fee basis. The rebate arrangement. Who at the client actually signs an offer, which is frequently not the hiring manager. Whether anybody else is working the same role. None of that is interesting on the day and all of it is decisive later.
The week after: four candidates, one of whom must not be visible
The candidate pipeline is a separate process with separate stages: submitted, shortlisted, interviewed, offered, placed. Four people enter it. One of them currently works for another client of the same agency and cannot be seen to be looking.
Sensitivity is a grant on that specific record, held separately from the role, and it is decided at this moment rather than after a shortlist has already been sent round the office. The existence of the search is the confidential part, which is why a restricted record is absent from search rather than showing as a locked row.
The interview that moves twice
A panel member is away and the first date moves. Then a second interviewer is added and it moves again. Nothing has gone wrong, and this is the point at which a candidate who is also talking to two other agencies decides how interested you actually are.
The record that matters here is dull: who was told, when, and what they were told. A candidate who hears on the day that the date has moved and why is a candidate who is still available a fortnight later. The cost of not writing it down is not an audit failure. It is a person who stopped answering.
Offer, counter offer, and a start date that belongs to somebody else
The offer is accepted, the current employer counters, and the candidate takes several days to decide. Whatever is said in those days is the most valuable thing anybody at the agency will learn that month, about the candidate and about what their employer pays to keep people. Almost none of it survives in most agencies, because it is said on the telephone during a difficult week.
The candidate resigns and the start date is set by their notice period, which is somebody else's contract and not negotiable by you. That date, not the date the offer was accepted, is what the vacancy actually resolves on.
Twelve weeks later, when the rebate period ends
Take twelve weeks as the rebate arrangement in this invented example. Until it expires the fee is not really yours, and the only thing that protects it is someone knowing that the person is still in post and still content. That is a dated task, set at the point of placement, not a thing to remember.
Two records are created at the end. The candidate now has a connection to the client with a start date, which is what makes them findable in four years when they are hiring. And three people were interviewed and not placed. They are qualified, they know the agency, and they are the most valuable output of the whole exercise after the fee.
What each absent record cost
The unrecorded first call cost the chance of an exclusive brief. The unrecorded terms cost an argument about the fee. The unrecorded reschedule cost a candidate. The unrecorded counter offer cost everything the agency could have learned about that client's retention. The unrecorded placement cost a hiring manager in four years time. The three unrecorded runners up cost the next role.
Not one of those is a fee lost this month, which is exactly why they go unrecorded.
The migration split
The candidate side imports and the client side has to be written down from memory
Nothing is written until you approve a preview, so the first attempt costs only the time it takes to read it. The rest of this is about what a file cannot carry.
What agencies are usually coming from
Four things, in roughly this order. An applicant tracking system bought when the agency was two people, now expensive and organised entirely around vacancies. A shared mailbox with a folder of CVs beside it. A spreadsheet of candidates kept alongside the notes field in a professional network's recruiter product. And, in the smallest agencies, the founder's own address book plus a genuinely excellent memory.
All four have the same shape of problem. The candidate side is documented in some form and the client side is not documented anywhere, because the client side happens in conversation. The migration is therefore not one job. It is a real import on the candidate side and an act of writing down on the client side.
What comes across in a file
Names, email addresses, telephone numbers, employer, job title, relationship type and anything you have mapped to a custom field. If a row contains a person and their employer, that becomes a person, an organisation and a connection between them, which is the shape you want and the one that otherwise takes two passes.
The column people forget is notes, and in this trade it is where nearly all the value sits. A free text field containing why someone left their last job, what they will not consider, and which client they must never be sent to is worth more than every structured field in the export combined.
Duplicates are matched on email address. A recruitment export is the hardest kind of file this ever meets, because a candidate database of any age contains the same person under a personal address and two expired work addresses. Expect the preview to show you creates where you expected updates, and expect to make a decision about which address is the current one before you approve anything.
What has to be rebuilt by hand, and how much of it
Placement history is the important one. A contact export flattens a placement into a row on a vacancy, so what arrives is a list of people and not a set of connections with dates. Rebuilding every placement the agency has ever made is a week of work and it is not worth doing.
Rebuild two categories only. The placements from recent years, and the older ones where the person is now senior enough to be hiring. That is a short list, somebody in the office knows most of it without looking, and it is the list that makes the whole exercise pay for itself.
Consent provenance is the second. An old system's opt in column is a tick with no date and no source, and importing it asserts something you may not be able to support in front of someone who asks. Bring the date and the source where they exist. Where they do not, knowing that now is considerably better than discovering it after a mailing.
Open vacancies and their stage history are the third, and the answer is to type in the live ones and abandon the closed ones. Six months of your own history is not worth recreating, and a stage history you typed in from memory is worse than none because it looks like evidence.
CVs come across as files if you upload them and they count toward your storage allowance. Nothing reads them, extracts from them or searches inside them, which is the limitation this page is most insistent about.
What to deliberately leave behind
More than in any other trade on this site. A candidate database that has accumulated for years contains people who applied once to an advertisement, people whose only address stopped working several employers ago, and people who would not recognise the agency's name. Importing all of them produces a system where a search for a common surname returns a screenful of plausible answers and nobody knows which one is current.
The test is the same one somebody would apply out loud. Would a consultant in this office recognise this person, and would that person take our call. Everything that fails both is weight, and it is weight you are also obliged to look after.
Same word, two meanings
A vacancy is not a candidate pipeline, and a placement is not a stage
Recruitment is the trade where the vocabulary causes the most trouble, because both populations use the same words to mean different things.
| What this trade says | What it is here | Where the two come apart |
|---|---|---|
| Vacancy, role, brief, requirement | An opportunity in the pipeline for winning work, owned by a consultant. | The word covers both the instruction to fill a job and the job itself, and only the first of those is a thing you win. |
| Submission, or sending a CV | A stage in the candidate pipeline for that vacancy. | Agencies count submissions as activity. Recorded as a stage it becomes a rate instead: submissions per shortlist, per client. |
| Placement | Two things. The vacancy closes, and a connection with a start date begins between the person and the client. | Recorded only as a closed vacancy, the placement is an event that ends. Recorded as a connection it is the beginning of the next relationship. |
| The client | An organisation, plus one or more people connected to it carrying a hiring manager relationship. | In conversation the client is a person. On the invoice the client is a company. Both need to be true at once. |
| Candidate | A relationship type a person carries, alongside any others they carry. | Every other system treats it as what somebody is. Here it is one of the things somebody is, which is what allows them to become a hiring manager without losing anything. |
| On the supplier list | A fact about the client relationship, recorded once, with the date it is next reviewed. | Nothing in the product knows what a supplier list is. It matters because being off one makes every other record about that client worthless. |
| Retained and contingent | Different pipelines, for the same reason temporary and permanent are. | The stages differ, the timescales differ and the probability of billing differs enormously. One set of stages averages them into a forecast that describes neither. |
| On hold | A stage the vacancy sits in, with the date it moved there. | Said out loud it means the client has gone quiet and no one wants to say so. Written down as a stage with a date, it becomes something you can call about. |
The word that causes the most confusion is client
To a consultant, the client is a person: the hiring manager who gives briefs and takes calls. To whoever raises the invoice, the client is a company with a purchase order number. Both are correct and they are not the same record.
Holding the organisation and holding a hiring manager relationship connected to it, with a period on the connection, is what lets both meanings be true. It is also the only arrangement that survives the hiring manager changing employer, which in this trade happens more often than the client company changes anything.
Interview means two different events
Your own conversation with a candidate and the client's interview are both called an interview by everyone in the building. They belong to different processes: one is qualification and the other is a stage in the vacancy being filled.
Agencies that run one set of stages for both end up unable to answer the question they most want answered, which is whether candidates drop out at your screening or at the client's. Those two answers point at completely different problems and the same word hides which one you have.
Temporary, contract and interim are three trades in one vocabulary
They differ in duration, in who employs the worker, in how often you are paid and in what happens when the assignment ends. An agency that does two of the three should expect to model them as separate pipelines for the same reason temporary and permanent are separate: the stages are not the same stages and the probabilities are not comparable.
Nothing in the product depends on any of these words
You name the relationship types and you name the stages. If your agency says requisition and this page says vacancy, or you say submit and this page says shortlisted, the shape underneath is identical. The reason for setting the words out at all is that in this trade the ambiguity is genuine rather than cosmetic, and two consultants using the same word differently produces a pipeline neither of them trusts.
Everyone else involved
The referee, the umbrella company, and the person at procurement you never speak to
The hiring manager and the internal recruiter want different outcomes, the referee never asked to be in your database at all, and you will never speak to the person who decides whether you are on the supplier list.
The hiring manager and the internal recruiter are not allies
At any client above a certain size there are two people: the manager who needs someone and an internal recruiter or human resources contact whose job includes reducing what is spent on agencies. They are both your contact at that organisation and their interests are opposed.
Hold both, each connected to the organisation with a role, and record which of them the brief actually came from. Agencies lose accounts by managing only the warm one and are surprised when the cold one removes them from a supplier list.
Procurement, and the supplier list you are on or are not
Someone at the client decides which agencies may be paid at all, and that person frequently never speaks to you. Whether you are on the list, when the list is next reviewed and who owns it are facts about the client relationship worth writing down exactly once, because the answer is remembered wrongly by everyone the rest of the time.
A review date for a supplier arrangement is a dated task in the same sense a chase is. The difference is that missing this one removes the whole account instead of one role.
When your client is not the employer
On temporary work the person doing the job, the organisation they work at and the organisation that employs and pays them can be three different parties. An umbrella company or a payroll provider sits in the middle. On larger accounts a managed service provider or an outsourced recruitment function sits between you and the hiring manager entirely, which means your day to day client contact works for a third organisation again.
All of that is expressible as organisations with people connected to them and periods on the connections. What is not here is the money side of it. A placed worker cannot submit hours: the delivery module records time against a project, put down by your own people, which is a different thing from a temporary worker's week. There is no rate card, no margin calculation, no payroll and no self billing invoice. Agencies doing volume temporary work run a back office system for that, and this sits alongside it holding the relationships rather than replacing it.
The referee, who never asked to be in your database
A reference brings you a person you have no relationship with, whose data you now hold, who did not initiate anything, and who is very frequently a hiring manager at another organisation. That last fact makes them commercially interesting, which is exactly why the obligations matter.
Treat a referee as a relationship with a source, consent recorded per channel with a date if you intend to contact them about anything else, and sensitivity where the remark made about a candidate should not be readable by whoever happens to open the record. If a referee asks what you hold about them, that request is answered the same way a candidate's is.
The other agency on the same brief
Contingent work means someone else is working the same role, and occasionally the same candidate. What decides an ownership argument is the date a candidate was introduced and to whom, which is a stage recorded with a date rather than an assertion in an email thread.
The audit trail is not editable by anyone, including whoever runs the agency. That property exists for a different reason and it is useful here.
The referrer, who is often someone you placed
The best candidates in most agencies arrive because someone sent them. That someone is usually a person the agency already knows, frequently one it placed, and the connection between the two of them is the thing worth recording. It is the same argument as recording the source of any lead, with the difference that in this trade the source is a person you have a continuing relationship with and can thank.
Other people's clocks
Bonus dates, notice periods, and the month when no panel can be convened
The clock in this trade is set by other people's contracts and other people's holidays, which is why forecasting by the date something was agreed produces a number that is always wrong.
Nothing bills when it closes
A permanent placement agreed in one month starts in another, because the start date is set by a notice period in a contract you are not party to. A month of accepted offers and a month of billing are different months, and in a business of this size the gap between them is the difference between comfortable and not.
Notice period is one of the few custom fields genuinely worth having on a candidate for exactly this reason. It is not decoration. It is the field that turns a pipeline into a statement about when money arrives, and it is knowable at the first conversation rather than at the offer.
The candidate side has a season and the client side has a different one
Candidates move after bonuses are paid and at the start of a year, and a candidate who says they will look once a bonus lands is not a dead lead. They are a dated task with a month on it. Recorded that way, the agency starts a year with a list rather than with a feeling.
Clients hire against budgets and headcount that reset on their own financial year, not on yours and not on each other's. Roles appear the week a budget opens and roles become urgent the week one is about to close unspent. Which month each client's year turns is worth knowing about your largest accounts, and it is the kind of fact that lives in one consultant's head until they leave.
The month when nothing can be decided
Every summer, and again over Christmas, interviews stall because one member of a panel is away and then another. Nothing has died. Everything simply cannot move, and the instinct that tells you whether a role is alive stops working exactly when you need it, because waiting and dead feel identical.
The stage history is what replaces the instinct. A vacancy that has been at the same stage since before the holidays with a reason recorded is different from one that has been there since before the holidays with nothing recorded, and only one of those is worth a call.
Temporary work runs on a week, not a year
Availability decays in days. A candidate marked available three weeks ago is not old information, it is wrong information, and an agency that treats the two the same eventually sends someone who started elsewhere a fortnight ago.
If you hold availability as a custom field, hold the date it was last confirmed alongside it and treat anything beyond a short window as unknown. This is the one place in this trade where a field with no date on it is actively worse than an empty field.
The population to review once a cycle
Once a year, and the start of a year is the obvious moment, work through the candidates who were interviewed and not placed. Some are now placeable, some have moved and are now potential clients, and some should be erased because you have held them for long enough without a reason.
That single exercise does three jobs at once: it finds business, it corrects the record, and it is the honest answer to the retention question everyone in this trade would rather not be asked.
Where the modelling advice on this page comes from
The two pipelines and the weighted forecast are set out on sales pipelines and forecasting, the relationship types and dated connections on people, organisations and connections, and the consent record on marketing and automation. An agency selling retained search will recognise the small slow pipeline described on consultancy, and the client half of this page is the same buyer described on professional services and technology.
Consultants ask
Asked by agencies
Is this an applicant tracking system?
No, and it is the most important thing to be clear about. There is no CV parsing, no job board posting, no multi posting to advertising channels, no candidate scoring against a specification and no structured skills matching. If those are the core of what you need, you need an applicant tracking system and this is not one.
Then what does an agency use it for?
The relationships on both sides. The hiring manager you have known for six years. The candidate you did not place who is now the right person for a different role. The client conversations that determine whether you get the brief at all. Those are usually in a shared inbox and one consultant's memory, and applicant tracking systems handle them poorly because they are organised around vacancies.
How do we handle someone who is both a candidate and a client?
One person carrying both relationship types, with connections that carry dates. This is genuinely common in recruitment and it is where a single label per contact falls apart fastest. Their history as a candidate and their current position as a hiring manager are both true and both need to be visible, carefully.
Can we keep a search confidential?
Yes. Record sensitivity is a grant held separately from the role, and a restricted record is genuinely absent from search rather than appearing as a locked row, which matters here because the existence of a search is frequently the confidential part.
What about candidate data protection?
Consent held per channel with a date and a source, an audit trail no one can edit, erasure that removes a person from every place they appear, and a region fixed at creation. Recruitment handles personal data on a scale most small businesses never approach, and a subject access request from a candidate is a real and regular event instead of a hypothetical one.
Should we hold CVs in it?
You can hold them as files against the candidate, and they count toward your storage allowance. What you will not get is anything reading them: no parsing, no extraction into fields, no searching inside the document. If searchable CV content is central to how you work, that is an applicant tracking system requirement.
Can we run temporary and permanent in one organisation?
Yes, and you should run them as separate pipelines on the paid plans. The timescales, the stages and the probabilities are completely different, and one set of stages describing both produces a forecast that is wrong in two directions.
Is the free plan enough for a small agency?
For the relationship side, briefly. Recruitment reaches the thousand relationship limit faster than almost any other trade because candidates accumulate. The limits can be raised for an individual organisation, so ask rather than deleting candidates to stay under.
Start with the hiring managers
Record the people who actually give you briefs and where each of them has worked, and see how many of them you already knew as candidates.
Three people, a thousand relationships, no card and no time limit.