Document intelligence · self-hosted

Every value,
proven.

Quilldoc extracts structured data from any document and grounds every field to the exact place it came from. No supporting evidence? Then no value — we don't invent.

Runs on your hardware — air-gapped if you need it. No per-page fees.

MERIDIAN AUTO SUPPLY

14 Ridgeway Ind. Park

INVOICE №INV-20347
DATE2026-06-14
Transit bearings ×244,320.00
Brake assemblies ×66,660.00
Freight1,500.00
TOTAL12,480.00
Extraction · verifiedquilldoc
vendor_name
·····
invoice_date
·····
total_amount
·····
po_number
·····
3 grounded · 1 withheld · 0 invented1.4s

0

invented values

ungrounded fields are withheld, not guessed

100%

field grounding

every value cites its evidence on the page

$0

per page

self-hosted on your GPU — no metering

1 box

to deploy

a single GPU server, air-gap optional

How verification works

Extraction is easy.
Evidence is the product.

Anyone can call a model. The hard part is telling you which values are trustworthy — and refusing to guess the rest.

01

Ingest

Drop in PDFs, scans, or photos. OCR runs locally; nothing leaves your network.

ocr: local · egress 0
02

Extract

Fields defined by your schema are pulled by a task-specific model, not a chat prompt.

schema.total_amount → 12,480.00
03

Ground

Every value is anchored to a bounding box on the source page. No evidence, no value.

evidence: page 1 · bbox [412, 704, 486, 719]
04

Verify

Low-confidence rows land in a human review queue. Everything else ships as JSON.

0.58 → review queue

Benchmarks

We measure on the documents
you actually process.

Grounding is structural, not a marketing number: any value we can't anchor to a box on the source page is withheld, not scored — so every returned field cites its evidence. Per-field precision is validated on your own corpus. If a category isn't measured, we say so.

Doc typeGroundedPer-field precision
Invoices100%on request
Purchase orders100%on request
Bank statements100%on request
Contracts (clause)100%on request
Handwritten forms100%on request

“Grounded” = share of returned fields anchored to a bounding box on the source page. We share per-field precision validated on your documents — we don't publish numbers we can't reproduce on your corpus.

The fork

Cloud accuracy or your own walls.
Pick both.

Cloud document AI makes you choose: their newest models in their cloud, or their oldest models in your building. Quilldoc collapses the fork — modern extraction, owned open-weight models, severed network.

Cloud document AIQuilldoc
Modern VLM extractionyes — in their cloudyes — on your box
Runs fully air-gappedlegacy models only, if at allthe same models, weights included
Refuses to invent valuesconfidence scores at bestungrounded fields withheld
Pricing$10–30 per 1,000 pages + minimumsyour GPU. that's it

Deployment claims verified against vendor documentation, July 2026. Azure's newest extractor is cloud-only; its air-gap containers run pre-LLM models with volume minimums. Google's air-gapped cloud excludes its structured-extraction processors.

Sovereignty

Your documents don't
leave your building.

Quilldoc is a container you deploy. Not an API you call. Not a vendor you send your invoices to.

Runs on your GPU

A single A100 or L40S is enough for most workloads. Scale horizontally if you need to.

Air-gap optional

No outbound calls, ever. Model weights ship in the container — cut the wire and it still works.

Auditable

Deterministic outputs. Every extraction logs the exact bounding box it was pulled from.

See it work on a document
you actually care about.

Drop a PDF, watch every field extract with its confidence and evidence citation. Two minutes.