Find the edges.
Detects exactly where one document ends and the next begins inside a massive, unstructured merged packet.
or click to choose
Multiple PDF, PNG, JPEG & TIFF acceptedSelecting files opens your OS picker. Processing continues in Sheaf. No files are uploaded from this page.
Engineered for:
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.
What Sheaf does while you aren't looking. A complete forensic pipeline that turns a dumped pile into a structured dossier.
Detects exactly where one document ends and the next begins inside a massive, unstructured merged packet.
Recognizes the document context by its content, entirely ignoring useless file names or absent metadata.
Groups the newly separated and named documents into logical, policy-driven dossiers.
Reads the fine print, the tables, and the handwritten notes to pull exactly the fields your operation requires.
Never pretends it is certain. Low-confidence extractions are flagged for an operator's final judgment.
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"
}
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.
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.
Completeness is the question most systems never answer. Sheaf names the requirement that nothing satisfied, which is usually what is holding the file up.
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.
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.