ATS for small recruitment agencies: what sourcing costs


A recruitment agency runs on different arithmetic than an employer does. An employer fills a handful of roles a year. An agency works many clients at once, and the people doing it are the cost. So the questions that decide the software are different too: what does it cost per desk, can you keep clients apart, and can you actually reach someone once you have found them.

I have run the same test data through Manatal (affiliate link) and Breezy HR (affiliate link), a week in one and a fortnight in the other, and Manatal is the only one of the two that is built for agencies at all. It asks, at signup, whether you are an agency or a company. Breezy never asks, because Breezy has no such concept.

That makes this article mostly about Manatal. Here is what I found, measured rather than read off a feature page:

  • One search credit buys one search, and one search shows you the first 100 results. My search matched 581,923 people. I could see a hundred of them.
  • Contact details are masked in the results, and unmasking them requires adding the person to your database and then using a separate feature.
  • That feature shows no price anywhere near it.
  • The credit balance is not on the screen where you spend credits, and going to look at it destroys your search results.
  • Credits reset on the calendar month, not on your signup date.
  • Records sourced this way arrive with a birth date whose month and day are 1 January, and an age calculated from it.

I have reviewed Breezy HR and Manatal separately, and compared them head to head. This one is about the agency case only.

What “600 million profiles” buys

Manatal’s Sourcing Hub advertises access to “over 600 million candidates” in an external database, assembled by a third party from publicly available data. That number is the headline. The unit you actually buy is much smaller.

The screen sells access in search credits. My trial had 100 of them.

One caveat shapes everything below. The trial appears to run at Enterprise level rather than the $15 Professional plan — the balance screen offers an Upgrade to Enterprise Plus button, and Manatal never states which tier a trial maps to. So I cannot tell you how many credits a $15 seat gets, or whether it gets any. Everything here, I measured on the trial.

I searched for sales managers in the United States and got 1 - 100 of 581,923 results, and the balance went from 100 to 99. A second identical search took it to 98.

So a credit is a search, and a search is the first hundred rows of whatever it matched. The remaining 581,823 people are not reachable by paying more attention. They are reachable by narrowing the filters and spending another credit.

That is a reasonable way to sell a database. It is just a long way from what “access to 600 million candidates” suggests, and nothing on the pricing page draws the distinction.

The part that decides whether it is useful

For an agency, a name without a phone number is not a lead. So this is the part that matters most, and it is where the product is least forthcoming.

In the results list, some people have a Contact details block. The phone number is shown with its last four digits replaced by XXXX, next to a + 2 MORE button. Not everyone has one.

+ 2 MORE does not expand anything. Hovering it produces this:

To access the full contact information for this candidate, add them to your database and use the ‘Find Contact Details’ feature in the candidate’s summary page.

So the masked number is a sample, not a preview. I added one person to the database to see what came across. The answer is that the masked number does not come across at all: in the record, both the email and the phone fields are empty, each replaced by a Find contact details link.

Adding someone costs no credits, and there is no confirmation step — one click and a real person is in your database, tagged Source: Sourced via Sourcing Hub in the log.

I did not run Find contact details, because resolving a real person’s private contact details is not something to do for a screenshot. But I looked hard for what it costs. There is no price, no credit count, and no remaining-uses figure on the button, in a tooltip, or anywhere on the page.

This is the same shape as a problem I hit in Breezy, where the per-credit price of its AI is invisible until you register a card. Both products let you reach the moment of spending without telling you the rate.

The credit balance is not displayed on the Sourcing Hub screen. It lives in Administration > Features > Sourcing Hub, several clicks away.

The search screen also keeps no state in the URL. Navigate away and come back, and the filters and results are gone. Put those two facts together and the result is that checking how many credits you have left costs you the search you were looking at — and running it again costs another credit.

There is a workaround, which is to open the balance in a second browser tab. You have to know to do that.

Credits reset on the calendar, not on your dates

On 22 August the balance read resets in 9 days. On 29 August, with nothing spent in between, it read resets in 2 days. Both point at 31 August.

That is a calendar-month cycle, not one counted from when you signed up. For a 14-day trial started on the 22nd it means a full refill lands mid-trial. For anyone starting a trial late in the month, it means the opposite. If you are evaluating Manatal on its sourcing, start at the beginning of a month.

What actually lands in your records

I sourced three people and looked at what Manatal stored. All three arrived with a birth date, and all three birth dates fell on 1 January — 1997, 1990 and 1976. Beside each one, the product displays a definite age: 29, 36, 50.

The third record shows what is happening. Of the dates I could see in that person’s history, four fell on 1 January and one did not: a job that started on 1 March 2000. Where a real month is known it is used; where it is not, the first of January stands in.

Three people sharing a 1 January birthday would also be a remarkable coincidence, though 1 January is over-represented in real data sets for exactly this reason, so that arithmetic proves less than it looks.

None of that is visible to the person reading the record. The Birthdate field carries no source, no help icon, and no indication that anything was estimated. It looks exactly like a date typed off a résumé.

The same pattern shows up in employment history, where every current role ends on the day I imported it, producing tidy figures like 17 yrs 8 mos.

To be fair to Manatal: this is a gap-filling convention, not an invention. The underlying source evidently knows a birth year and not a birthday. The problem is that the filling is never disclosed, and an estimate rendered as a fact is indistinguishable from a fact.

