A Kotlin Multiplatform app to scrape, aggregate, filter, and manage Zurich flat-share offers in one place.
Explore the repository »
View Issues
·
Report Bug
·
Request Feature
Table of Contents
FlatScraper is a desktop-first housing aggregation tool for Zurich students and renters. It collects offers from multiple platforms, stores them locally, and provides a workflow-centered UI to filter opportunities and track outreach.
What it is optimized for:
- fast periodic scraping and unified offer tracking
- rich filtering and multi-level sorting for high-volume offer streams
- reusable message templates and status flags (
favorite,messaged,deleted) for application workflows - transit-time-aware decision making via Google Maps integration
Follow these steps to run FlatScraper locally.
- JDK 11+
- Android SDK (only needed for Android builds)
- Internet access for scraping targets and API-backed features
- Clone the repository.
git clone https://github.com/flxholle/flatscraper.git
cd flatscraper- (Optional) Configure local Android SDK path in
local.properties. - Run the desktop app.
./gradlew :composeApp:run- Open
Settingsin-app and set:
- Google Maps destination(s)
- Google Maps API key(s)
- ETH Wohnen credentials (if used)
- Build and test.
./gradlew build
./gradlew test- Click
Refreshto run all configured scrapers. - Use
Filterto define constraints (rent, dates, source, room traits, transport times, and more). - Save reusable filters and switch quickly between them.
- Use
Templatesto create/edit prewritten application messages. - Manage per-offer workflow with
favorite,messaged, anddeletedactions. - Use the availability widgets for selected student housing providers.
- ETH Zurich subreddit: https://www.reddit.com/r/ethz
- Flateroo: https://flateroo.com/
- Swiftliving: https://swiftliving.ch/
- ETH accommodation info ( EN): https://www.wohnen.ethz.ch/en/search-accommodation/internationale-masterstudierende/accommodation-masterstudents.html
- ETH accommodation form ( DE): https://www.wohnen.ethz.ch/de/wohnraum-suchen/internationale-masterstudierende/accommodation-masterstudents/form1.html
- Add a type attribute to offers:
-
Flat -
Shared Flat -
(Studio) Apartement -
House
-
- Check for no longer existing offers and mark them as deleted
- Add a vertical scrolling bar (currently not supported in Kotlin Multiplatform)
- Replace the broken webview library
See the open issues for planned improvements and known problems.
Contributions, bug reports, and feature suggestions are welcome.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Project maintainer: @flxholle
Project link: https://github.com/flxholle/flatscraper
- Compose Multiplatform: https://www.jetbrains.com/lp/compose-multiplatform/
- Kotlin: https://kotlinlang.org/


