AwaitVerify routes low-confidence extractions to a human verifier on demand, returns a corrected Pydantic response, and keeps your agent pipeline running — automatically.
$pip install awaithumansDrop verify_document() in next to your extraction. Humans handle the review out of band. Your agent resumes with a typed Pydantic instance, no JSON parsing, no babysitting.
# your existing extraction pipeline result = your_ocr_model.extract(document) # add human verification from awaithumans import verify_document verified = await verify_document( task_description="Confirm all codes in table 3B", response_schema=Invoice, document_path="./invoice.pdf", prior_extraction=result, ) # returns a verified Pydantic model. pipeline continues. pipeline.next(verified)
AwaitVerify handles everything between your extraction and your verified result. You write three lines. We handle the rest.
Pass your document, your current extraction result, and a plain-language task description. Works with any extraction provider. Bring your own model and API key.
The document is fragmented before any reviewer sees it. The reviewer sees only what they need to verify the specific extraction in question. Screenshots disabled. Time-bound.
Once submitted, the corrected extraction comes back as a typed Pydantic model. Compatible with Docling's output schema. Your pipeline resumes. The document is deleted.
You choose how much of the pipeline you delegate. We never own your extraction accuracy — that stays with the model you chose.
You already run extraction with GPT, Docling, Reducto, or Azure. You hit a low-confidence result. You call AwaitVerify with the document plus the extracted output. A human verifies it. You get back a corrected result. We never touch your extraction pipeline.
Pass a document, select a provider, and pass your API key. We run the extraction then automatically route to a human verifier. You get a single verified result. Accuracy stays with your chosen provider — we own only the verification layer.
A human verifies first. An AI then checks their response against your defined criteria. If criteria are not met, the task loops back to the human with feedback. Use this when a second check adds meaningful safety for high-stakes extractions.
Four teams. Four different documents that AI got confidently wrong. Four results their pipeline could not survive without.
A B2B SaaS shipped an AI document tool to enterprise customers. The product asked end-users to confirm every extracted field. Users abandoned. Renewals stalled — “AI fatigue.” Moving verification to AwaitVerify pulled the babysitting out of the user's hands entirely. End-users see the verified result, not a queue of “please confirm” modals.
A regional general contractor's AI cross-checked structural drawings against the bar list. OCR misread T12C3 as 712C3, the wrong rebar was ordered, six days into the pour the engineer noticed the spacing was wrong. AwaitVerify catches the misread at confidence < 0.92, before procurement ships.
A neobank in stealth needed KYC — passport + utility bill + selfie — without retaining the document set on a third-party server. The mobile SDK fragments client-side; reviewers verify fragments. The original images never touch the bank's compliance perimeter beyond their app.
A legal-tech company was extracting indemnity, termination, and payment clauses from incoming contracts. The AI was 92% right. The 8% it got wrong cost customers $40k per missed clause on average. AwaitVerify gives them a typed Clause object verified by a reviewer before it ships downstream.
We built the security model around one principle: minimize exposure at every step. Right now the only reviewers are the two founders. Every control below is in place before we expand.
The original never leaves your server intact. Our ingestion generates five masked versions — each with a different region redacted — before any reviewer sees anything. Reconstruction requires time and effort they don't have.
Documents and fragments exist only in memory for the duration of the task. The moment a reviewer submits, every version is deleted. No persistence. No logging of document content. Provable and auditable.
All review happens on premises, on company-owned hardware in a controlled, monitored environment. No working from home. No personal devices. Screenshot disabling enforced in the reviewer dashboard. Time-bounded tasks. ID verification before first task. NDA signed before access. No reviewer sees the same document twice in a session.
Every task logged: reviewer identity, task assigned, time opened, time submitted, result returned. No document content logged. Trail is for accountability — available via dashboard and API.
Priced per page verified. You know how many pages you're sending. Your bill is predictable before the invoice arrives.
The verify() primitive, the self-hosted dashboard, email and Slack integrations, and the AI verification loop are all open source under MIT. You can run AwaitVerify entirely on your own infrastructure.
The hosted platform is for teams that want managed infrastructure, SLA guarantees, and the reviewer network.
view on github ↗$5 free credit. About 6 pages. No card. No sales call. Open source and free to run yourself. Hosted version for teams that want managed infrastructure and the reviewer network.