Inspiration
St. Louis County publicly releases every restaurant inspection—but the data lives in an old portal few people know exists. We wanted to make that information open, trustworthy, and easy to explore.
What it does
STL Food Agent converts raw inspection pages into structured, verifiable “receipts.” Users can browse by school or restaurant, see historical scores, and verify the official county source with one click.
How we built it
We scraped and normalized inspection data into a common Civic Receipt schema, generated JSON and Markdown records, and served them through a Next.js + TypeScript frontend deployed on Vercel.
Challenges we ran into
The county site had no API, just static HTML with embedded scripts, so parsing and normalizing dozens of edge cases took time (2 hours). Getting consistent source links and handling missing data was another hurdle (1-2 hour fix).
Accomplishments that we're proud of
We turned messy, hidden public data into a working civic product in under 48 hours and less than 12 hours of work. Every record now links back to its original source and can be easily extended to other regions.
What we learned
Civic data isn’t the problem—access is. A little structure and design can turn bureaucracy into usable infrastructure.
What's next for STL Food Agent
Add the rest of WashU dining, build citywide coverage, and open the ingestion pipeline so any county can plug in.
Built With
- github
- next.js
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.