Invoice Parse Agent Proof Dashboard

Public proof for OCR, document parsing, structured extraction, eval scoring, Docker deployability, and n8n process automation.

Field Hit Rate

100%

Fields Checked

67

Fixture Invoices

5

Tests

14/14

Workflow Surface

The shipped app includes a live service dashboard at /dashboard when run from Docker or Bun.

Hosted backend: missioncontrol.mjdeving.com/invoice-parse/dashboard

Rendered dashboard proof: dashboard-local.png

PDF/inputURL, multipart PDF, image, raw body, or test text.
OCREmbedded PDF text first, Tesseract.js scanned-image smoke tested.
FallbackGoogle Vision / Document AI boundary documented and isolated.
MemoryQdrant retrieves similar prior invoices with hash or OpenAI embeddings.
ExtractionClaude Haiku 4.5 schema-driven JSON, zod validated.
ReviewSQLite job ledger and editable low-confidence review queue.

Dashboard Screenshot

Invoice Parse Agent dashboard with eval metrics and parsing controls

Eval Proof

CaseHit RateMisses
mustard-logistics-001100%none
northsea-parts-1042100%none
rhein-freight-778100%none
baltic-coldchain-512100%none
alpine-spares-9201100%none

Run It

docker build -t invoice-parse-agent .
docker run --rm -p 8787:8787 \
  -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" \
  -e ANTHROPIC_MODEL=claude-haiku-4-5 \
  -e QDRANT_URL=http://host.docker.internal:6333 \
  invoice-parse-agent

open http://localhost:8787/dashboard

Hosted API smoke: https://missioncontrol.mjdeving.com/invoice-parse/eval

Verification Snapshot

{
  "ci": "passed",
  "typecheck": "passed",
  "tests": "14 passed",
  "docker": "build passed and /eval smoke passed",
  "qdrant": "optional vector memory for similar invoice retrieval",
  "ocr": "Tesseract.js scanned-image fixture passed locally",
  "review": "parse jobs persist to SQLite and reviewed corrections teach Qdrant",
  "eval": {
    "fields": 67,
    "hits": 67,
    "fieldHitRate": 1,
    "averageConfidence": 0.72
  }
}