UK property alerts with commute-time filtering.
Find homes near work, not just near a postcode.
You're searching for a place in the UK and Rightmove's built-in alerts only filter by location and price. But what you really care about is: can I get to work in under an hour? This tool scrapes Rightmove's API, cross-references every listing with pre-computed travel times, and shows you only the properties worth viewing.
- 🚂 Travel time filtering — skip everything above your commute threshold
- 🔍 Daily property scans — catches new listings within 24 hours
- ⭐ Shortlist — save properties you like, review them later
- ⚡ Multi-threaded fetching — configurable thread pool with rate limiting
- 🌐 Web UI — Vue frontend with collapsible filters and stats
- 📄 HTML reports — generate offline reports with images and map links
| Backend | Rust (Actix-web, SQLite, Rayon) |
| Frontend | Vue 2 + Bootstrap-Vue |
| Data | Pre-computed travel times from UK postcodes |
| API | Rightmove unofficial API |
Requires Rust 1.56+, Node.js 14+, and Yarn.
# Backend
cd backend
cargo build --release
# Frontend
cd frontend
yarn install
yarn build# 1. Populate UK outcode → postcode mappings (~10,000 regions)
cargo run -- --db data/test.db --cmd --outcode
# 2. Import travel time data
python scripts/parse_travel_time.py data/travel_time_search_data/postcode-data.json data/test.db
# 3. Start the server
cargo run -- --db data/test.db --vue frontend/dist --port 8080Open http://localhost:8080 — set your price range, bedroom count, and max commute time.
# Server mode (default)
cargo run -- --db data.db --vue frontend/dist --port 8080 --threads 16 --sleep 500
# Command-line mode — fetch and generate HTML report
cargo run -- --db data.db --cmd --daily --html output.html| Flag | Description |
|---|---|
--db FILE |
SQLite database path |
--vue DIR |
Vue build directory (server mode) |
--port N |
Server port (default: 8080) |
--threads N |
Thread pool size (default: 8) |
--sleep MS |
Delay between API requests (default: 500) |
--cmd |
Run in command-line mode |
--daily |
Fetch today's properties (cmd mode) |
--html FILE |
Output HTML report (cmd mode) |
GET /get_latest_properties # Today's matches
GET /get_saved_properties # Your shortlist
GET /fetch?minPrice=&maxPrice=&minBedrooms=&maxTravelTimeMins=
GET /trigger_latest_fetch # Quick fetch with defaults
GET /save/{property_id} # Add to shortlist
GET /remove/{property_id} # Remove from shortlist
The backend fetches property listings from Rightmove's API by iterating over UK outcodes, then joins each property's postcode against a pre-computed travel time database. Properties exceeding the commute threshold are filtered out. Results are stored in SQLite and served to the Vue frontend, which renders them sorted by travel time (ascending) then price (descending).
Travel time data is sourced from public transit calculations to a reference station (King's Cross by default). The multi-threaded fetcher uses configurable rate limiting to avoid IP blocks.
Personal tool built for UK property hunting. Feel free to fork and adapt.