AWA INSIGHT
Records harvesting & analysis platform
Full-stack · sole engineer · 2026
- React
- FastAPI
- PostgreSQL
- Groq / Llama
- spaCy
- Tesseract
Problem
Investigators lost thousands of hours navigating fragmented federal databases, scanning illegible PDFs, and tracking enforcement records across systems that don't talk to each other.
Architecture
React 18 + Vite SPA over a FastAPI REST API with six routers — facilities, inspectors, dashboard, violations, documents, enforcement. Scheduled harvesters pull public inspection records; pdfplumber and Tesseract extract text; spaCy handles entity recognition; Groq (Llama 3.1/3.3) writes the summaries. PostgreSQL 15 on Supabase, Redis for caching, APScheduler for the harvest cadence.
Decisions
- 01pdfplumber first, Tesseract only as fallback — OCR on every page is slower and lossier than the embedded text layer when one exists.
- 02Every AI summary carries hyperlinked citations back to the source document. An uncited claim about an enforcement record is worse than no claim.
- 03Risk scores are computed on ingest and stored, not derived on read, so search and dashboards stay fast across 10k+ facilities.
Outcome
- Full-text search with fuzzy matching across 10,000+ facilities.
- Automated pipeline: harvest, OCR, entity extraction, risk scoring, summary — with source preservation throughout.
- Deployed: Vercel front end, Render/Railway back end.