// AN AI-NATIVE PARSING ENGINE

Built AI-native.
Reads any document,
any layout.

Not a template engine with a model bolted on. Extraction, routing, and verification all run through AI as a first-class step — so a scanned page, a flattened spreadsheet, or a table that breaks across ten pages comes out the other side as verified rows, not a guess.

alt.parser — uploading submission.pdf alt.parser — queued (1 job ahead) alt.parser — reading submission.pdf alt.parser — submission.pdf verified live
Drop a document to parse
submission.pdf
// JOB QUEUE
submission.pdf queued
invoice_0214.pdf done
statement_q1.pdf done
Reading page 1 of 2…
INVOICE.pdf
INVOICE
Invoice NoINV-2024-1823
Date18 May 2024
Bill ToAcme Corporation
ItemQtyAmount
Consulting1012,000.00
Data processing22,500.00
Support11,200.00
Total15,700.00
Extracted data Structure Raw output Verification
document_typeinvoice
invoice_numberINV-2024-1823
invoice_date2024-05-18
vendor_nameAcme Corporation
subtotal15700.00
tax2800.00
total_amount18500.00
Verified
High confidence · all critical fields verified
awaiting upload queued · position 1 reading page 1 of 2 Model: alt.parser v1 · Pages: 1/1 · Time: 2.3s zero-config · AI-native
// WHERE GENERIC PARSERS BREAK

Layouts change. Most tools don't notice.

01

Generic OCR tools read pixels, not tables — a subtotal row or a repeated header two pages later gets treated as new data.

02

"Upload PDF, get JSON" tools bolt a model onto a rules engine and call it AI. Nothing reconciles the output, nothing checks it, nothing tells you it's wrong.

03

A blank cell, an unreadable cell, and a zero all get flattened into the same 0 — silently, and downstream systems can't tell the difference.

// THE PIPELINE

How it works

One document, one continuous pass. Scroll to trace it through — ingest, route, normalize, verify.

INPUT SOURCES PDF XLS JPG ROUTE TEXT LAYER NATIVE READ VLM NORMALIZE VERIFY $412.00 + $128.50 = $540.50
01 / 04

Ingest & classify

Native spreadsheets are read directly. Born-digital PDFs go through text-layer extraction. Scanned or photographed pages route to a vision-language model — a first-class extraction tier, not a fallback bolted onto OCR.

Route to the right extractor

Each page type hits the extraction method built for it, decided by the pipeline itself, not one model forced across every input.

Normalize into rows

Differently-worded columns, split headers, and continuation rows collapse into one consistent structured schema.

Verify with reconciliation rules

Every row is checked against the document itself — subtotals, repeated identifiers, date sanity. Failures get a flag with a severity, not a silent wrong answer.

Every value traceable to a page and a box.

Every number reconciled against the document itself.

Nothing marked done until it's checked.

// VERIFICATION

AI runs the extraction. AI runs the check on itself.

The same model that reads the page also checks its own work — calibrated confidence comes from independent reads agreeing, not one model's raw guess.

Provenance to the pixel

Every field carries its source page, bounding box, extraction method, and model version. Nothing is untraceable.

Blank, unparsable, and zero are not the same number

A cell that couldn't be read is never silently written as 0.

Confidence, calibrated

Confidence scores are checked against labeled ground truth, not reported as raw model probability.

Handwriting, never trusted on faith

A handwritten value only counts as a trusted read if it passes cross-field reconciliation or a second independent model read agrees exactly. Otherwise: flagged, not guessed.

<0
Submission in, verified data out (p95)
0
Of fields require zero human touch
0
Of fields carry full provenance
0
Blank / unparsable / zero, never collapsed
// OUTPUT

Data shaped for the person reading it, not the model that produced it.

Trend rollups, large-item breakouts, frequency and severity views — structured for an analyst, not a raw JSON dump. Export to Excel, pull JSON, or hit the API directly.

fieldvalueconf.
invoice_numberINV-2024-18230.99
invoice_date2024-05-180.98
total_amount18,500.000.97
statuspaid0.94
{ "invoice_number": "INV-2024-1823", "invoice_date": "2024-05-18", "total_amount": 18500.00, "status": "paid", "source": { "page": 1, "bbox": [82,140,410,158] } }
GET /v1/documents/{id}/rows Authorization: Bearer ••••••• 200 OK · 1 row · 0 flagged
// DEPLOYMENT

Runs where your data already lives.

Offline-capable. Air-gapped deployment available.
No data leaves your perimeter.
No dependency on a third-party parsing API or a closed model you don't control.
A clerk opens a forty-page scanned document, finds the data table starts on page 6, loses the header by page 9, and spends 15–40 minutes rekeying rows by hand — checking twice on anything handwritten. Multiply that by every document that lands this week.
// PER DOCUMENT, TODAY
1540
minutes rekeying rows by hand, before the numbers are even usable

Stop rekeying.
Start verifying.

See an AI-native parser read a document like yours.

Request access
A sandbox seeded with your own documents, not a demo dataset
Real output in a day — not a procurement cycle
No migration required to see it work