Gitano swapped a room of people dialling numbers for one voice AI agent that runs the survey itself

Gitano, a Prague perfume business, was running market research by having staff phone people and read the same three questions. RaftLabs built an alpha voice AI agent that places the calls itself in Czech and English, plus an admin panel to trigger campaigns and a Sanity-managed website. This page is mostly about the two hard parts: making a hosted voice agent sound human, and being honest about latency in a language the platform serves less well than English.

voice agent in place of a team dialling numbers by hand
1
languages in one agent, Czech and English
2
months of tuning and testing across the alpha
5

Short answer

RaftLabs built Gitano, a Prague perfume business, an alpha voice AI survey agent on ElevenLabs that places outbound calls in Czech and English and runs a three-question market research script without a human caller. The build ran April to August 2026 as a fixed-price alpha and included an admin panel for triggering call campaigns and a Sanity-managed marketing website.

Engagement

The Gitano engagement

Client
Gitano, a perfume business based in Prague, Czech Republic
Sector
Consumer goods, with a market research problem
Delivery
Fixed-price alpha, April to August 2026, part-time throughout
Team
One lead engineer, with two engineers part-time on specific tasks. No project manager
Scope
Voice AI survey agent on ElevenLabs in Czech and English, admin panel for triggering outbound call campaigns, and a Next.js website with Sanity for content
Status
Alpha delivered. The campaigns feature shipped in August and the client has not finished testing it

Gitano sells perfume. To understand what people in the Czech market actually wear, the company ran a survey: three questions, asked over the phone, by staff, one person at a time.

The maths is unkind. To survey a thousand people that way, you need roughly ten people making a hundred calls each. The script never changes. Nobody on that call is using judgement. It's salaried time spent reading the same three lines.

The CEO came to us with the script and a clear ask: build a voice AI agent that can make those calls itself, in Czech, triggered from a panel where he uploads phone numbers. He also wanted a website he could edit himself.

We built the alpha. It works. This page is worth reading for the parts that were hard, and they weren't the parts anyone expected. Configuring the agent took about two days. Making it sound human, and proving whether it was slow, took five months.

before & after

From a team on the phones to an agent that dials for you

Before
  • Staff calling people one by one to read the same three survey questions
  • Every additional thousand respondents means more salaried hours, with no leverage
  • No way to run a survey outside working hours or scale it in a week
  • No product, no prototype, and no proof that a voice agent could hold a survey in Czech at all
  • A website the CEO couldn't update without going back to someone
After
  • A voice AI agent that places outbound calls and runs the three-question script on its own
  • Czech and English in one agent, so the team could test in a language they could read
  • An admin panel where the client uploads numbers and triggers a call campaign
  • Full transcripts of every conversation, for reading the answers back
  • A Next.js website with content managed in Sanity, so the client edits it himself
  • A voice configuration the client accepted as sounding human, after months of rejecting earlier ones

The problems we had to solve

  • 01

    The client heard a delay we couldn't reproduce

    This was the defining problem of the engagement. Every time we asked the client to test, he came back saying the agent was slow to respond. Every time we tested it ourselves, it was fine.

    Two things made that hard to settle. He was in Prague and we weren't, so network distance and ElevenLabs hosting location were both in play, and neither is something you control on a standard plan. And he was speaking Czech while we were testing in English, so we weren't measuring the same thing.

    We worked it from three sides. We cut the prompt down, because a long prompt is reprocessed on every turn and pays for itself in latency. We tested across several models to find the one that actually answered fastest, rather than the one that claimed to. And we built a way to measure Czech latency without speaking Czech.

  • 02

    Testing a Czech conversation when nobody on the team speaks Czech

    The workaround is the thing we're proudest of, and it's not sophisticated. One of our engineers pointed a second AI assistant on her phone at our agent in the browser and let the two of them hold a conversation in Czech. She recorded it.

    That gave us something we'd been missing for weeks: a Czech conversation we could replay, time, and send to the client. It showed no meaningful delay. We paired it with a Google Form covering the specific symptoms, sent it to the client's test group and to our own team, and got structured answers instead of an impression. "Feels slow" is not a bug report. "The gap comes after my answer, not before the question" is.

    We settled on the Qwen model in ElevenLabs. The platform claims it has the lowest latency, and in our testing it genuinely did.

  • 03

    The agent sounded like a bot, and that's a voice problem, not a prompt problem

    The second recurring complaint was that the client could tell he was talking to a machine. We spent a while treating this as a prompt and model question, which was the wrong place to look.

    It came down to the voice configuration in ElevenLabs. The same script, same model, same latency, a different voice, and the client stopped describing it as a bot. That's the whole fix. If you're building on a managed voice platform and your agent sounds synthetic, change the voice before you rewrite the prompt.

  • 04

    Czech isn't served as well as English, and no amount of tuning changes that

    Here's the honest finding. ElevenLabs is the fastest route to a working voice agent with very little bespoke engineering. That's why the client wanted it and we agreed. But its Czech performance isn't at the level of its English performance, and you can't tune your way past that.

    The client kept sending us links to other Czech voice bots that felt faster to him. When we looked at them, they weren't built on a managed platform. Those teams were hosting their own speech-to-text and text-to-speech pipeline on their own servers, which removes a network round trip we simply don't have access to.

    That's the trade. A managed platform gets you an agent in days instead of months, and hands you control over the prompt, the model, and the voice. It does not hand you control over where the inference runs. On a standard plan there's no dial for that, and the upgrade that might have helped cost more than the improvement was worth on an alpha.

  • 05

    Reading transcripts in a language you can't read

    A smaller problem that cost real time. Every conversation transcript came back in Czech. Checking whether the agent stayed on script, or drifted off context, meant translating each message before we could judge it. On a debugging loop you run dozens of times, that friction adds up. If you're building for a language your team doesn't read, budget for it.

