Loading demo…
Loading demo…
Send any document — invoice, contract, ID card, or form — and get back structured JSON with labelled fields. No template configuration, no pre-training. Works out of the box.
Extraction quality depends entirely on the document families you process, so a generic sample uploader would tell you very little. Early access runs against your own corpus with engineering support.
We run early access as a design-partner programme — you get API keys and we get feedback from a real integration before general release.
The hard part was never reading the characters. It is knowing that the number in the bottom-right corner is the total and the one beside it is the tax — on a layout nobody configured in advance.
Text and layout are recovered first — words, their positions, and the visual structure holding them together. This is the OCR layer doing its job.
The model interprets structure the way a reader does: this string sits under a heading, that one is right-aligned next to a label, this block is a table of line items.
Values are assigned semantic names — invoice_number, due_date, total_amount, line_items — inferred from context rather than looked up in a per-layout template.
You get named fields with a confidence score on each, so your pipeline can auto-accept the certain ones and escalate only what genuinely needs a human.
Traditional document processing means drawing boxes on a sample and telling the system what lives where. That works until the eleventh supplier sends a different layout.
| Template-based | Zero-shot | |
|---|---|---|
| New supplier layout | Build and test a template first | Works on the first call |
| Layout changes | Template breaks silently | Adapts — context, not coordinates |
| Setup time | Days to weeks per document type | None |
| Long-tail documents | Uneconomic to template | Handled like any other |
| Maintenance | Grows with every layout added | Flat |
Named fields with per-field confidence, plus the source position of each value so you can show a reviewer exactly where a number came from.
Semantic names rather than coordinates — invoice_number, due_date, total_amount — typed and normalised where the format is unambiguous.
A score on every extracted value, so auto-accept and escalate become a threshold decision rather than an all-or-nothing one.
The region each value came from, so a review UI can highlight the original text instead of asking someone to hunt for it.
If you need positioned text rather than labelled fields, that is OCR. If you need to know what kind of document arrived before deciding how to parse it, chain document classification in front.
Pull totals, tax, dates, and line items from supplier invoices arriving in every layout imaginable, without a template per vendor.
Read name, date of birth, document number, and expiry from identity documents, then pair with a face check on the portrait.
Extract figures from bank statements and payslips so assessment starts from structured data instead of PDFs.
Surface parties, dates, renewal terms, and values across an agreement archive that was never structured to begin with.
In KYC specifically, document extraction pairs with a biometric check on the portrait — face comparison is live today and handles that half.
Related: OCR, document classification, and everything that is live today.
Talk to our engineering team about your use case. We'll get you up and running in under a day.
SOC 2 Type II · GDPR Ready · ISO 27001