AI voice screening for HGV driver recruitment
UK haulage runs on HGV drivers, and recruiting them runs on the phone. Every applicant needs the same first-pass screening — licence class, CPC, years held, endorsements, right to work — before a recruiter can act. We built an AI agent that makes that call itself, holds a real conversation, and returns an auditable verdict.
TypeScript · Twilio · Gemini Live · Hono · PostgreSQL · Next.js
Ref 01 · The problem
The problem
- Driver applications arrive in volume from job boards, and each one needs the same short, repetitive screening call before anything else can happen.
- Recruiters lose hours to phone tag; candidates who aren’t called quickly take another job.
- Screening against an insurer’s policy (years held, endorsements) has to be applied consistently — a rushed human call is exactly where consistency slips.
Ref 02 · What we built
What we built
A phone agent that holds the conversation
The system places an outbound Twilio call and bridges the live audio over WebSockets to Google’s Gemini Live API. The agent runs a scripted five-question screening — it speaks, listens, handles interruptions and re-asks when an answer is unclear.
A deterministic decision engine
Answers are evaluated by a pure rule engine encoding an insurer-style policy — not by asking the LLM to make the judgement. Every call ends in PASS, FAIL or ESCALATED, and escalations go to a human. The engine is isolated from all I/O so its decisions are testable and repeatable.
Compliance engineered in, not bolted on
Gemini Zero Data Retention is enforced as a hard runtime check in production. Right-to-work and DVLA-endorsement gates sit in the decision path. Every event lands in a tamper-evident, HMAC-chained audit log, and personal data is purged on a 30-day schedule. The repo carries its DPIA and processor-agreement documentation.
The unglamorous reliability work
A candidate can only ever be decided once, even when two processes race to record the verdict. Calls that drop mid-conversation are swept up and reconciled rather than lost, calling only happens in business hours, and a live recruiter can be warm-transferred into the call when needed. A Next.js dashboard gives recruiters candidates, escalations and the audit trail.
Ref 03 · Stack
Stack
- TypeScript
- Twilio
- Gemini Live
- Hono
- PostgreSQL
- Next.js
Ref 04 · What it demonstrates
What it demonstrates
- Real-time voice AI over the public telephone network — not a chatbot demo
- Deterministic decisioning wrapped around an LLM, so outcomes are consistent and auditable
- GDPR-conscious engineering for a regulated hiring context
- The same architecture transfers to any high-volume screening or triage call
