Conducts the interview
The applicant speaks. The system asks one question at a time, in the pack's own wording, and re-asks when an answer does not fit.
Your applicants answer out loud. VoxGate screens every answer and hands your reviewers a decision that already explains itself.
What it does
Not a demo path. Each of these runs in the shipped system, against a real state machine, with tests behind it.
The applicant speaks. The system asks one question at a time, in the pack's own wording, and re-asks when an answer does not fit.
A spoken sentence becomes the exact value the schema requires. Allowed values come from the pack, so the extractor and validator cannot disagree.
Sanctions, politically exposed persons and adverse media. Name matching handles romanization variants rather than exact strings.
An additive scorecard, so every case can be broken down into which signal contributed what, and by how much.
Low risk clears automatically. Anything near the line stops and waits for a named reviewer, with the evidence already attached.
Every node logs what changed, who acted and how long it took, in order, as part of the case rather than as a side log.
The hard part
A case can stop mid-flight waiting for someone to speak or for a reviewer to click, survive a process restart while stopped, and resume at the exact step it left. That is the hard engineering problem in this class of system. These are the three parts of it.
State is written to Postgres at every step, not held in memory. Kill the process mid-interview and the case is exactly where it was.
A paused case is a thread waiting on an interrupt, not a row with a status column. Resuming continues the graph rather than replaying it.
The sequence of nodes, the timing of each, and the state before and after, kept as case data. A regulator's question has an answer in the record.
The state machine
This is the actual graph, not a simplification. It pauses at the two points where a human matters and picks up exactly where it stopped, even if the server restarted in between.
Case opened
Why this exists
Someone collects the details, checks them against sanctions and politically exposed person lists, judges how risky the applicant is, and writes a justification a regulator can read later. The parts that need judgment are worth an analyst's time. Collecting a date of birth is not.
Fully automated. The applicant talks, the system fills the form, and re-asks anything that does not validate.
Fully automated. Name matching handles romanization variants, so a transliterated name still hits the list it should.
Still human, by design. It now arrives with the evidence attached, the score broken down, and the trail already written.
How it is built
Each scenario is a self-contained pack holding its own schema, checks, scoring model and prompts. Adding one touches no platform code, and a generic conformance suite enforces that claim so it cannot quietly stop being true.
packs/kyc_uae/ pack.yaml schema.py checks.py scoring.py prompt.md
Describe a business process in plain English and the system drafts a pack for review. Publishing compiles it into a live graph without a restart.
The score is additive, so you can point at any case and say which signal contributed what. For regulated work that matters more than raw accuracy.
A WebSocket streams each state change as it happens, so a reviewer sees a case move through the graph rather than refreshing a table.
Two processes and a Postgres database. The frontend proxies to the API, so the browser only ever talks to one origin.
Use cases
Client onboarding for a Dubai fintech. Sanctions, PEP and adverse media screening with a seven feature AML risk scorecard.
Consumer lending applications, where the reviewer gate becomes a two person maker and checker approval.
First notice of loss for insurance, where a fraud investigation stage runs only when the score crosses a threshold.
Clinical intake, where low risk cases skip the human gate entirely and route straight to triage.
Rental applications, scoring affordability and history before a letting agent ever reads the file.
First round candidate screening, where the pack's questions are the rubric and the score is the shortlist.
Handling
The phone agent can transcribe and speak entirely on your own infrastructure. Hosted speech, used by this web demo for its voices, is an opt-in behind the same interface.
Deterministic checks mean an external model can be sent field shapes and verdicts rather than raw passport or ID numbers.
Each node records what changed, who acted and how long it took, in order, as part of the case state rather than as a side log.
Hear a real call
No microphone needed. Each call shows the agent dealing with something a form never could.
The reviewer's view
Every flagged case arrives with what was said, what was found and why it scored the way it did. Try deciding this sample case.
Mohammed Al Rashed
Banking KYC ยท sample case, synthetic data
Captured by voice
Screening
Name is 91% similar to a UN sanctions list entry
Derivatives carry higher product risk
Business income needs source documents
No negative news coverage found
Summary for the reviewer
Applicant answered all six questions in under three minutes and corrected his date of birth once. The name closely matches a UN sanctions entry, but the date of birth differs by eleven years. Recommend confirming identity documents before deciding.
What it saves
Agents run the interviews; your people only review the cases that need them.
Staff time saved each month
156 hours
Worth about
$5,469 / month
Today: 167 hours of interviews. With VoxGate: 10 hours reviewing the 25% of cases that need a person, at about 5 minutes each. Your numbers, your assumptions.
Try the interview yourself, free, in your browser. Or bring your use case and we will build your agent with you.