Skip to content

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.

Tags

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**
kaitlynhemby/insurance-indexer★ 00 forksPythonMITCreated Jun 13, 2026 · last push Jun 14, 2026

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

Team