No description
Find a file
2025-12-09 14:36:24 +01:00
.github Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
.env.example Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
.gitignore Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
.python-version Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
bot_logo.png Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
BOTFATHER_COMMANDS.txt Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
docker-compose.yml Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
Dockerfile Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00
monitor.py Fix HOWOGE: iterate selectors to find visible submit button 2025-12-09 14:36:24 +01:00
README.md fix: Stadt und Land now uses Wohnungshelden iframe (like Degewo) 2025-12-09 11:56:51 +01:00
requirements.txt Fix Degewo auto-apply (Wohnungshelden iframe), update dependencies, cleanup for production 2025-12-09 11:30:17 +01:00

inberlin-monitor

A Python bot that monitors Berlin's public housing portal (inberlinwohnen.de) and WG rooms (wgcompany.de). Sends Telegram notifications when new listings appear and can automatically apply to some listings.

What it does

  • Monitors inberlinwohnen.de for new apartment listings from 6 housing companies (HOWOGE, Gewobag, Degewo, Gesobau, Stadt und Land, WBM)
  • Monitors wgcompany.de for WG room listings with configurable filters
  • Sends Telegram notifications with listing details
  • Logs listing times to CSV for pattern analysis
  • Auto-apply feature for supported housing companies

Auto-Apply Support

The auto-apply feature is experimental and only works for some housing companies:

Company Status Notes
HOWOGE Working Tested and functional
Degewo Experimental Uses Wohnungshelden portal
Stadt und Land Experimental Uses Wohnungshelden portal
Gewobag Not working Needs implementation
Gesobau Not working Needs implementation
WBM Not working Needs implementation
WGcompany Not supported Monitoring only, no auto-apply

Setup

cp .env.example .env
# Edit .env with your credentials
docker compose up -d

Local development

pip install -r requirements.txt
playwright install chromium

export TELEGRAM_BOT_TOKEN=your_token
export TELEGRAM_CHAT_ID=your_chat_id
# ... other env vars

python monitor.py

Configuration

Required environment variables

  • TELEGRAM_BOT_TOKEN - Bot token from @BotFather
  • TELEGRAM_CHAT_ID - Your Telegram chat ID

InBerlin login (required for auto-apply)

  • INBERLIN_EMAIL - Your inberlinwohnen.de email
  • INBERLIN_PASSWORD - Your inberlinwohnen.de password

Form data (for auto-apply)

  • FORM_ANREDE - Salutation (Herr/Frau)
  • FORM_VORNAME - First name
  • FORM_NACHNAME - Last name
  • FORM_EMAIL - Email address
  • FORM_PHONE - Phone number
  • FORM_STRASSE - Street name
  • FORM_HAUSNUMMER - House number
  • FORM_PLZ - Postal code
  • FORM_ORT - City
  • FORM_PERSONS - Number of persons in household
  • FORM_CHILDREN - Number of children
  • FORM_INCOME - Monthly net income

WGcompany filters

  • WGCOMPANY_ENABLED - Enable WGcompany monitoring (true/false)
  • WGCOMPANY_MIN_SIZE - Minimum room size in sqm
  • WGCOMPANY_MAX_SIZE - Maximum room size in sqm
  • WGCOMPANY_MIN_PRICE - Minimum price in EUR
  • WGCOMPANY_MAX_PRICE - Maximum price in EUR
  • WGCOMPANY_BEZIRK - District filter (optional)

Telegram Commands

  • /status - Show current status and recent listings
  • /autopilot - Toggle auto-apply on/off
  • /listings - Show current listings
  • /help - Show available commands

Data files

All data is stored in the data/ directory:

  • listings.json - Previously seen inberlinwohnen listings
  • wgcompany_listings.json - Previously seen WGcompany listings
  • applications.json - Application history
  • listing_times.csv - Time series data for listings
  • state.json - Runtime state (autopilot toggle)
  • monitor.log - Application logs

Debugging

When applications fail, the bot saves:

  • Screenshots to data/*.png
  • Page HTML to data/debug_page.html

Check these files to understand why an application failed.

License

MIT