Automated apartment hunting — run scans, check results, pause/resume cron. Searches listing platforms with configurable budget, district, and transit filters.
Monitors apartment listings on a cron schedule. New listings that pass price + transit filters trigger a notification.
${APARTMENT_SCOUT_DIR}
Configured in ${APARTMENT_SCOUT_DIR}/config.ts. Supports multiple parallel searches:
| Search Type | Platforms | Config Keys |
|---|---|---|
| Apartment | Immoscout24 + Kleinanzeigen | maxWarmMiete, districts |
| WG slot | WG-Gesucht | maxWarmMieteWG, wgCity |
Transit filters: configurable max commute times to target stations in config.ts.
cd ${APARTMENT_SCOUT_DIR} && bun run src/main.ts
touch ~/.apartment-scout-paused
rm -f ~/.apartment-scout-paused
ls ~/.apartment-scout-paused 2>/dev/null && echo "PAUSED" || echo "RUNNING"
cd ${APARTMENT_SCOUT_DIR} && bun -e "
import { recentFinds } from './src/db.ts'
const finds = recentFinds(10)
finds.forEach(f => console.log(\`[\${f.type}] \${f.price} | \${f.title?.slice(0,50)} | \${f.added.slice(0,10)}\n \${f.url}\n\`))
"
tail -f ${APARTMENT_SCOUT_DIR}/logs/scout.log
crontab -l | grep apartment
${APARTMENT_SCOUT_DIR}/config.ts
GEMINI_API_KEY in ${APARTMENT_SCOUT_DIR}/.envcd ${APARTMENT_SCOUT_DIR} && bun run src/main.tsrecentFinds() and show resultstouch ~/.apartment-scout-pausedrm ~/.apartment-scout-pausedconfig.ts budget valuesSet in your .env:
APARTMENT_SCOUT_DIR=~/Developer/apartment-scout