How flat-finder.ch helped me find my flat

A real case study: criteria in, Match Scores out, viewing booked. The 8.0 flat the algorithm flagged first — and the 6.0 row house it helped us land.

How flat-finder.ch helped me find my flat
Part of the flat-finder.ch build-in-public series. Find every article in the project hub.

The first two posts in this series were about the why — why I built flat-finder.ch, and why Swiss flat-hunting is the way it is. This one is the what: a concrete walkthrough of my partner and I using it to find our own home.

The criteria

We went into the search with a list. Not a vague "4.5 rooms in Zürich, somewhere nice" — actual criteria with weights:

Criterion Hard requirement? Weight (importance)
Rooms: > 4 Yes High
Budget: ≤ 3000 CHF/mo (incl. NK) Yes High (flexible for the right place)
Region: north-east of Zürich (Zürich + outer commute) Yes High
Commute to Stettbach station: ≤ 45 min door-to-platform No High
Pet-friendly (cat) Yes High
Balcony or terrace No High
Built / renovated after 2000 No Medium
Quiet street (not main road) No High
Near public transport (< 5 min walk) No High

The hard requirements act as a filter. The weighted soft criteria are what the Match Score uses to rank the listings that pass the filter.

What the platform did

We plugged the criteria into flat-finder.ch. It pulled current listings across the Swiss real-estate platforms it aggregates from, filtered out everything that didn't fit the basic filters (rooms, location, budget, no pets, etc.), and scored the rest.

Top of the results: 3 listings with a Match Score of 8. Behind those, a long tail of 7.x and 6.x listings. Below that we stopped looking — by design.

That's the first thing worth pausing on. On Homegate / ImmoScout24 / Flatfox, the same search would have surfaced something like 200+ raw matches, sorted by "newest" or by some opaque ranking. We'd have spent the next several evenings opening tabs and closing them.

Here we had 16 listings in the digest, but only a handful actually worth considering, sorted by how well they matched what we'd said we wanted, with the reason for each score visible.

flat-finder.ch email in Gmail: subject "New property listings for you (16)", showing search prompt and criteria

The email lands in your inbox every morning. No app to open, no tab to refresh. Just a ranked digest of what's new, with your criteria echoed back so you can spot-check that everything is still calibrated.

The top match: an 8.0 in Illnau

The highest-scoring listing was a 5.5-room flat in Illnau (8308), advertised at 2422 CHF/month gross rent, first floor. Match Score: 8 / 10.

The reasoning breakdown was explicit:

Pros:

  • Located in Illnau, an acceptable area within our target region and radius
  • Gross rent 2422 CHF, well within our 3000 CHF budget
  • 5.5 rooms meeting the ≥4 requirement with flexibility for office/guest room
  • First floor (strongly preferred level)
  • Balcony/terrace and winter garden; bright apartment
  • Pets allowed and child-friendly
  • Parking available in underground garage (120 CHF/month)
  • In-unit washing machine
  • Cellar/storage included
  • Walking distance to S-Bahn, shops, and schools; quiet, nature close by (100 m to forest)

Cons:

  • Living space not specified against our ≥90 m² requirement
  • Dishwasher not mentioned (unclear if available)
  • Dryer not mentioned
  • Year of construction/renovation not provided
Email digest showing the #8 Illnau flat: score legend, evaluation guidelines, and full AI reasoning with pros and cons

The reason this listing scored highest wasn't that it was perfect — it had real trade-offs that the reasoning made explicit. It scored highest because nothing else available at that moment beat it across the weighted criteria we had specified.

That's the part that's hard to communicate without seeing it: the score is not a quality rating in the absolute. It's a fit rating in the relative — for you, this week, against your weights.

The one we actually landed

Here's the twist: the flat we eventually moved into wasn't the #1 scorer. It scored a 6.0 — a spacious 5.5-room row house in Aathal-Seegräben, north-east of Zürich.

Email listing for the #6 row house in Aathal-Seegräben (Our hit): 5.5 rooms, 147m², with full AI reasoning showing pros and cons

Sehr schönes 4.5 Zimmer Reiheneinfamilienhaus mit zwei Garagenplätze — 5.5 rooms, 147 m², CHF 2870 gross, available from 01.04.2026. Match Score: 6 / 10.

The AI flagged it with solid pros:

  • 5.5 rooms and 147 m² (meets ≥4 rooms and ≥90 m²)
  • Outdoor spaces: terrace with pergola and a balcony; sunny/bright
  • Pets allowed and child-friendly
  • Two garage parking spaces included; direct access to the house
  • Private washer and cellar/storage; drying room
  • New kitchen and recently renewed heat pump
  • Quiet, family-oriented area; short walk to kindergarten; nearby recreational area

But also honest cons:

  • Location not among the user's specified preferred towns or Zürich districts; distance to Schwerzenbach not stated
  • Available from 01.04.2026 (not before April 2026 as requested)
  • Utilities billed separately; total cost might exceed 3000 CHF cap
  • Dishwasher not explicitly mentioned
  • Walking distance to public transport, shops, cafés not specified

Why it wasn't a top hit — and why that matters

