The document says one thing. The form says another.
Claude reads every document your client uploads, extracts the fields, cross-checks them against what was entered in the form, and tells you exactly where things don't match — in plain language, not "error 0x4F". It is judgment applied to what the OCR copied, and the decision stays with your analyst.
3
cross-checks
document · master · policy
0
blind issuances
blocks before issuing
2
finding types
blocking and tolerable
8
industries
same engine running
UNDER THE HOOD
It tells you which field failed, against what, and why.
A validator that only says "invalid document" forces your team to open the PDF and guess. Claude exposes what it extracted, which field it cross-checked, what didn't match, and what to ask the client — in a sentence anyone can understand.
Sample document
The document comes in
Client uploads a photo of their ID document to activate an RCV policy. Form says: name "María Fernanda Rojas", ID "V-18.402.117", date of birth "1990-03-12".
Document extraction
Vision over the ID → name, ID number, date of birth, expiry readable
Field-by-field cross-check
name ✓ · ID ✓ · date of birth ✓ — normalizing accents and separators
Expiry check
future expiry date → document valid, not expired
Image quality
no glare or cropping on key fields → reliable reading
Score
96/100
Verdict from Claude
Approved. All 3 fields match and the document is current. Activation continues.
The document comes in
Vehicle invoice for RCV activation. Form states chassis serial "8Z1TC5810P1234567". The invoice shows "8Z1TC5810P1234561".
Document extraction
OCR over the invoice → serial, amount, date, dealership
Serial cross-check
document "...234561" vs form "...234567" → differ in the last digit
Rule out reading error
image is clear in that area → the reading is right and the value differs
Classify the discrepancy
critical field for issuance → cannot proceed without correction
Score
38/100
Verdict from Claude
Flagged. The invoice serial does not match the form serial in the last digit. Ask the client to verify the number or upload the correct invoice.
The document comes in
Driver's license as supporting document. Holder data matches, but the printed expiry date is "2024-09-30" and today is 2026-05-15.
Document extraction
Vision → name, number, category, expiry date
Identity cross-check
name and license number match the form ✓
Expiry check
expiry 2024-09-30 < current date → document expired
Decide the block
identity is correct, but an expired document is not valid for issuance
Score
29/100
Verdict from Claude
Flagged. Data is correct but the license expired on 09/30/2024. Request the renewed document to proceed.
WHAT THE AI DOES WITH EACH DOCUMENT
Five tasks your team shouldn't be doing by eye anymore
Every document a client uploads goes through these five steps, each with its rule and its trace. Your team receives the verdict and the observation, not the PDF.
claude.extract(doc)
Reads the document even if it's tilted, blurry, or a screenshot
OCR + vision over ID documents, invoices, titles, licenses, RIF, certificates of origin, or bank references. Outputs structured fields — not a plain text block.
› input
Document: ID photo (JPEG, slightly tilted)
› claude →
type: national ID document
name: "María Fernanda Rojas"
document: "V-18.402.117"
dob: "1990-03-12" · expiry: 2031
→ 4 fields extracted · high confidence
claude.crossCheck()
Compares each document field against what the client entered
Normalizes accents, capitalization, separators, and date formats before comparing. "JOSE PEREZ" and "José Pérez" match; "8Z...4561" and "8Z...4567" do not.
› input
Doc.serial="8Z1TC5810P1234561" · Form.serial="8Z1TC5810P1234567"
› claude →
name: document = form ✓
ID: document = form ✓
serial: 8Z...4561 ≠ 8Z...4567 ✗
critical field: serial → blocks issuance
→ 1 discrepancy detected
claude.flag(issue)
Classifies the discrepancy: blocking or tolerable
Not every mismatch stops a process. An extra accent is tolerable; a serial or an expired document is blocking. You define which fields are critical.
› input
Discrepancy: serial differs · license expired 2024-09-30
› claude →
⚠︎ serial ≠ → critical · blocks
⚠︎ license expired → critical · blocks
global severity: high
suggested status: FLAGGED
→ do not proceed without correction
claude.explain()
Translates the issue into a sentence the client understands
Zero jargon, zero error codes. The observation reads like what your best analyst would write: what's wrong, compared against what, and how to fix it.
› input
Generate friendly observation for serial discrepancy
› claude →
"The chassis serial on your invoice
does not match what you registered
(ends in 1, not 7). Please verify the
number or upload the correct invoice."
— ready to send to the client
claude.route()
Approves, flags, or escalates — and triggers the next step automatically
Clean document: the process continues automatically. Flagged: notifies the client with the observation. Ambiguous case: escalates to a human with context already assembled.
› input
Verdict: FLAGGED · client channel: WhatsApp
› claude →
status → "Flagged" in your core
observation → WhatsApp to client
reprocessing → triggered on new doc
webhook → Make notifies analyst
→ process on hold, nothing touched
LIVE SYSTEM · Grupo Latitud
This is what it looks like inside an AI-operated system — and how it is governed.
This tour shows the moment the AI stops a tax document with a datum that does not match, before issuing it: so nothing gets cancelled or reissued.
Modules in this tour
- 01Extracts, cross-checks and classifies
- 02The certain is posted; the doubtful is visible
- 03The price, from the list to the bank
- 04Every block leaves its record
- 05No agent moves money
Boosty Standard for Operating with AISimulated AI · demo data
THE SAME ENGINE
One validator. The document changes, not the logic.
We don't train a model per document type. The same engine reads the document, cross-checks it against each business's form, and observes in plain language. This is already running in production.
Signals specific to the industry
Signals specific to the industry
Signals specific to the industry
Signals specific to the industry
Signals specific to the industry
Signals specific to the industry
LIVE VALIDATOR
The document comes in. It leaves with a verdict.
Watch the full cycle: the document comes in, the AI scans it, the fields light up one by one as they are extracted, and the verdict appears with the finding ready for the customer.
nombre
María Fernanda Rojas
documento
V-18.402.117
fecha_nac
1990-03-12
vigencia
2031-03-12
The 4 fields match the form and the document is valid. The activation continues.
The serial on the invoice ends in 1, the one on the form ends in 7. Ask the customer to check the number or upload the correct invoice.
The data matches, but the license expired on 30/09/2024. Request the renewed document to continue.
FIELD BY FIELD CROSS-CHECK
What the document says, side by side with your form.
Each row is a field. The AI normalizes accents, capitalization and formats before comparing — and when something does not match, it says so in a sentence your customer understands.
Finding the customer receives
“The chassis serial on your invoice does not match the one you registered (it ends in 1, not in 7). Check the number or upload the correct invoice.”
“The invoice brings 48 units of SKU B-771, but the purchase order asked for 60. Confirm whether there was a partial delivery before approving the payment.”
“The legal name on the tax ID says "SRL" and on the form you registered "C.A.". Correct the company type so the contract is issued under the right name.”
IN THE SYSTEM · TAX INVOICING
The document is validated before it is issued.
Every extracted field against the master record, with its verdict —blocking, tolerable or correct— and where it is routed. A tolerable field does not block; a blocking one does, and says why.
Real screenshot of the system · demonstration data
ERRORS IT CATCHES
The errors a tired eye lets through. At 2am, it does not.
A serial that does not add up, an expired document, a different amount, the wrong tax ID, an unreadable photo. Below, the raw machine log — and next to it, what your team and your customer actually read.
› crossCheck(serial)
doc="8Z1TC5810P1234561" ≠ form="8Z1TC5810P1234567"
The chassis serial on the invoice does not match the one on the form — they differ in the last digit.
› checkExpiry(licencia)
expires=2024-09-30 · today=2026-05-15 → EXPIRED
The driver license expired on September 30, 2024. Even though the data matches, it is not a valid supporting document.
› crossCheck(monto)
doc="USD 4,310.00" ≠ order="USD 4,130.00"
The invoice amount is USD 4,310.00 but the purchase order recorded USD 4,130.00.
› crossCheck(razon_social)
doc="Comercial Andina SRL" ≠ form="Comercial Andina, C.A."
The company type on the tax ID (SRL) does not match the one recorded on the form (C.A.).
› extract(cedula)
field=numero · ocr_confidence=0.41 → UNREADABLE
The ID number came out unreadable because of glare in the photo. A new photo is requested before approving.
› crossCheck(titulo)
nombre ✓ · documento ✓ · vigencia ✓ → ALL MATCH
Every critical field matches and the document is valid. Case approved, it continues on its own.
IN THE SYSTEM · RECONCILIATION
What is certain is posted on its own. The rest stays suggested, with a reason.
Bank movements against invoices and payments, with the three criteria in view and the explicit threshold. What does not match is not hidden.
Real screenshot of the system · demonstration data
CONNECTED STACK
Lives inside your document flow. Doesn't replace it.
The validation layer connects wherever your clients already upload documents. If your core has a REST API, we talk to it.
Claude · Anthropic
Claude PartnerThe engine: vision extraction, field cross-check, classification, and observation
Supabase
Document storage + Deno Edge Functions for real-time validation
Make / n8n
Webhooks to your core or ERP when a document is approved or flagged
WhatsApp Business
The friendly observation reaches the client through the same channel they used to upload
Kommo CRM
PartnerThe process status (approved/flagged) syncs with the opportunity in your CRM
Monday.com
Queue of flagged documents for an analyst to resolve edge cases
Frequently asked questions about document validation with AI
No. An OCR copies text and stops there. Here, Claude reads the document, extracts structured fields, cross-checks them against what the client entered in your form, decides whether the difference is blocking, and drafts an observation the client understands. OCR is just the first of five steps.
National ID, driver's license, RIF, property title, certificate of origin, invoice, bank reference, articles of incorporation — and anything else with fields that can be cross-checked against a form. It's not tied to a template: it reasons about content, not a fixed layout.
Yes, within reason. The vision model tolerates tilt, mild glare, and low resolution. When a key field is unreadable, it doesn't guess: it marks it as "unreadable" and asks for a better photo rather than approving blindly. We prefer a "please re-upload" over a false positive.
You set the threshold. The typical setup: approves automatically when all critical fields match, flags and notifies the client automatically on a clear discrepancy, and escalates to a human only in ambiguous cases — with context already assembled. It's gradual: you increase autonomy as you build confidence in its judgment.
Because an "invalid document" with no explanation forces your analyst to open the PDF and guess what failed. Seeing which field didn't match, against what, and why turns a minutes-long review into a seconds-long decision — and gives the client an actionable observation, not a flat rejection.
In the configuration. An extra accent or space is usually tolerable; a serial, a RIF, or an expired document is usually blocking. You flag which fields stop the process and which are only noted. The engine respects those rules — it doesn't invent them.
Yes. If your core has a REST API we integrate directly; if documents live in Supabase Storage or a bucket, we read from there; if the flow is legacy, we connect via Make/n8n. The client keeps uploading where they already do — validation happens behind the scenes.
It is defined in the assessment. The scope — what gets built first and what waits — comes from what we see in your operation, not from a catalog. Book 30 minutes and we give you the range in writing.

A WORD FROM THE FOUNDER
“The value of reading a document lies in cross-checking it, field by field, against the form, every day.”
Document validation works like passport control: what matters is comparing the photo with the person and the number with the record. At an insurer, RCV policy activation depended on a team that opened every ID, invoice and title and checked by eye whether the invoice serial matched the one on the form. One digit off and the policy was issued wrong.
Document validation with AI reads the document, cross-checks it against what the client wrote, tells when an accent is irrelevant and when a serial does not match, and explains to the client what to correct in one sentence. It works across every document, at any hour, and leaves in view whatever it could not verify: that exception is resolved by a person, with the reason written down.
For the business, that means whatever does not match stops before issuance, with its reason. Book 30 minutes with me: I’ll show you the cross-check live on a sample document from your flow. How many fields does your team compare by hand on each application today?

Gabriel Montiel
CEO · Boosty Digital
LET'S TALK
Ready to stop comparing documents by eye?
Schedule a 30-minute assessment. We bring a real document from your flow and show you the extraction, cross-check, and observation live. No corporate deck.