The problem
Support teams don't need a voice agent that can chat. They need one that can find the right account, book a slot that actually exists on the calendar, follow the client's process, and hand off to a person when it should.
Automatdo set out to build that, and I led its engineering from the voice runtime to the operator dashboard. In production, the inbound agent handled more than 10,000 support calls a month.
What I built
The platform is a Django application. Live voice runs over WebSockets, with SMS alongside it. Each client gets a small, explicit set of tools on top of foundation LLMs, and a flow layer handles conditions, branching, and tool calls. Agent configuration is persisted, so runtime behavior comes from data rather than prompt edits.
Tools were the product. I built CRM adapters for HubSpot, Zoho, and HighLevel and calendar integrations for Google, Microsoft, and CalDAV. Background workers handle CRM reconciliation and outbound SMS, email, and voice campaigns. Permissions and data access are scoped per organization throughout.
Making the agent explain itself
Nobody trusts a black box that talks to their customers. The Django and React dashboard shows handled calls, booked appointments, voicemails, and SMS, with role-based access, deployed on AWS through CI/CD. Operators can open any call and see what was said, which tools ran, and what came back.
Once volume passed a few thousand calls a month, listening to a sample by hand stopped scaling. I built an LLM scoring service that rates every call for agent performance, customer sentiment, risk, and purpose, exposed through APIs and dashboards. It replaced most manual QA.
Voice Arena, the evaluation workspace, runs agent configurations against fixed business scenarios and keeps the evidence for each run. A passed test, a failed agent action, and missing evidence are three different states, and the interface shows them that way.
Beyond voice
For a client in youth sports, I built a TensorFlow NLP model that flags high-risk patterns in live chat for human review. It runs daily on SageMaker and is tuned for precision, so reviewers aren't buried in false alarms.
I also built automatdo.com in semantic HTML, custom CSS, and vanilla JavaScript, published to S3 and CloudFront. It explains the platform through concrete jobs, lets visitors hear the agent, and sends demo requests to HubSpot.