Field Hit Rate
100%Fields Checked
67Fixture Invoices
5Tests
14/14Workflow 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
Eval Proof
| Case | Hit Rate | Misses |
|---|---|---|
| mustard-logistics-001 | 100% | none |
| northsea-parts-1042 | 100% | none |
| rhein-freight-778 | 100% | none |
| baltic-coldchain-512 | 100% | none |
| alpine-spares-9201 | 100% | 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
}
}