This listing ranked lower precisely because the AI couldn't confirm its location fit our preferred areas. The original ad didn't state the distance to Schwerzenbach, and the town wasn't on our list. So the AI gave it the benefit of the doubt downward: score it lower until proven otherwise.

It still caught our attention because the specs on paper were compelling — 147 m², two parking spaces, terrace, quiet, pet-friendly — all things we'd said mattered. We clicked in, looked at the photos, and something clicked.

We visited. The surrounding was perfect. Quiet street, family-oriented, green space nearby, exactly what we needed for the family we were planning.

That's when the real lesson hit: you need to rate the things that actually matter for you, higher than fancy things you might like. We were planning a family, so space was important. Parking slots were important. The surrounding neighborhood was important. Whether the town was on a predefined list mattered less than whether it felt right in person.

The AI did its job correctly — it scored what we told it. But what we told it wasn't perfectly calibrated yet. That's normal. You learn by browsing.

The real takeaway: adjust as you go

The platform works best when you iterate on your criteria. Here's what we learned:

  1. Weight what's actually important, not what sounds nice. Space for family > trendy neighborhood. Two parking spots > elevator. Quiet > 5-minute walk to tram.
  2. Visit the mid-tier hits. The score-6 listing turned out to be our best match. The score-8 listings never felt right once we saw them in person.
  3. Adjust when you figure something out. After our first visit, we went back and bumped the weights on outdoor space, parking, and quiet location. The ranking shifted. Suddenly the row house we'd liked was climbing the list.

The platform didn't hide the flat from us because of a lower score. It showed us everything, ranked it honestly based on what we said, and let us decide. That's the difference between a tool that respects your criteria and one that hides its own ranking logic behind "recommended for you."

What I didn't waste time on

Looking at the bottom of the list is almost as interesting as the top.

Listings that scored 2 and below were things like:

  • A beautiful flat in Zürich-Seebach (Score 0) — explicitly a deal-breaker area, plus a temporary lease until 31.08.2027
  • A new-build 4.5-room in Zürich-Oerlikon (Score 0) — another unfavorable area, at CHF 4780, far over our budget
  • A 4.5-room in Schwamendingen (Score 1) — deal-breaker area and only 87 m² (below our 90 m² minimum)
  • A ground-floor flat in Greifensee (Score 2) — perfect on paper except it was a 1-year temporary rental
  • A 1935 Altbau in Zürich-Hottingen (Score 2) — temporary, no parking info, no pet policy, no dishwasher

Pre-flat-finder we would have clicked into each of these, read the description, gotten our hopes up, and slowly realized over 90 seconds of reading that no, this isn't for us. Multiply by 50 and you get the wasted-Saturday phenomenon I described in The Zürich rental pain.

Here we saw at a glance which listings weren't worth the click, and why. That's the saving.

The viewing

Our approach was simple: only visit flats we really wanted, and only apply to some of the ones we visited — not all. Visiting is mandatory for a good judgment. No amount of AI scoring can replace walking through the space, checking the light, feeling the neighborhood. We'd rather visit three flats we're genuinely excited about than twenty we're lukewarm on.

Couple visiting a modern row house flat during a viewing

For the row house that eventually became ours, we were the only applicants at the viewing. I think they did that on purpose — they wanted to get to know the people, not pick from a crowd. It worked in our favor. We had the full place to ourselves, asked questions, walked the surrounding streets.

Submitted our dossier around 7 December 2025. Heard nothing until January 2026, got the contract in February, signed and sent it back.

What I learned about my own criteria

One thing worth flagging: the act of putting your criteria into the platform with weights is itself useful. We went in thinking "balcony is nice-to-have but we won't optimize for it." Halfway through evaluating the top matches, we realized the listings we were actually excited about all had outdoor space — and the ones we weren't excited about didn't. We went back and bumped the balcony weight from Medium to High. The ranking shifted.

AI-powered criteria weighting dashboard

Our workflow became: browse the scores, pick the ones that genuinely excite us, visit them, then apply only to the best of the visited. We never applied blindly to a listing we hadn't seen.

This is the kind of thing you can't do on Homegate. The platform doesn't let you express preference at that resolution, and even if it did, it wouldn't surface why a listing matched or didn't.

The honest caveat

flat-finder.ch did not magically conjure a flat out of thin air. The supply problem in Zürich is structural; we had to apply to 6 to land one. The score doesn't change the fact that other people apply to the same flat.

What it changes is which flats we applied to. The top of our list was actually the top of our list — not the top of the platform's monetization model. The ones we didn't apply to, we didn't apply to for explicit reasons we could see.

That's the whole pitch in one sentence: the score makes your criteria visible, and the ranking makes them respected.

If you're flat-hunting right now: flat-finder.ch. Plug in your real criteria — including the soft ones. See what scores high. See what scores low. The interesting moment is usually when you disagree with the ranking, because that tells you something about your actual preferences that the criteria you typed in didn't capture yet.

Iterate on the criteria. Re-rank. Apply to the top of the list. Skip the rest.

Next post in the series: The Match Score explained — the math behind the 0–10, and how each criterion turns into a number without hiding anything.