AssemblyAI

An AI agent that answers inbound sales and support

An in-house AI agent now resolves 80% of inbound sales and support questions without a human, up from 10% with an off-the-shelf bot

  1. The problem

    AssemblyAI gets well over 1,000 API sign-ups a day, and Matt was the only full-time person on onboarding. The support bot they had bought resolved only 10% of questions end to end, so 90% still went to Matt or the support team, and the team couldn't change the bot's tools or how it looked things up when it got a conversation wrong.

  2. What they built

    Joey, an agent that is the first point of contact for every way a customer reaches AssemblyAI: the sales and support email addresses and the chat widget on the website. Joey answers from the latest docs and pricing page, remembers past conversations with a customer, can run and debug a customer's code, reads screenshots, and can quote a rate based on a customer's usage, escalating to Matt when he isn't comfortable quoting one. Matt built it in one week using Claude Code.

  3. What changed

    10% → 80% of inbound questions resolved without a human

    In the first week live, the share of inbound sales and support questions resolved end to end without a human went from 10% to 80%. Joey takes every inbound conversation, not a hand-picked subset, and costs under $1,000 a month to run (about half that, per Matt).

  4. So what

    Every lead and customer gets an answer at any hour, and people step in only where they're needed, like contract redlines or a live pairing call. The questions the agent struggles with show the team what's hard to find in the docs.

Under the hood

For GTM engineers

Built on the Claude Agent SDK and run as an always-on Docker container on Railway; every push to the repo goes live in about 30 seconds. On each docs update the docs are checked out as markdown into Joey's file system, so he can search them from the command line. Quick answers use hybrid retrieval: Voyage AI embeddings for semantic search plus BM25 keyword search. Behaviour and tools are set in one large CLAUDE.md, first drafted by asking Claude Code what Matt spends his time on. Responses stream with visible progress, the website widget pulls the live status page, and a separate safety check reviews each response for leaked internal information or disallowed tool use. Bad conversations are diagnosed in Claude Code and fixed by editing the CLAUDE.md.

Hiring someone who can build like Matt?

We search for GTM engineers who have shipped systems like this one, and Joe speaks to every candidate before you do.