AI front desk and agency CRM
The AI receptionist on the agency's phone line, and the CRM each call lands in.
- Built for
- Your Wish Is Our Code LLC
- Role
- Founder
- Status
- Live
- Stack
- Next.js, React, TypeScript, Postgres, Telnyx, Claude, Fly.io
Callers to the agency reach an AI receptionist first, at any hour. It takes down what they need, offers open times and books a call, or promises a callback, and when the call ends the CRM files it with a transcript, a summary and the facts the caller gave. I built both, and the agency runs on them.
The size of the build
- commits to the agency CRM
- 187
- lines of TypeScript
- about 496,000
- tests included
The AI front desk
The receptionist answers the agency's public number around the clock. It can look up a known client's project, file a new inquiry, book a discovery call from the open slots, take a callback or a support request, and flag a call for a person.
In posted hours a qualified caller can be put through to a person. Otherwise the caller gets a callback promise, and the CRM opens a task and sends a push to my phone.
The voice runs on Telnyx with a model hosted there, picked in a bake-off where reply speed came first. Claude reads each call once it ends.


What lands in the CRM
When a call ends, the worker stores the recording, has it transcribed and has Claude read the call into a summary and a set of facts. Each fact carries the quote it rests on, and the CRM fills only fields that are still empty.
The call lands on the caller's timeline beside their deals, papers and tasks. A person can call back from the same page, recorded, with a wrap-up that closes the call.
A call record in the CRM, on demo data: the summary, the transcript and each fact with its quote.
The CRM the agency runs on
The CRM, live since Sep 2026, follows a client from the first call to handover, on Postgres and a Next.js app.
- Organizations, contacts and deals, each with a single timeline of mail, calls, money, tasks and notes, and a next action with a date
- Proposals, contracts and statements of work, sent and signed in the app, with the deposit
- Projects with milestones, renewals and a build log a client can read
- Invoices with a pay link, and a reminder ladder that runs by hand for now
- A client portal behind a single-use sign-in link
- A scheduler for discovery calls, and a weekly check of the agency's listings across the web
- Owner and staff roles, with every change audited
Tested with scripted calls
The receptionist's script is graded against a written rubric, using my own scripted test calls. Its best runs passed every row: 11 of 11 scripted calls on the live line, then 15 of 15 on a later script.
The scripts that came after added the live transfer and a fixed answer on price, and have not passed in full: 14 of 18, then 16 of 21 for the script on the line since late October. A passing run is among the gates on the agency site's call-our-front-desk button, which stays off for now.
Timed by stopwatch on the first run's calls, its replies came after a median lag of about 1.4 s, and 90% of replies within 2,913 ms.
A switch on the CRM's calls page turns the AI receptionist off without a deploy.
Contact
For a role, a project or a question about anything here, email me.
An AI phone line that answers questions about my work.
- Call my AI
- (213) 635-1440
- Download
- Résumé (PDF)