Use case

Document Extraction

The facts trapped in PDFs, invoices, and contracts get read out into clean, checked data your systems can use — with a person double-checking anything the AI isn't sure about.

The short version

Imagine an assistant who reads every incoming invoice and neatly copies the details into your system — date, amount, supplier — and puts anything smudged or odd on your desk with a note, instead of guessing. That's document extraction: typed fields out of paperwork, with honest doubts routed to a person.

How it flows
Document arrivesConverted to clean textModel fills in the formEvery field checkedUnsure? A person reviewsClean data enters your systems

The problem, in plain words

A folder fills up with PDFs — invoices, contracts, signed forms. Every fact your systems need is in there: amounts, dates, renewal clauses. And every one of them enters your database the same way: a person opens the file, finds the field, and retypes it. It's slow, it's dull, and retyping has a typo rate. The old-school alternative — template parsing that looks for a number at fixed coordinates — breaks the day a supplier redesigns their invoice. So the backlog grows, and the data your automation needs stays trapped in attachments.

What we set up

We build a reading pipeline. Documents are first converted to clean text (Docling for PDFs and scans, MarkItDown for Word and Excel, format-specific extractors elsewhere). A model then reads the text and fills in a strict form — the exact fields you declared, each with its type (structured outputs, validated against a Pydantic schema: a machine-checked template that refuses wrong shapes, like a date where an amount belongs). If validation fails, the model is shown the specific error and asked to correct itself. If it's still unsure or keeps failing, the document goes to a human review queue — never straight into your database. Large backlogs run through batch processing, which costs less than one-at-a-time calls.

How it works, step by step

  1. The document arrives

    A PDF, a scan, a Word file, a spreadsheet — it enters the pipeline as-is.

  2. It is converted to clean text

    Layout, tables, and scanned pages become plain, readable text the model can work with reliably.

  3. The model fills in the form

    It extracts exactly the fields you declared — invoice number, total, due date — into a typed structure.

  4. The form is checked, not trusted

    Validation verifies every field against the schema. A failure sends the model back with the specific error to fix.

  5. Doubt goes to a person

    Anything below the confidence bar lands in a human review queue, with the document and the model's best guess side by side.

  6. Clean data lands in your systems

    Validated records flow into your database, each one traceable back to the exact source document.

What changes for you

Before: paperwork is retyped by hand, or parsed by brittle templates that break with every redesign — and the automation you want can't exist, because the fields don't. After: invoices, contracts, and forms land as typed, validated data, each record traceable to its source document, with people reviewing only the genuinely uncertain cases. What it won't do: it won't be flawless on terrible scans or handwriting — that's exactly what the human review queue is for, and it's a feature, not an apology.