1. Home
  2. Work
  3. AI recruitment orchestration
Case study · Build

Agent orchestration for a high-volume recruitment operation.

A recruitment business running more than 250 recruiters across multiple offices. Not named at the client's request.

Python / FastAPIPostgreSQLEvent-drivenDSPy
Engagement
In production
Client
A recruitment businessNot named at the client's request
Scale
250+ recruitersAcross multiple offices
Volume
100,000+ CVsOrchestrated weekly by AI agents
The challenge

A coordination problem first.

Recruitment at this scale is a coordination problem before it is a hiring problem. More than 100,000 CVs have to be read, matched and followed up by a team spread across offices.

Manual triage sets the ceiling.

Recruiters were spending the day moving candidates through a pipeline rather than talking to them.

What we built

An orchestration layer, not a demo.

Every stage is observable, and long-running work survives failure.

TracingEvery agent call, prompt and model is traced, so a bad output can be followed to its cause 01IntakeCVs and candidatedocuments02ParseDocument AI, with afallback parser03RecordPostgreSQL, thesystem of record04AgentsMatching and outreach,built with DSPy05RouteAcross models, nottied to one vendor Replies parsed back into the pipeline Durable workflowsLong-running work resumes after a failure mid-batch instead of restarting Event-driven orchestration on async Python and FastAPI

Scroll sideways to see the full flow.

We built an event-driven orchestration layer on async Python and FastAPI, with PostgreSQL as the system of record. Candidate documents are parsed through Google Document AI, with a second parser picking up the layouts the first one can't read.

Matching and outreach run as agent workflows built with DSPy, routed across models rather than tied to one vendor. Long-running work sits in durable workflows, so a failure halfway through a batch resumes instead of restarting. Every agent call is traced, which is what makes the system safe to extend rather than merely impressive in a demo.

Stack

Python / FastAPIPostgreSQLEvent-drivenDSPyGoogle Document AILLM orchestrationTemporal
What runs today

In production, every week.

Capabilities, not projections. This is what the system does now.

Weekly orchestration

Across the full candidate database.

Automated CV parsing and structuring

Including the awkward layouts.

AI-generated candidate outreach with reply parsing

So responses re-enter the pipeline without anyone rekeying them.

Full observability on agent behaviour, prompt and model

So a bad output can be traced to its cause.

We publish engagement detail only where the client has agreed to it. If you'd like to speak to a client, ask, and we'll check who is happy to take a call.

Next step

Let's talk.

Tell us what you need built. We'll come back with how we'd approach it, and what it would take.