the build

How we worked, and what we argued about

01

A proof of concept before the alpha was scoped

Before anyone committed to the alpha, we built a small proof of concept with a similar set of questions and sent the client a URL. He could talk to it. That's a cheaper way to answer "is this even possible" than a proposal document, and it's how the alpha got funded.

02

We recommended against Sanity for the website, and he was right to overrule us

The client asked for a Sanity-managed site. We pushed back and suggested a static Next.js site instead, because content served from a CMS at request time is harder to make fast and easy for search engines, and we'd handle content changes for him when he needed them.

He was clear that he wanted to manage his own content, without coming back to an agency each time. That's a legitimate reason and it outranks our preference, so we built it in Sanity. We'd give the same advice again and accept the same answer.

03

We asked the client to test properly, and he did

Rather than keep trading impressions about latency, we wrote a detailed Google Form breaking the complaint into specific, answerable questions, and asked him to put seven to ten people through the agent and fill it in. He did it, willingly. We ran our own team through the same form. Subjective problems need structured collection or you debug in circles.

04

The calendar says five months, the work doesn't

Start to finish was April to August 2026, but this wasn't a five-month build. In a typical week we spent two or three hours on it. The gaps were feedback loops: we'd ship a change, ask the client to retest, and hear back ten to twelve days later. We stayed inside the quoted effort. The calendar stretched anyway.

If you're commissioning an alpha where tuning depends on your judgement, your response time is the schedule. That's not a complaint about this client, who was busy running a business. It's the single most useful thing to know before you start one of these.

Proof

What we can and can't claim

This section is short because the honest version is short. Gitano is an alpha, and the client had not completed testing of the final feature at the time of writing. There are no product analytics and no measured before-and-after figures on this engagement.

ResultWhat changedPeriod or contextEvidence and limitation
What shippedA working bilingual voice agent, an admin panel, and a websiteAlpha scope, delivered in fullVoice agent on ElevenLabs in Czech and English, admin panel for uploading numbers and triggering outbound campaigns, Next.js site with Sanity content management. Delivery engineer, September 2026
Manual effort the agent is built to removeRoughly ten people making a hundred calls each, per thousand respondentsThe client's own model of the manual process, not a measured savingStated by the delivery engineer from the client's description of how the survey ran before. No post-launch measurement exists to confirm it
LatencyQwen on ElevenLabs measured as the fastest of the models we testedTested in English, and in Czech via recorded AI-to-AI conversationInternal testing across several models, plus structured feedback collected by Google Form from the client's test group and our own team
Client acceptanceThe client agreed the agent was good enough, after months of rejecting earlier versionsAugust 2026, on the voice quality and delay complaints that ran through the whole buildDelivery engineer. He also sent an appreciation message in Slack at the end of the engagement. No formal testimonial has been recorded
Business outcomeNone measuredNo survey volume, cost saving, or revenue figure existsThe campaigns feature shipped in August 2026 and the client had not finished testing it. We did not run the website's marketing or SEO, so we have no traffic data either

The lesson

Pick a managed voice platform for the speed, then find out early what it won't let you control

If you're building a voice agent, a managed platform like ElevenLabs will get you further in two days than a custom pipeline gets you in two months. Prompt, model, and voice are all yours to tune, and for most use cases that's every dial you need.

What you don't get is the infrastructure. You can't choose where inference runs, so you can't fix a network round trip, and that shows up first in languages and regions the platform serves less heavily than English in the US. Ours was Czech. Yours might be Portuguese, Polish, or Hindi. The competitor bot your client swears is faster may not be on a managed platform at all, and comparing the two as though they're the same class of product will cost you months.