Why the age matters more than it looks

It would be a small complaint if the age just sat there. It does not.

Candidates > Advanced Search has an Age filter, taking a minimum and a maximum. So the number computed from a placeholder date can be used to include or exclude candidates. Birthdate is also available as a column in the candidate list. The same screen offers filters for Gender and for Job Hopper.

The filter is not itself the problem — a birth date can equally come from a résumé, where it is real. The problem is that a synthesized date and a real one land in the same field, look identical, and answer the same query.

Age is a protected characteristic in United States hiring, which makes an unmarked estimate a poor thing to screen on. Manatal sells worldwide and these fields are ordinary in some markets, so I will not push that further than the facts go.

Notably, the external Sourcing Hub search has no age filter at all. The ability to filter by age exists only once the person is inside your own database.

Manatal has a concept Breezy does not: candidate records carry a GDPR Consent field, which read Pending on everyone I sourced.

The feature behind it, Administration > Data Management > GDPR Tracking, was switched off by default in my trial. I have not established how the field behaves once it is turned on, so read the Pending on my records as unexplained rather than damning.

Deleting is two steps. The candidate list offers Archive, which moves records out of sight; permanent deletion lives in Administration > Data Management > Archive Data, where each record can be restored or destroyed. It only destroys one at a time. That is a sane design, and I mention it only because “archive” removes things from the list convincingly enough that you might believe you have deleted them.

I found no data retention or automatic deletion setting under Data Management. For a product that lets you pull real people out of a 600-million-row database with one click, a retention policy would not be an extravagance.

Keeping clients apart

An agency works several clients at once, so the first structural question is whether the product can model a client at all. Manatal can, though not under that name.

The container is a Department. You create one, and jobs, contacts and guests attach to it. There is no Client field on a job — a job picks a department instead, and for an agency the department is the client. That works, and it is more than Breezy offers, which has no equivalent grouping.

Guests is the piece that makes it usable. A guest is created inside a department, with an email address and an access level of either Share all department jobs or Only share specific jobs. That is how you give a client’s hiring manager a way in without giving them your account. Manatal notes that guests “only receive basic notifications and view publicly shared candidate notes and attachments.”

Permissions follow the same shape. Administration > Account and Users > Roles & Permissions ships four roles — Admin, Manager, Consultant, Recruiter — and the DEPARTMENTS and JOBS sections grant rights per role across OWNER, TEAM MEMBER and NON-MEMBER. So you can decide who sees which client’s jobs.

Then there is the gap. Candidates are not part of this structure.

A department’s tabs cover jobs, contacts and guests, and I found no candidates tab. The candidate record does have a Current Department field, but it appeared to be free text rather than a dropdown of the departments you have created, so it does not tie a person to the client you set up. And in Roles & Permissions, I found no CANDIDATES section alongside the ones for departments and jobs.

The practical effect is that the client-facing half of the business partitions cleanly and the database does not. Every consultant sees the whole candidate pool.

For a lot of agencies that is the right default, and arguably the point — the pool is the firm’s asset, and walling it off per desk would be worse. But it is a default, not a choice. If you place candidates with clients who compete with each other, or you want a new consultant to start with a limited view, the software has no lever for it.

One thing I had assumed wrongly is worth correcting. The agency-or-company question at signup is not permanent: Administration > Account and Users > Account has a Type field holding Company or Agency, and it opens an editor with both options. I left mine on Company and so cannot say what changes when you switch.

The money, for an agency specifically

All prices below were observed on 29 August 2026.

Manatal charges per seat: $15 a month billed annually, $19 monthly. Breezy charges $157 a month flat, for unlimited users. The crossover is around ten seats, which I worked out in the head-to-head comparison.

Note that the $15 tier is not the tier I tested. If sourcing is why you are looking at Manatal, confirm with them what a Professional seat actually includes.

For an agency that arithmetic bites differently than it does for an employer. An agency adds people to add capacity, so headcount is the thing that grows. Per-seat pricing tracks that growth exactly, which is comfortable at three desks and less so at twelve.

Against that, Breezy has no external sourcing database, no agency account type, and no consent tracking. At a small agency the choice is not really between two ATSs. It is between a product that was built for your shape of business and one that was not.

So what should a small agency use

On what I have measured: Manatal, with your eyes open. It is the only one of the two that models a client at all, and the department-and-guest arrangement is a real answer to a real agency problem. Breezy has nothing equivalent.

Buy it for the client structure, not for the 600 million. The sourcing database is the loudest thing on the marketing page and the least finished thing in the product: a hundred rows per credit, contacts you cannot see, a price you cannot find, and records that arrive with a birthday nobody knows. If sourcing is your reason for buying, get the credit allowance for your actual tier in writing first.

What I have not tested

JazzHR is the obvious third name here, and I have a trial request in but no account yet. I will not guess at it. When I have run the same files through it, I will say so.

The people I sourced were real, so I have not reproduced their names, employers or contact details here, and I deleted all three records permanently once I had what I needed. The other test candidates in my account are fabricated.

Disclosure: the Breezy HR and Manatal links in this post pay me a commission if you sign up through them, and each is marked where they appear above. It costs you nothing extra, it did not change a word of what this post says, and I do not accept payment in exchange for favourable coverage. Every other link here is an ordinary one.