One dashboard for every search
Search interval, last and next run, how many listings came in over the last seven days, and which portal they came from.
Fredy keeps searching ImmoScout24, Immowelt, Kleinanzeigen and 16 more portals for new apartments, houses and flats in Germany, Austria and Switzerland, and delivers every hit to Slack, Telegram, Discord, email or ntfy, so you can focus on the more important things in life.
It is a small server you run yourself. It searches, it stores, it works things out, and then it gets out of your way.
Search interval, last and next run, how many listings came in over the last seven days, and which portal they came from.
A listing posted on three portals reaches you a single time. Everything already seen is stored, so nothing arrives twice.
A built‑in MCP server exposes your jobs and listings to Claude, ChatGPT or a local model, including the affordability maths.
Everything Fredy finds is kept, searchable and filterable, with a watchlist for the ones worth a second look and a note when a price moves.
Tell Fredy your household once, income, living costs, anything you are already paying off, and every listing is measured against it. Renting and buying each get their own tab.
The ceiling Fredy measures against: housing costs plus existing debt, as a share of net income. Every listing gets a verdict chip against that rule.
Roughly the Kaufnebenkosten on a 400.000 € house in NRW: Grunderwerbsteuer, Notar, Grundbuch and Maklerprovision, financed or paid out of pocket.
Portals quote the Kaltmiete, a household pays warm. Set the Nebenkosten surcharge once and Fredy reports the highest cold rent you can take on, what that comes to warm, and what is left over each month. Someone who only ever rents is never asked about Grunderwerbsteuer.
An estimate, not financial advice. Grunderwerbsteuer rates ship as editable defaults, and Bundesländer change them. Get a binding offer from your bank.
Two flats the same kilometre from your office can be eight minutes and fifty minutes away from it. Fredy measures the journey from your own front door instead.
Pick a mode and a ceiling, public transport within 30 minutes say, and the pins that fail it disappear. Car, bike and walking too.
Rail, S‑Bahn, U‑Bahn and tram on the map, every stop with its own departure board, and the three nearest stops on every listing.
Every number says whether it is estimated or exact, and a mode Fredy could not route is left out rather than shown as zero.
Timetables and journey planning come from Transitous, a community‑run MOTIS instance. Map data from OpenStreetMap contributors. No API key needed.
A job combines the portals you want searched with the channels you want told. Add as many of each as you like.
Seventeen German portals, plus willhaben for Austria and Flatfox for Switzerland. ImmoScout24 runs through its mobile API; for the rest you paste a search URL and Fredy takes it from there.
Set a channel up once and reuse it across jobs, so rotating a token means editing one channel rather than every search. An admin can share a channel with other users without ever showing them the credentials.
No configuration file to write. Fredy creates one on first run, and everything else is set in the web UI.
docker run -d --name fredy \
-v fredy_conf:/conf \
-v fredy_db:/db \
-p 9998:9998 \
ghcr.io/orangecoding/fredy:master
Follow along with docker logs fredy -f.
yarn
yarn run build:frontend
yarn run start:backend
Builds the web UI and serves it together with the API on port 9998.
Fredy is in the Unraid Community Applications store. Search for Fredy, install, and open the web UI from the docker tab.
Same defaults as the Docker image: port 9998, login admin / admin.
On a VPS, portal anti‑bot systems tend to block datacenter IPs on reputation alone. Set a German residential proxy under Administration › Execution and the browser‑based portals go through it.
One guide per portal: what its own alerts give you, how to hand the search over to Fredy, and the settings that matter. Written in German, because that is the language these questions get asked in.
Suche einmal einfügen, Fredy prüft im eingestellten Intervall und meldet neue Inserate sofort auf deinem Kanal.
AnleitungImmowelt zusammen mit den übrigen Portalen in einem Job, ohne für jede Quelle eine eigene Mailflut.
AnleitungWG-Zimmer sind schnell weg. Fredy meldet neue Angebote auf dem Kanal, den du ohnehin offen hast.
AnleitungDort inserieren private Vermieter, oft ohne Provision. Fredy meldet neue Anzeigen, sobald sie erscheinen.
Instances that opted into analytics report which portals and channels they run, and what the searches they run cost per square metre. No addresses, no searches, no users. Here is what that adds up to right now.
The same instances report one more number per search: the median price per square metre of the listings Fredy found for it. On its own that number compares to nothing, because every search filters it first. Someone capped at 600 € a month and someone shopping between 2,000 and 4,000 describe the same city with different figures, and pooling the two produces a figure that belongs to neither.
So every observation is filed into the budget it came from. Each row below is one such band: the tick sits on the median of the city medians in it, and where a band holds more than one city, the bar spans the middle half of them. Renting and buying get their own ladder, because they differ by a factor of roughly two hundred. Pick a band to see the cities underneath it.