[Source](https://sheaf.us/document-extraction.html)
# We read the fine print. We catch what they skipped.
How extraction works→
Engineered for:
Cadence Bank
Old National Bank
Webster Bank
Hanover Insurance
Cincinnati Financial
Stewart Title
01 / INPUT
## Bring the mess.
Do not prep. Do not sort. Do not clean up. Just point Sheaf at the raw intake and let the engine handle the reality of operational documents.
Scans
Phone Photos
Merged Packets
Application Dumps
Wrong-order Pages
Junk Pages
Dense Tables
Signatures
02 / PROCESS
## The document work.
What Sheaf does while you aren't looking. A complete forensic pipeline that turns a dumped pile into a structured dossier.
Separate
### Find the edges.
Detects exactly where one document ends and the next begins inside a massive, unstructured merged packet.
Name
### Call it what it is.
Recognizes the document context by its content, entirely ignoring useless file names or absent metadata.
Classify
### Put it in place.
Groups the newly separated and named documents into logical, policy-driven dossiers.
Extract
### Pull the data.
Reads the fine print, the tables, and the handwritten notes to pull exactly the fields your operation requires.
Review
### Surface the human bits.
Never pretends it is certain. Low-confidence extractions are flagged for an operator's final judgment.
Technical detail
How extraction works, and why a value has to point at a page
Read the spec →
03 / OUTPUT
## Structured payload.
The file doesn't need to arrive perfect, but the data leaves that way. Ready for your existing infrastructure.
The return comes back as fields: what the form was, whose it is, and the figure you needed off it.
It lands in your database or system of record, ready to use.
```
{ "dossier_id": "req_8849-2A", "document": { "type": "1040_schedule_c", "confidence": 0.99 }, "extracted": { "borrower_name": "Samuel Hayden", "adjusted_gross": 142500, "requires_review": false } }
```
Every invoice becomes a row: who billed you, how much, and when it is due.
Look up what you paid a vendor last spring without opening a single file.
```
{ "document": "invoice", "pages": "1-2", "vendor": "Brightway Supply Co.", "invoice_number": "INV-4471", "invoice_date": "2026-06-14", "due_date": "2026-07-14", "terms": "net_30", "subtotal": 12480, "tax": 1029, "total": 13509 }
```
The terms come back as data: rent, the annual increase, the notice window, the deposit.
Check a date two years later in about a second.
```
{ "document": "commercial_lease", "pages": "1-31", "tenant": "Northline Coffee", "premises": "1420 Marlow St, Suite 3", "lease_start": "2026-04-01", "term_years": 5, "base_rent_monthly": 8400, "escalator_pct_annual": 3.5, "renewal_notice_days": 180, "security_deposit": 16800 }
```
Limits, dates and policy number read straight off the certificate.
Ask who is covered today and the answer is already sitting there.
```
{ "document": "certificate_of_insurance", "page": 1, "insured": "Meridian Contracting LLC", "carrier": "Sentinel Mutual", "policy_number": "GL-77420", "general_liability": 1000000, "auto_liability": 1000000, "effective": "2026-01-01", "expires": "2026-12-31", "certificate_holder": "Harbor Point Properties" }
```
## What document work actually requires
### [Page-level citations](citations.md)
Every extracted value carries the file, page and span it came from. An answer you cannot walk back to the page is an answer you cannot defend.
### [Scanned and photographed documents](scans.md)
Real work arrives as a scan of a print of a fax. A page with no text layer is the ordinary case here, not the exception that gets routed to a person.
### [Knowing what is missing](missing.md)
Completeness is the question most systems never answer. Sheaf names the requirement that nothing satisfied, which is usually what is holding the file up.
### [Audit trail and reviewer decisions](audit.md)
Every automatic outcome points back at the human decisions behind it, so an auditor can walk from a value to a page without leaving the record.
### [Security and data handling](security.md)
Every request is checked against the role that made it, records age out on a fixed retention window, and each value stays traceable to its page.