Kleinanzeigen redesign broke all three Kleinanzeigen actors

Date: 2026-09-01
Affected: kleinanzeigen-scraper, kleinanzeigen-free-finds, kleinanzeigen-deal-radar
Duration: ~11 hours from first failed run to fixed build live

What happened

On 1 September 2026, Kleinanzeigen.de shipped a frontend redesign that moved the site to utility CSS classes. Every selector our extractors keyed on - article.aditem and the aditem-* family - disappeared at once. Search and category runs on all three Kleinanzeigen actors started failing loudly (by design: a run that cannot read the page fails rather than returning empty rows, so nobody silently paid for nothing).

Impact

Runs failed for roughly 11 hours. Failed runs deliver no results; per-result billing means failed runs also charge nothing beyond the start event. The failure spike is permanently visible in the actor's public record - that dip in the 30-day success rate is this incident aging out.

Root cause

Extraction was keyed on class names, which a redesign can vaporise wholesale. Detection relied on a scheduled check that fires best-effort - in practice about every five hours - plus user-visible failures.

Fix

Same day: extractors rebuilt to key on stable structure instead of styling - data-adid/data-href attributes and each ad's schema.org block, with price, postcode, date and chips recognised by shape rather than class name. The broken pages were added to the regression corpus, so this exact break can never return unnoticed.

What changed so it cannot recur this way

Since 6 September, a live markup check runs every hour against the real sites for the highest-volume actors: detection is now ~1 hour, not ~5, and does not depend on a user hitting the break first. Every production failure still becomes a permanent regression test.

Questions about this incident? lowlanddata@gmail.com - reports get read the same day.