A recruiting agency never runs one pipeline — it runs two, welded together. On one side sit candidates: sourced, screened, prepped, submitted. On the other sit clients: open searches, signed fee percentages, hiring managers who reschedule twice before showing up. A placement happens only when a person clears one pipeline just as a deal clears the other — and most tracking tools watch half of that.
Consider a three-recruiter shop we'll call Meridian Search. Their bad month: a strong DevOps candidate sat in a client's inbox for nine days without a nudge and took a counteroffer. Two recruiters unknowingly worked the same role with different candidates. And when the founder asked how much fee revenue was genuinely in play for the quarter, the answer lived across three personal spreadsheets and a lost Slack thread.
Agency platforms charge per seat, per month, forever — heavy overhead for a business that eats only when it places. Meridian went a different way: they rebuilt the whole ATS on top of one Google Sheet, with a public application page, AI resume scoring, and automatic candidate emails. The build is below.
Two tabs mirror how a desk actually works:
The Candidates tab is where recruiters live all day:
| Column | Example |
|---|---|
| Candidate | Dana Okafor |
| Role / Client | Senior DevOps — Brightline Logistics |
| Recruiter | Marcus |
| Stage | Submitted |
| Salary | $145,000 |
| Fee | 20% ($29,000) |
| Last contact | Jul 18 |
| Notes | Prefers remote; competing offer expected week 2 |
The Fee column sits directly beside the person on purpose. At an agency, the candidate and the revenue are the same row.
Set up your free login at lovespreadsheets.com; no card needed. The application page and tracker cost nothing to build or operate; individual recruiter logins and hosting the candidate-facing page on your agency's own domain are the paid upgrades.
Pick the Website template — the public half of an agency ATS is really a small jobs site wired to your sheet — and lay out the desk in plain English:
"Show every active search from my Clients / Roles tab on a page candidates can browse. When someone applies, take them through a short chat-style flow — name, email, salary expectations, resume upload — and write the application into my Candidates tab. Grade each resume 1–100 against that specific client's requirements and add two lines explaining the grade. Fire off a confirmation email the second an application arrives."
Then request the machinery agencies actually need:
Run AI Optimize, answer any clarifying questions, and the build wraps in roughly 15–20 minutes.
Candidates get a live URL; your team gets an internal app on top of the sheet. Applications land as rows in real time, each already carrying a score and written reasoning against the client's spec — so when a posting draws forty responses, the recruiter starts from an ordered stack, not a random one. Stages run Sourced → Screened → Submitted → Client interview → Offer → Placed, and every move is a cell the whole shop can see. It's the same architecture as the free ATS built from a Google Sheet, extended to carry clients and fees.
Revenue lives next to the people. Because every candidate row holds a salary and a fee, the pipeline report isn't a separate chore — filter to Submitted or later and the quarter's potential billings total themselves.
Two calendars stop colliding. Matching a candidate's availability against a hiring manager's is where agency weeks vanish. Shared stages and last-contact dates mean nobody re-asks a question the candidate answered last Tuesday.
Going quiet leaves a trail. Candidates ghost mid-process; clients do too. A maintained last-contact column turns "haven't heard from Dana lately" from a nagging feeling into a sortable fact you act on before the counteroffer lands.
Will clients ever see this? No. The application page is public; the pipeline is private to your team. What clients receive is whatever reporting you choose to send.
How do we track one candidate in two searches? Give the pairing its own row. Dana at Brightline and Dana at Corvus carry separate stages, scores, and fees — which is how the money actually works.
Does the AI decide who gets submitted? Never. It sequences the reading and shows its logic; the recruiter reads, calls, and chooses. Submittal quality is your reputation, and that stays human.
Sketch the Clients / Roles tab tonight, then bring it to lovespreadsheets.com and lay out how your desk really operates. When a client insists on running their own process, hand them the small-business hiring tracker or the HR-team version — clients who hire cleanly close placements faster.
The team turning other people's spreadsheets into software they actually trust — one sheet at a time.