Product · Self-improvement
Self-improving agents, with you in the loop.
Roark connects post-call analysis to simulation and drafts the fix in between: prompt diffs, model and voice swaps, tool and infra changes, each grounded in the calls that failed. You review, apply and ship. Roark proves the metric moved.
Start free with $50 in credit, no card needed. Works with Vapi, Retell, LiveKit, Pipecat + your stack.
Scoring production voice AI for teams at


01 · The loop, end to end
One failure, all the way
around the loop.
Post-call analysis and simulation are the two halves. Self-improvement is what connects them: the same failure followed from the call that exposed it to the deploy that fixed it, every week, on every agent.
Post-call analysis catches it
A caller asks for a refund and the agent pays out without verifying identity. Post-call analysis scores the call as it lands, flags the compliance miss, and files it as an issue with the 31 other calls that failed the same way. No one had to be listening.
Inside post-call analysisCaller: I was charged twice, I need a refund.
Agent: No problem, I’ve refunded it to your card.
Identity not verified: Refund issued to an unconfirmed caller.Compliance
Simulation reproduces it, then tests the candidates
The failing call becomes a scenario. Roark replays candidate fixes against the exact callers that broke the agent: a softer prompt fails, a model swap fails, adding a verify_identity tool with a verify-first prompt wins. You learn what works before production does.
Inside simulation testingRoark drafts the fix, you apply it
The winning candidate arrives as an explicit, reviewable change: the prompt edit diffed line by line, the model swap named, the new tool listed. Nothing applies itself. You read it, adjust it if you want, and ship it through your own platform.
See the fixes Roark draftsYou ship. Roark confirms the metric moved.
From the first minute after your deploy, every call is scored against the same metric that caught the issue. Recurrence, the quality score, and regressions on every other metric are watched until the fix is confirmed on live traffic, not just in staging.
you ship it, and Roark scores every call from the first minute
…and the loop runs again on the next call.
02 · Drafted fixes
Roark doesn't just file the bug.
It drafts the fix.
Prompt diffs, model and voice swaps, tool and infra changes. Every suggestion cites the failing calls it came from and is replayed in simulation before it ever reaches you.
Prompt optimizer
Evidence-grounded prompt edits, diffed line by line against the version that failed, citing the calls that motivated each change.
Model & voice fixes
Reasoning model swaps, TTS changes and phoneme hints for the failures an edited prompt cannot reach.
Tool & infra fixes
Missing tools, streaming settings and latency changes, because sometimes the problem was never the wording.
You stay in control
Nothing applies itself. Every change is explicit, reviewable and yours to accept, adjust or throw away.
each fix cites the failing calls it came from · apply only what you accept
Where this goes
Next: the loop closes itself.
An agent can only improve itself if it can measure itself. That's why we built evals and simulation first.
Roark catches the issue, drafts the fix and proves it
Every call scored on the audio, every failure reproduced in simulation, and the fix drafted for you: the prompt edit, the model swap, the phoneme hint. You review and apply.
Fixes sourced continuously, ranked by simulated wins
Suggestions drawn from production calls as they land and pre-validated against your failing scenarios, waiting in the queue before you go looking.
Roark applies it, with your approval, and verifies it live
Building, testing, monitoring and improving collapse into one loop that closes itself.
03 · Get started
First call scored in under a minute.
One click on any platform below and production calls stream in on their own, or send any recording with a few lines of code.
Read the quickstartimport Roark from '@roarkanalytics/sdk'const client = new Roark({ bearerToken })await client.call.create({recordingUrl, startedAt,interfaceType: 'PHONE',callDirection: 'INBOUND',agent: { customId: 'support_v2' },}) // scored in seconds
Works with
Enterprise-grade from day one: annual pen tests, SSO/SAML, role-based access, configurable retention.
Bring a recording.
We’ll score it live.
See your own agent measured on the audio it actually produced, in the demo, in real time. Stop guessing whether your voice AI works.
Or start free with $50 in credit · read the docs · support@roark.ai