CadreAI
Self-Verifying Insurance Document Indexer — Indexing emailed insurance documents (certificates of insurance, first-notice-of-loss claims, binders) is a back-office slog that takes teams weeks of manual keying and goes st
Core trick
Extracts fields with source-span offsets, routes low-confidence values to review, and grades each record with deterministic gates for schema and reconciliation.
Description
Self-Verifying Insurance Document Indexer — Indexing emailed insurance documents (certificates of insurance, first-notice-of-loss claims, binders) is a back-office slog that takes teams weeks of manual keying and goes stale the moment a new document arrives. This turns those emailed PDFs into verified, structured records in seconds, where every field shows its work: each value traces to a verbatim span in the source document (visible, highlighted, in the actual PDF), low-confidence fields route themselves to a human review queue instead of being guessed, updated
documents reconcile with a field-level diff and re-verify only what changed, and an independent, deterministic
verifier grades every record against six gates — grounding, schema, confidence-routing, no-fabrication,
reconciliation, and accuracy against ground truth — so "done" is a green check, not an opinion. It's built to flex to
any insurer: one config file re-targets the entire pipeline to a new document type with no code change, a router
auto-selects the right schema for a mixed inbox, per-company profiles route the same document to different
departments, and an insurer can define what to collect just by chatting with a configuration agent. Powered by Claude
Opus 4.8 (the extraction engine, the self-correcting loop, routing, and the live chat) and built end-to-end in Claude Code; all code is original and the document corpus is synthetic and fictional. **DISCLAIMER: all pdfs/emails are synthetic**
README excerpt
# Self-Verifying Insurance Document Indexer Built during the Build Day event using **Claude Code + Claude Opus 4.8**. **🔗 Live demo:** https://viewer-puce-phi.vercel.app — a mock email **inbox** (PDFs arrive) → click one to watch it run the pipeline → a **verified record** with every field beside its source span → click a span to see it **highlighted in the actual PDF** → a live **chat** to configure the pipeline for any insurer (the config-authoring agent; not a chat-with-your-data box). **What it does:** turns emailed insurance PDFs (certificates of insurance, first-notice-of-loss packets) into structured, verified records. Every field traces back to its source span, low-confidence fields route themselves to a human review queue, the index updates and re-verifies as new documents arrive, and a single config file re-targets the whole pipeline to any insurance document type. ## Original work statement All application code in this repository (`extract.py`, `verifier.py`, `workflow.py`, and any viewer) was written from scratch **during the event**. The document corpus under `inbox/` is **synthetic and fictional** — no real client data, names, or proprietary assets are used. ## Repository layout ``` CLAUDE.md project guide (architecture, run, key constraints) extract.py verifier.py workflow.py the pipeline (built during the event) pdftext.py normalize.py schema_util.py shared: PDF→text, normalization, schema walk viewer.py thin record