[Source](https://sheaf.us/document-matching.html)
# Every file, against every requirement.
How matching works→
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
## Closing the checklist.
Your policy says what an application needs. Sheaf binds what actually arrived to what was actually required, and names the difference.
Require
### Read the checklist.
Your policy is the list of things that must be satisfied. It varies by product, by program, and by applicant, and Sheaf takes it as given.
Candidate
### Line up the files.
Everything that arrived is a candidate, including the documents nobody labelled and the ones filed under the wrong application.
Bind
### Satisfy, or don't.
Binds each document to the requirement it actually satisfies, with a confidence attached, and abstains rather than guessing when the evidence is thin.
Gap
### Name what's missing.
Reports the requirements nothing covered. The chase list writes itself, and it is the same list your auditor would have built.
Technical detail
How matching works, and where extraction joins it
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.
Coverage against your checklist, requirement by requirement, with the document that satisfied each one and the confidence behind it.
What's outstanding comes back as a list you can act on, not a percentage you have to interpret.
```
{ "checklist_id": "chk_8849-2A", "satisfied": 6, "outstanding": [ { "requirement": "hazard_insurance" }, { "requirement": "gift_letter" } ], "complete": false }
```