Try a sample:
🔒 Runs locally. Nothing is uploaded.
0/100

✅ Extracted with confidence

    ⚠️ Where the agent stalls

      ❓ What it would ask you

        What the agent hands to the next step — the extract_document result

        How this works. Rule-based extraction, not a language model: patterns for dates, money, parties, term and notice clauses, references, and signature status — the same fields a production intake agent fills first, minus the model that reads the messy cases. A real agent scores higher on prose and lower on scans; this tool is honest about the gap by listing what it could not resolve instead of guessing. Dates are parsed as written; 09/03/2026 is flagged as ambiguous rather than silently read as September. Like every page here, analytics counts the visit and the score band — never the text.

        Built and maintained by Alec Zakhary. If it misreads a clause you'd expect any agent to get, that's a bug worth reporting.

        What the agent just did — and what it does at scale

        An AI intake agent for documents runs five steps on everything that lands in a shared mailbox, and the checker above is a small, transparent version of the third one. The full walkthrough, with what breaks at each step, is here →

        1. Capture. Pull the attachment out of the email, the email out of the thread, the text layer out of the PDF. Scans go to OCR first — an agent cannot read pixels.
        2. Classify. Contract, invoice, order form, amendment, or noise. Nothing downstream works if this is wrong, so a good agent reports a confidence, not just a label.
        3. Extract. Parties, amounts, dates, the term, the renewal mechanics, the notice period, references to other documents. This is what the score above measures.
        4. Link. Attach the invoice to its contract, the amendment to its original, the order form to the MSA it hangs off. A document with no links is a filing, not a record.
        5. Route. Decide what happens next — register and watch a deadline, send for approval, ask a human — and hand it a structured payload rather than a PDF.

        How the score is built

        Five dimensions, weighted by how often their absence stops an agent cold. A document can be perfectly legible to a person and still score badly: the score measures whether the facts an agent needs to act are present and unambiguous, not whether the writing is good.

        DimensionWeightWhat earns points
        Identity20A recognisable document type, a unique reference number, a document date, a version or revision marker.
        Parties20Both counterparties named as legal entities with their roles (provider/customer, vendor/bill-to), not just a first name in an email.
        Money20An amount with an explicit currency, a cadence (per month / per year / one-off), and payment terms.
        Dates & terms25Effective date, term length, an expiry or renewal date, and — if it auto-renews — a notice period with its counting rule and when notice takes effect.
        Routing15Signature status, an internal owner or cost centre, a purchase order or reference that ties it to something already in the system.

        Penalties on top: a date without a year, a day/month order that can be read two ways, an amount with no currency, a DRAFT watermark, a reference to an exhibit that isn't attached, and text so short it was probably a scan. 80 and above is agent-ready; 55–79 needs cleanup; below 55 the agent stalls and a person has to finish the job.

        The agent-readiness checklist for a business document

        If you control the template — your own order forms, your own invoices, the MSA you send out — these ten items are the difference between a document an agent files in seconds and one it escalates.

        1. A unique reference number on the first page, in a labelled field (Agreement No., Invoice #).
        2. Every date written with a four-digit year, and month names rather than numbers where the audience is international.
        3. Every amount with an ISO currency code (USD 24,000, not $24,000).
        4. Both parties' full legal names and roles in the opening paragraph or header block.
        5. The term stated as a length and as a date (twelve months, ending 28 February 2027).
        6. The renewal mechanics in one clause: does it renew, for how long, and how much notice — in calendar or business days.
        7. When notice counts as given: on sending or on receipt. This one decides the deadline.
        8. Payment terms as a number of days (net 30), and the purchase order it bills against.
        9. Signature status visible in the text, not only in a scanned signature block.
        10. Exhibits and schedules attached to the same file, or at least referenced by number so an agent can ask for the right one.

        What the agent needs from the DMS — not the document

        Half of what makes a document "agent-friendly" isn't in the document at all. It's in the system that holds it. A PDF in a shared drive gives an agent a blob. A document management system built for agents gives it an object: an ID, a version history, a status, links to related records, and an owner. In practice that means the DMS exposes a small, predictable toolset — over MCP or an equivalent — and the agent composes its work from these calls.

        ToolWhat it answersWhy a file share can't
        list_documentsWhat arrived since I last looked, filtered by type, status, party, or deadline window.Folders have no "since" and no status.
        get_documentThe full record: text, fields, version, status, links, owner.A file has a name and bytes.
        extract_documentStructured fields with per-field confidence — the JSON shown above.There is nothing to extract into.
        find_relatedThe MSA behind this order form, the invoices under this contract, the amendment that changed clause 3.Relationships live in someone's head.
        request_approvalRoute to the right approver by amount, category, or cost centre; return a ticket, not a hope.Approval is an email thread.
        get_approval_statusApproved, rejected, waiting on whom, since when.See above.
        file_documentCommit to the registry with fields, links, and a watched deadline; get back an ID the agent can cite.Saving a file creates no obligation.

        The extract_document payload the checker prints is the contract between steps three and five: whatever runs the routing never sees the PDF, only this. That is what makes the pipeline testable, and what lets a human correct one field instead of re-reading forty pages.

        Frequently asked questions

        What data can an AI agent extract from a contract?

        Reliably: the parties, the effective date, the term, the fees and their cadence, the renewal and notice clause, the governing law, and references to other documents. Less reliably, and worth a human check: anything that depends on a definition elsewhere in the document, anything in an exhibit, and any clause written in deliberately open language ("reasonable notice", "mutually agreed"). A good agent reports which is which rather than flattening both into the same confidence.

        How does an AI agent read a PDF?

        It reads the text layer. A PDF exported from Word has one; a scan does not, and needs OCR first, which introduces its own errors — 0 for O, a dropped decimal point. Agents that work on documents at scale run OCR as a separate step with its own confidence, and treat a scanned contract as a lower-trust source until a person has checked the numbers.

        Can an AI agent approve an invoice?

        It can decide that an invoice matches — the vendor is known, the amount is within the contract, the PO exists, the period hasn't been billed before — and route it straight through when your policy allows that. Whether the agent itself is the approver is a policy choice, not a technical one. Most teams let the agent approve below a threshold and route everything above it to a named person, with the agent's reasoning attached.

        What is an MCP server for document management?

        A small service that exposes a document system to AI agents as callable tools — list, get, extract, link, route, file — using the Model Context Protocol, so any MCP-capable agent can work with your documents without a bespoke integration. The seven tools in the table above are a reference shape; the important property is that every call returns structured records with IDs, not files.

        Does this tool send my document anywhere?

        No. The analysis runs entirely in your browser; there is no upload, no API call, and no signup. The site runs analytics that records the page visit and the score band, so the visit isn't invisible — but the text you paste is never part of it.

        Why did a perfectly good contract score 70?

        Usually one of three things: the dates are written 03/01/2026, so the agent cannot tell March from January; the amounts use a bare $, which is five currencies; or the renewal clause says it auto-renews but the notice period is defined somewhere else. None of these confuse a lawyer. All of them stop an agent, and each is a one-line fix in the template.

        One document is a checker. A mailbox is an agent.

        This tool shows what intake looks like for one document, and it will keep doing that for free. The real version connects your contracts@ or invoices@ mailbox, runs these steps on everything that arrives, files each document into a registry with its dates and amounts already extracted, and routes the ones that need a decision to the person who makes it — with the questions above already answered or already asked.

        Private beta, rolling invites. We'll email you about access — this tool stays free either way, and we won't send you anything else.

        How agents read documents Renewals hub