Inspiration
I kept seeing news about outbreaks that "came out of nowhere" and it never really sat right with me. Like, the data was always there beforehand. People were posting about it, health agencies were quietly publishing reports. It just wasn't being connected fast enough. I wanted to see if I could actually do something about that in 36 hours.
What I built
EpiScan is a real-time disease surveillance dashboard. It pulls from CDC and CIDRAP RSS feeds on one side, and Google News on the other, then uses an AI agent to cross-reference both and figure out what's actually worth paying attention to. Everything gets plotted on a live world map with severity levels so you can see at a glance where things are heating up.
There are three agents under the hood. The first one watches news and social sources for early warning signs. The second one reads official health agency reports. The third one takes everything both agents found and synthesizes it into a ranked list of signals with locations, confidence scores, and severity. The map updates automatically and you can also trigger it manually.
How I built it
I used React and Vite for the frontend, with a Leaflet map for the visualizations. The AI layer runs through the Anthropic API (Claude). All the API calls go through Vercel serverless functions so the key never hits the browser.
The data sources are all free and public. CDC, CIDRAP, and Google News RSS feeds. No scraping, no auth, just clean feeds I could actually rely on during a hackathon.
Challenges
Getting the AI to return clean structured data was probably the biggest headache. The first few prompts came back as a mix of JSON and freeform explanation and I had to iterate a lot on the system prompt before it was reliable enough to actually plot on a map.
I also had a weird bug where every signal in the US was stacking on the same coordinate so the whole country looked like one dot. Fixed it by spiraling duplicate coordinates outward so they spread out visually without moving too far from the real location.
Built With
- css
- express.js
- html
- javascript
- leaflet.js
- react
- react-leaflet
- vercel
- vite
Log in or sign up for Devpost to join the conversation.