Berkeley Lost & Found ⌕
A live web dashboard that automatically scrapes r/berkeley for lost item posts and removes any that have been resolved (i.e. a comment says the item was found/returned).
Preview
Dashboard view Search & filter
Live Demo
🔗 https://berk-lost-found.onrender.com/
First load may take ~30 seconds because it'a on the free tier If it takes too long to load you can also run it locally with instructions below.
Features
- Scrapes r/berkeley for lost item posts using Reddit's public JSON API
- Auto-filters resolved posts by scanning comments for "found" signals
- Search and filter by date
- Live scrolling ticker of active lost items
- One-click refresh button to re-scrape
Tech Stack
- Backend: Python + Flask
- Scraping: requests + Reddit public JSON API
- Frontend: Vanilla HTML/CSS/JS
- Deployment: Render
Run Locally
# Install dependencies
pip install -r requirements.txt
# Scrape Reddit data
python scraper.py
# Start the Flask server
python app.py
Then open http://localhost:5000
Project Structure
berkeley-lost-found/
├── app.py # Flask API + routes
├── scraper.py # Reddit scraper with resolved-post filtering
├── berkeley_lost.json # Scraped data (auto-generated)
├── requirements.txt # Python dependencies
├── render.yaml # Render deployment config
└── templates/
└── index.html # Frontend dashboard
How the "found" detection works
After fetching each lost post, the scraper fetches its comments and checks for keywords like:
"found it", "returned", "resolved", "dm sent", "already found", etc.
If any comment matches, the post is excluded from the dashboard.

Log in or sign up for Devpost to join the conversation.