So do this before you commit. Test the platform in the target language, from the target country, in week one. If the latency is acceptable, build and stop worrying. If it isn't, you have a real decision to make between self-hosting the pipeline and accepting the gap, and you want to make it while it's still cheap.

Where to go next

What we would recommend next

These are opportunities beyond the delivered alpha, not work that was included.

  1. Next 01

    Run one real survey campaign and measure it

    The campaigns feature has been sitting untested since August. A single campaign against a real list produces completion rate, drop-off point, and cost per response. Without those, this remains a demo rather than a working research channel.

  2. Next 02

    Benchmark Czech latency against a self-hosted pipeline

    Before scaling volume, it's worth measuring what a self-hosted speech pipeline actually saves in Czech. If the gap is small, the managed platform wins on every other axis. If it's large, the decision is made on data rather than on comparing against someone else's bot.

  3. Next 03

    Add a Czech-reading reviewer to the loop

    Translating every transcript to check the agent's behaviour was the quiet tax on this project. One native-speaking reviewer on the testing rounds removes it.

  4. Next 04

    Shorten the feedback loop before the next phase

    A ten to twelve day reply time turned a few weeks of work into five months. A standing thirty-minute call each week, against a live build, would compress the next phase more than any engineering change.

Evidence and limitations

Reviewed 22 September 2026

  • Everything here comes from one source: the delivery engineer's recorded answers to our case study questionnaire, given on 17 September 2026 and transcribed the next day. It has not been cross-checked against a second account.
  • There are no outcome numbers, because none were measured. The client had not finished testing the final feature, and we didn't run the website's marketing, so no traffic or conversion data exists on our side.
  • The ten-callers figure is a model, not a measurement. It describes how the client said the manual survey worked, not a verified saving.
  • Budget is not stated. The delivery engineer did not know the commercial terms, and we would rather omit it than guess a shape.
  • Why the client chose RaftLabs is not stated, for the same reason.
  • No client testimonial has been recorded. There is a message of thanks in Slack, which is not the same thing and is not quoted here as one.
  • Client sign-off on this page is pending. It should not be published before Gitano has approved being named and has approved the account of the engagement.

Questions buyers ask about voice AI builds like this

A fixed-price alpha, running April to August 2026. It wasn't full-time work: a typical week was two or three hours. Configuring the agent itself took about two days. The rest of the calendar went on tuning, testing across models, and waiting on client feedback, which usually took ten to twelve days per round.

One lead engineer carried the build and worked directly with our founder. Two other engineers came in part-time for specific tasks near the end, including the Czech latency testing. There was no project manager on this engagement, which suits an alpha of this size and would not suit a full product.

Yes. Gitano's agent runs in Czech and English. The caveat is performance, not capability. Managed voice platforms are tuned hardest for English, and response latency in a smaller language can be noticeably worse. Test in your target language, from your target country, in the first week, because that result decides whether a managed platform is viable for you at all.

The voice configuration, not the prompt or the model. We spent time tuning prompts and switching models before working that out. Once we changed the voice in ElevenLabs, the client stopped describing it as a bot. If your agent sounds synthetic, start with the voice settings.

Speed and operating burden. A managed platform gets a working agent live in days, handles speech-to-text and text-to-speech, and needs no servers from a client without an engineering team. The cost is control: you can't choose where inference runs, so network latency isn't something you can engineer away. For an alpha proving a concept, that trade was right. For high-volume calling in a latency-sensitive language, it's worth re-examining.

This was scoped as an alpha, not a full product, so nothing in the agreed scope was cut and no corners were taken to hit a date. What's absent is everything beyond proving the concept: no production-scale calling infrastructure, no analytics layer over survey responses, and no CRM integration.

Wherever a person reads the same script down a phone line, yes. Market research, appointment reminders, post-service follow-ups, and lead qualification all have that shape. The parts that transfer are the agent configuration, the campaign panel, and the transcript record. The parts that don't are the script and the language, and the language is the one that decides your timeline.

Not on active development. The alpha was delivered, all access has been handed over, and the client raises questions by email when he has them. Whether there's a phase beyond the alpha depends on him running a real campaign first.

Work with us

Recognise this problem in your business?

Tell us what's broken. We'll diagnose it and show you exactly what to fix first, before you commit to anything.

  • Scope and cost agreed before work starts. No surprises. No obligation.
  • Working prototype within 3 weeks of kickoff.
  • Pay by milestone. You see progress before each invoice.
  • 60-day post-launch warranty. Bug fixes, UI tweaks, and deployment support. No retainer.
  • All conversations are NDA-protected.

Trusted by

VodafoneAldiCalorgasEnergia RewardsErisPSiBrandfireWorxsquadCentusSponzee