ooligo
STACK

Staffing agency recruiting stack for a perm and retained desk

Run a 3-30 recruiter perm, contingency, or retained search desk where client business development and candidate delivery come off the same records — job orders won by outbound, filled from a mix of owned database and external search.

Difficulty
intermediate
Tools
4
Recruiting & TA

The stack

An agency desk and an in-house team buy recruiting software for opposite reasons. In-house, the scarce thing is candidates; the req already exists. On an agency desk, the scarce thing is the job order. You can source brilliantly against a req you never won and bill nothing. So this stack is organized around the client side first and the candidate side second, which is the reverse of every corporate hiring stack — including ooligo’s own AI sourcing stack, which assumes an ATS and a hiring manager you already work for.

The timing matters for how much you can spend on it. US staffing revenue fell three years running — down 14% in 2023, 12% in 2024, and 3% in 2025 — and SIA’s March 2026 forecast has it growing about 1%, to roughly $180 billion. A desk operating in that market does not get to amortize tooling over a growing book. Every line below has to earn out against a placement fee.

How the pieces fit

  • Recruiterflow is the system of record, and the client half is native. Job orders, client contacts, BD sequences, candidate records, and submissions live against the same objects, which is the thing corporate ATS products do not do — agencies running Greenhouse or Ashby keep clients in a second CRM and reconcile by hand. The Platform plan is published at $149 per user per month with sequences, sourcing extension, automation, reporting, and API access inside it. Read the plan split before you budget: every AIRA agent — Matchmaker, Submission Agent, Notetaker, Job Change Alerts — sits in the quote-only tier above Platform.
  • Loxo is the contact-data layer. Its free tier carries one user with ATS and CRM and makes contact reveals a purchase rather than a tier upgrade, which is exactly the shape you want when you already own a system of record and only need resolved emails and phone numbers. The ATS-versus-recruiting-CRM distinction is what keeps this from being duplicate spend — see the split-or-collapse decision below, because Loxo can also be the whole stack.
  • LinkedIn Recruiter is the channel and the verifier. It is where you reach someone whose email nobody can resolve, and it is the profile of record that every aggregated index is a copy of. It will also be your largest single line, and LinkedIn publishes no rate card above Lite.
  • lemlist runs client-side BD on domains that are not your primary domain. Recruiterflow sequences client outreach perfectly well, and for a low-volume desk that is the right answer. The reason to separate them is that BD email at volume is the riskiest sending you do, and it shares a domain with candidate outreach and client submissions — the two message types you cannot afford to land in spam. lemlist’s Email plan is $55 a month billed annually for 50,000 emails with unlimited users, so the separation costs less than one Recruiterflow seat.
  • Bullhorn is the swap, not the default. It is the incumbent for scaled staffing and the right answer when the desk runs contract placements: pay/bill, timesheets, and VMS connectivity are in its orbit and in nobody else’s here. Its Amplify digital workers — Enrich, Match, Screen, Outreach, Present, plus Prospect, Verify, Audit, and Transcribe added at Engage Boston in May 2026 — are the most complete agent set in the segment, and all of it is quoted.

The handoffs that make it a stack

The BD loop runs first. A lemlist sequence goes out from a secondary domain to hiring contacts at target companies. A reply stops the sequence and the thread lands against a Recruiterflow company record. A discovery call turns that record into a job order, and the job order is the event that starts delivery.

The delivery loop starts inside your own data, not outside it. A new job order triggers a match against the Recruiterflow database first — a ten-year-old agency database is the cheapest pipeline in the building, because talent rediscovery costs nothing per profile. What the database does not cover goes to external search, and profiles that come back without a usable email route to Loxo for a contact reveal. Anyone Loxo cannot resolve routes to a LinkedIn InMail rather than being dropped. Replies become candidate records in Recruiterflow, the submission packet goes to the client from the same system, and the placement is recorded against both the candidate and the client.

Then the loop closes back on itself, which is the part that only works if BD and delivery share records. A placed candidate who changes jobs two years later is simultaneously a new client lead and a new job order signal. Recruiterflow’s Job Change Alerts fire on it; the contact goes back into a lemlist BD sequence. Run your clients and your candidates in separate systems and this loop does not exist — it is the single strongest argument for an agency-native system of record over a corporate ATS plus a general CRM.

The decision that sets your bill: split or collapse

Loxo is not only a data layer. Its Professional tier bundles Loxo Source — a talent graph the vendor puts at 850M+ profiles — with its AI agents, Loxo Outreach, account-based prospecting, an AI notetaker, and a hiring-manager portal. That is most of this stack in one contract, and Professional is quote-only; the published $169 per user per month Basic plan contains none of it.

So there are two shapes, and picking the wrong one is how desks end up paying twice for an ATS and CRM.

Split — Recruiterflow as the system of record, Loxo on the free tier for contact reveals, lemlist for BD, LinkedIn for InMail. Choose this when your database is more than two or three years old and your constraint is winning job orders. You are buying workflow and BD depth, and paying for external data by the record.

