From AI voice agent prototype to a working app in a week
Week two of building Doch
14 Oct 2026
A week after the clickable prototype, Doch became a working app. This post is about that jump: what changed between an AI voice agent prototype that only clicked through screens and an app that rings a real phone, speaks German and keeps me in the loop.
The AI voice agent prototype, making a real call
The property manager in the demo, Hausverwaltung Krüger, isn’t a real business, and a friend played the person on the phone. I tell Doch in English what's wrong: the window in the stairwell is broken, there's glass and feathers everywhere, and it's a safety risk.
Doch asks me a couple of questions, then calls in German. I follow along in live English captions. By the end, a technician is booked for Thursday 15 October at 15:00, and I get a summary of what was agreed.
The plan comes first
Before it dials, Doch shows its plan: who it's calling and how you're connected (in the demo, a tenant for two years), why, which times it can agree to (tomorrow, or Friday after 2 pm), what to do if neither works, and what to say if they ask why you aren't calling yourself. Underneath it all is a hard limit: never outside Monday to Friday, 8:00 to 18:00.
This is the intent preview. Everything the briefing agent learned becomes structured fields, passed to the German agent as dynamic variables. The call agent works from the same plan you see, so if something’s wrong, you fix it before the call, not after a stranger has agreed to it.

The plan for the demo call. The German agent works from the same plan.
Live captions, because I couldn't follow my own call
On 8 October I tested the German call agent by playing the receptionist myself. I ended the call early because I couldn't follow the German. That's the position every Doch user is in. They hand the call over precisely because they can't follow it.
So the live call screen shows each line in English as it's said, with the German underneath. ElevenLabs' live monitoring, which would have streamed the transcript, is Enterprise only. Instead, my server places the call through Twilio and hands the audio to the German agent, while Twilio transcribes both sides in real time. Each line is translated and sent to the browser. The first proof, on 12 October, kept up.
When it doesn't know, it asks
Mid-call, the property manager asked: "Federn? Ist der Vogel noch drin?" Feathers? Is the bird still in there? That wasn't in my brief. The first test call had shown me that a helpful agent fills a gap like that with a confident guess. So Doch doesn't.

The demo call, live. English on top, German underneath, and a question nobody briefed it for.

An early Needs you sheet, still with "Take over the call". That button came out the same day.
It says "Einen Moment bitte" and keeps them on the line. Behind that line, the German agent makes a tool call, ask_user, which reaches my server as a webhook and shows up in the app. A sheet slides up over the live call with the question in English and three answers to tap, or I can hold and speak. I tap "No, it's gone", the answer goes back to the agent, and it carries on in German.

The ask_user tool definition. The agent sends the question in English and German, plus answer options.
The prototype had a "Take over the call" button on the live screen. I dropped it on 12 October. If you could follow the German, you wouldn't need Doch, so jumping into the call isn't a real option for the people it's for. The "Needs you" sheet keeps you in charge without asking you to speak German.
The design question that's left is when to interrupt. Too often, and you might as well make the call yourself. Too rarely, and it agrees to things you never would.
Building with Claude Code
I'm a designer, and I don't hand-write the code. Building with Claude Code meant describing what each screen and rule should do, reviewing what it wrote, testing on a real phone and pushing the changes myself.
Two infrastructure details made a visible difference. The Vercel functions run in Frankfurt, because the default US region added a round trip across the Atlantic to every caption and every question. And every call goes out from the user's own verified mobile number, so if the business calls back, it reaches the person the appointment is for.
By the evening of 14 October the app was live at doch.akberahmed.com and worked end to end on my own phone.
What came next
The app worked, but it still looked like a prototype. Next, Doch gets a design system of its own.
Akber Ahmed is a senior product designer in Berlin, designing and building AI products. See more of his work at akberahmed.com/projects.