Personal tool that scrapes full-suspension e-MTB classifieds from 14 portals (Switzerland, Northern Italy, EU shops), filters and scores them against a buyer profile, and shows the results in a local interactive dashboard.
analyze.py, Claude Haiku): an Italian verdict, red flags, and spec corrections read from the seller’s text.server.py): reject, mark sold, favorite, or correct specs by hand.Requires Python 3.11+ and a Supabase (Postgres) project.
pip3 install -r requirements.txt
cp .env.example .env # set DATABASE_URL (and ANTHROPIC_API_KEY for the AI pass)
python3 scripts/validate_supabase.py # checks the connection, creates the tables
python3 run.py # scan all portals
python3 server.py # open the dashboard at http://127.0.0.1:5050
| Doc | Contents |
|---|---|
| Setup | Install, .env, Supabase connection, migrating the old SQLite DB |
| Usage | Scanning, dashboard, AI pass, reprocessing, automation |
| Configuration | config.yaml, buyer profile, filters, scoring formula, portals |
| Architecture | Pipeline, project layout, database tables |
| Development | Running tests, adding a portal connector |
| Troubleshooting | Common problems and fixes |
Private project for personal use.