Collapse — Loxo Professional as the whole thing. Choose this when the database is thin or new and your constraint is finding people who are not already in it. One contract, one vendor, one renewal conversation.

The rule that keeps either honest: do not run two quote-only platform tiers at once. Recruiterflow AIRA plus Loxo Professional means paying two vendors for matching, outreach, and notetaking that do the same work against the same records, and neither vendor discounts for the overlap.

What it costs

Budget $22K-$70K a year for a 6-recruiter perm desk, and the spread is almost entirely LinkedIn.

  • Recruiterflow Platform at list is $149 per seat per month — $10,728 a year for six. AIRA is quoted on top, and the vendor’s own numbers argue against paying rate card: it reported crossing INR 50 crore in ARR in March 2026 across a base it puts at 2,100+ firms, which is under $3,000 per firm per year. Ask for multi-year and volume terms.
  • LinkedIn Recruiter is the line that decides the total. Recruiter Lite is publicly listed at $1,680 per seat per year. Corporate is not published; buyer-reported 2026 figures put a seat at roughly $10,800-$13,000 after this year’s increase, with a three-seat minimum on an auto-renewing annual contract (estimate). Three Corporate seats is $32K-$39K; six Lite seats is $10,080.
  • lemlist Email is $55 a month billed annually — $660 a year, with unlimited users and enrichment credits sold separately at roughly $0.10 per verified email and $0.20 per phone number.
  • Loxo is $0 on the free tier plus whatever contact reveals you buy. Professional is quoted; third-party trackers report $250-$400 per user per month for it (estimate), which for six seats is $18K-$29K a year and replaces the Recruiterflow line rather than adding to it.
  • Sending infrastructure for the BD layer: about $800 a year for three secondary domains and nine mailboxes at Google Workspace Business Starter rates. Skipping this is how you lose your primary domain.

The floor version — Recruiterflow, six Recruiter Lite seats, lemlist, Loxo free with purchased credits — lands near $22K a year. The break-even test is one placement: a perm fee at 20% of a $120,000 salary is $24,000. The floor version pays for itself with a single extra placement; the Corporate-seat version needs three.

Common variations

  • Bullhorn instead of Recruiterflow. Mandatory the moment the desk places contractors — pay/bill, timesheets, and VMS are not in the box anywhere else here. Price it honestly: reported per-seat rates run $99-$315 a month by tier, annual contracts typically start around $20,000, implementation runs $1,000-$50,000+ by firm size, Automation and Analytics are separate SKUs, and renewal increases near 20% are commonly reported (estimate).
  • Drop lemlist, sequence BD from the ATS. Correct under roughly 500 BD emails a month on a single domain. Swap back the day a client tells you your submissions are landing in their junk folder, and read email deliverability for cold outreach before you scale volume — the cold email infrastructure stack is the full version of this layer.
  • Juicebox as the search layer. Natural-language search over external profiles, not an ATS, so it stacks on top of either shape when external reach is what is short and you do not want a second platform contract.
  • Cancel a data vendor. If the desk still pays for ZoomInfo alongside any of this, run the overlap test before renewal — the contact-reveal layer here covers most agency use, and that line is usually the easiest five figures to remove.

When this stack is the right pick — and when it isn’t

Pick it at 3-30 recruiters, on perm, contingency, or retained search, where outbound is how you win job orders and you have a database with real history in it. That combination is what makes an agency-native system of record cheaper than a corporate ATS plus a bolted-on CRM.

Skip it in four cases. In-house corporate TA is the wrong category outright — structured interviews, scorecards, and hiring-manager surfaces are not what these products are for. High-volume contract staffing needs the back office, so start from Bullhorn and treat everything above as commentary. A solo recruiter under about $200K in billings should not carry a Corporate seat at all; run Loxo free plus Recruiter Lite and nothing else until the volume justifies more. And if you win job orders entirely from referrals and repeat clients, the whole BD layer is dead weight — buy the system of record, skip lemlist and the secondary domains.

What this stack does NOT replace

  • The phone. Perm placements close on calls with candidates and clients. Everything here produces conversations; none of it has one for you.
  • The back office. Pay/bill, timesheets, invoicing, and VMS connectivity are absent from Recruiterflow, Loxo, and lemlist alike. If you place contractors, that is a separate purchase or a different system of record.
  • A candidate-verification process. Bullhorn’s Verify skill flags authenticity signals; it does not carry your obligation to your client when a placement turns out not to be who they claimed. Identity checks stay yours.
  • Your data-protection obligations. An agency sourcing profiles of people who never applied is a controller under GDPR and UK GDPR, with lawful-basis and notification duties, and in scope for CCPA/CPRA rights in California. Buying the tools creates the obligation and does not discharge it.
  • Measurement. None of this tells you whether the desk is healthy. Submissions per recruiter per week, interview-to-placement ratio, and time-to-fill are the numbers that do — see recruiting funnel metrics for the set worth tracking.