Debt-Collection Voice Agent
A voice agent that negotiates repayment on an overdue account. Every amount it offers is decided by fixed rules, not by the model.
Problem
Collections calls are heavily regulated. A wrong balance, a discount the company never authorised, or a promise it can’t keep each create real liability, and a model left to its own judgement will produce all three.
What I did
- Split the system in two: the model runs the conversation, and a separate rule engine decides what counts as an acceptable repayment arrangement. The model can only quote figures the rules give it, so it cannot invent or approve anything on its own.
- Made the rules weigh every legal repayment option against what the caller says they can afford and choose the best one, rather than follow a fixed script.
- Built the legal requirements in directly: confirm who you are speaking to before discussing the debt, give the required disclosures, stop when asked, and never threaten or pressure. Every completed call is checked automatically for compliance.
Outcome
- The agent cannot state an amount it was not given, and nothing that breaks the rules can be recorded even if it misspeaks.
- It was tested against dozens of difficult callers, including people disputing the debt or asking it to stop.
- It is live and handling real calls, from both a browser and a phone number.

- Deepgram Voice Agent
- GPT-4o
- Python
- FastAPI
- PostgreSQL
- Supabase


