Skip to content
Nine live scenario packs, each a folder of Python

Automate compliance intake with voice agents

Your applicants answer out loud. VoxGate screens every answer and hands your reviewers a decision that already explains itself.

L

Lucy

British ยท calm and reassuring

Press play to hear Lucy

Talk to Lucy
  • A person makes every judgment call
  • Full audit trail on every case
  • Explainable, factor-by-factor risk score
  • Card numbers and PINs are refused, never recorded
  • Self-host in your own cloud
  • Demo runs on synthetic data

What it does

Six things it does, end to end.

Not a demo path. Each of these runs in the shipped system, against a real state machine, with tests behind it.

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.

Maps speech to schema

A spoken sentence becomes the exact value the schema requires. Allowed values come from the pack, so the extractor and validator cannot disagree.

Screens every answer

Sanctions, politically exposed persons and adverse media. Name matching handles romanization variants rather than exact strings.

Scores it, showing its work

An additive scorecard, so every case can be broken down into which signal contributed what, and by how much.

Routes to a human when it should

Low risk clears automatically. Anything near the line stops and waits for a named reviewer, with the evidence already attached.

Writes the record as it goes

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

It pauses for humans without losing its place.

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.

Durable checkpoints

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.

  • postgres
  • per-node commit

Resumable threads

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.

  • interrupt
  • resume

Full audit trail

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.

  • ordered
  • immutable

The state machine

One case, from first question to signed decision.

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.

intakeinterviewextract + validatesanctionsPEPadverse mediascorerouteauto approvere-askreviewer gate

Case opened

Pauses for a human. Survives a process restart.Hover any node. This is the compiled graph, not a simplification.

Why this exists

Onboarding one client takes an analyst most of an hour.

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.

Collection

Fully automated. The applicant talks, the system fills the form, and re-asks anything that does not validate.

  • automated

Screening

Fully automated. Name matching handles romanization variants, so a transliterated name still hits the list it should.

  • automated

Judgment

Still human, by design. It now arrives with the evidence attached, the score broken down, and the trail already written.

  • human, deliberately
9
Scenario packs, live
272
Tests green against Postgres
5
Files to add a new use case
0
Platform changes to add one

How it is built

A new use case is a folder, not a rewrite.

Every agent is five files on disk

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

Packs can be authored, not just written

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.

  • describe
  • review
  • publish

Every risk number is explainable

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.

The console watches cases live

A WebSocket streams each state change as it happens, so a reviewer sees a case move through the graph rather than refreshing a table.

Deploys behind your own DNS

Two processes and a Postgres database. The frontend proxies to the API, so the browser only ever talks to one origin.

Use cases

Built for KYC first. The shape generalizes.

kyc-uae

Shipping

Client onboarding for a Dubai fintech. Sanctions, PEP and adverse media screening with a seven feature AML risk scorecard.

loan-intake

Shipping

Consumer lending applications, where the reviewer gate becomes a two person maker and checker approval.

claim-fnol

Shipping

First notice of loss for insurance, where a fraud investigation stage runs only when the score crosses a threshold.

patient-intake

Shipping

Clinical intake, where low risk cases skip the human gate entirely and route straight to triage.

tenant-screening

Shipping

Rental applications, scoring affordability and history before a letting agent ever reads the file.

recruit-screen

Shipping

First round candidate screening, where the pack's questions are the rubric and the score is the shortlist.

Handling

Local first, because the data is somebody's identity.

Speech can stay on your servers

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.

Identifiers can be redacted before any network call

Deterministic checks mean an external model can be sent field shapes and verdicts rather than raw passport or ID numbers.

Every decision carries its own audit trail

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

Listen to an agent handle a real interview.

No microphone needed. Each call shows the agent dealing with something a form never could.

The reviewer's view

Decide in a minute, with the evidence already laid out.

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

Awaiting your review

Captured by voice

Full name
Mohammed Al Rashed
Date of birth
1984-11-02
Nationality
AE
Residency
UAE resident
Source of funds
Business income
Product
Derivatives

Screening

  • Sanctions ยท UN Consolidated ยท Mohammed Al Rashid ยท 91%
  • PEP ยท Closest match 48%
  • Adverse media ยท No articles
Risk scoreHigh ยท 71%
  • 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.

Your call:

What it saves

Put in your numbers.

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.

Talk to an agent in the next ten seconds.

Try the interview yourself, free, in your browser. Or bring your use case and we will build your agent with you.