awaitverify · open source · free to start
Human verification for AI document pipelines.

Your extraction model
is 95% accurate.
The other 5% costs
you millions.

AwaitVerify routes low-confidence extractions to a human verifier on demand, returns a corrected Pydantic response, and keeps your agent pipeline running — automatically.

Works with Docling · PaddleOCR · Reducto · Azure DI · GPT — bring your own stack.
get started free$pip install awaithumans
try it now
drop your PDF here
Drag a PDF here, or
Single page, free during the demo.
PDFAI extractHuman verifytyped Pydantic
how the call works

Three lines into
your pipeline.

Drop 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.

AWAITVERIFY · TASK #VRF_8A31
STEP 1 / 5
invoice.pdf
EXTRACTING…
your_ocr.extract()
GPT · Docling · Reducto · Azure
your_ocr_model.extract(document)your stack runs first
# 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)
how it works

One call. Human in.
Result out. Pipeline
keeps running.

AwaitVerify handles everything between your extraction and your verified result. You write three lines. We handle the rest.

STEP 01

You call verify()

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.

STEP 02

A human verifies the extraction

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.

STEP 03

A typed result returns to your pipeline

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.

integration modes

Bring your stack.
We bring the humans.

You choose how much of the pipeline you delegate. We never own your extraction accuracy — that stays with the model you chose.

FLOW A · RECOMMENDED

Bring your own extraction stack

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.

FLOW B

Bring your model via AwaitVerify

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.

FLOW C

Human-then-AI loop

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.

case studies

Where verify()
earns its keep.

Four teams. Four different documents that AI got confidently wrong. Four results their pipeline could not survive without.

saas · adoption

Verification UI was killing adoption.

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.

0 confirmation modals shippedread the story →
construction · engineering

$2.4M in rework, caused by one OCR misread.

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.

$2.4M in rework avoidedread the story →
fintech · kyc

Identity checks that don't store the IDs.

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.

11s p50 · 0 stored docsread the story →
legal · contracts

92% AI accuracy isn't legal accuracy.

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.

98.7% accuracy · 0 missed-clause incidentsread the story →
security

Your documents are
never seen whole
by anyone.

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.

Document fragmentation

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.

Ephemeral storage

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.

Reviewer controls

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.

Full audit trail

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.

pricing

Simple pricing. You
know your cost before
you ship.

Priced per page verified. You know how many pages you're sending. Your bill is predictable before the invoice arrives.

Self-hosted

Free
Apache 2.0 · run anywhere
Core verify() primitive
Self-hosted dashboard
Email + Slack integrations
Unlimited pages

Starter

$0.80
per page · pay as you go
Hosted dashboard
Managed reviewer routing
Audit logs
Up to 1,000 pages/mo
most popular

Growth

$0.60
per page · auto at 1k+/mo
Everything in Starter
Priority verification SLA
99.9% uptime SLA
Up to 10,000 pages/mo

Enterprise

Custom
volume pricing available
SOC 2 (roadmap)
HIPAA + BAA
SSO + SCIM
Dedicated reviewer pool
Annual plans save 20%. Volume above 10k pages / mo — talk to us.
open source

The core is free.

Forever.

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 ↗
works with
DoclingPaddleOCRReductoAzure DIGPT-4oLangChainLlamaIndexCrewAIPydantic v2FastAPI

Start verifying in
three lines of code.

$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.