Skip to content

feat: add Otodom house-sale searches in Poland - #501

Open
gajewsky wants to merge 1 commit into
orangecoding:masterfrom
gajewsky:feat/otodom-provider
Open

gajewsky wants to merge 1 commit into
orangecoding:masterfrom
gajewsky:feat/otodom-provider

Conversation

@gajewsky

@gajewsky gajewsky commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

Adds Otodom as a provider for house-sale searches in Poland, for example:

https://www.otodom.pl/pl/wyniki/sprzedaz/dom/malopolskie/krakow/krakow/krakow?ownerTypeSingleSelect=ALL

It reads the search page's embedded __NEXT_DATA__ over plain HTTP (no browser), keeps the user's filters, sorts newest first and reads up to five pages per run. Prices come through in PLN using the currency support from #500, and addresses are geocoded within Poland.

Deliberately left out for now:

  • Only /pl/wyniki/sprzedaz/dom/... searches. Rentals and flats are refused until they have fixtures and tests.
  • No detail enrichment, add-by-URL, activity checks or price tracking. Adverts are keyed on their Otodom id, so a price change doesn't announce them again.
  • Development groups without a single asking price are skipped, as are the rare adverts priced in EUR or USD.
  • Otodom sits behind CloudFront. Plain Node requests worked in testing, but if a request gets blocked the job fails instead of reporting an empty search.

Screenshots

A live run against otodom.pl found 166 houses in Kraków, all priced in PLN, and 108 of them showed up on the map. Running it a second time sent no repeat notifications.
shot-listings
shot-map

Related issue

None. Builds on #500, which is merged.

AI disclosure (required)

  • ai:none
  • ai:assisted
  • ai:generated - AI produced most of this PR. I reviewed every line and tested the feature in the browser.

Which AI: Pi with gpt-6.1-sol for the implementationm Opus 5.5 for review fixes.

How much: Most of the code, tests, fixture-download wiring, docs and this description. The fixtures are recorded Otodom pages, trimmed for offline tests.

Why: To add a Polish portal that follows Fredy's existing provider conventions, tested against real payloads.

Checklist

  • yarn test:offline passes (5,243 tests), and so does the live Otodom suite
  • yarn lint and yarn format:check pass
  • Works for any Polish house-sale search, not one hardcoded city
  • AI disclosure answered honestly

@gajewsky
gajewsky force-pushed the feat/otodom-provider branch 2 times, most recently from 4c55317 to 818be8e Compare October 28, 2026 13:40
@gajewsky
gajewsky force-pushed the feat/otodom-provider branch 3 times, most recently from fa14bd5 to 4bae886 Compare November 4, 2026 19:16
@gajewsky
gajewsky marked this pull request as ready for review November 4, 2026 19:22
@gajewsky
gajewsky force-pushed the feat/otodom-provider branch 2 times, most recently from 701a5a2 to 9b9d4b9 Compare November 4, 2026 20:41
@gajewsky
gajewsky force-pushed the feat/otodom-provider branch from 9b9d4b9 to c3cc6a2 Compare November 4, 2026 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant