Unofficial nexxt-change scraper for public German business succession and company-sale listings. Apply industry, location, revenue, employee, price, advertiser, image, and exposé filters, then export normalized results to JSON, CSV, Excel, or the Apify API.
Added robust pagination by following the live server-rendered Weiter link.
Restored the live page link's unescaped >p= separator after HTML parsing so page 2 receives the exact dynamic token instead of a malformed >p= parameter.
Added deterministic detail parsing and flat Apify dataset output.
Added retries, sequential requests, a one-second minimum delay, and run limits.
Retried HTTP 408/429/500–504 responses and truncated response bodies up to five total attempts with visible exponential-backoff logs.
Preserved records from completed pages when a later search page remains unavailable, and exposed typed searchPageFailures plus isPartial in RUN_SUMMARY.
Added a regression test for the full browser-style page-2 URL, including dynamic form identifiers, hidden time token, hierarchy filters, and the double-encoded gtp value.
Added Actor input, output, and dataset schemas for public Store release.
Required source attribution fields in the dataset schema and exposed third-party images as links instead of embedding them in the Store table.
Added Terms of Service, Privacy Notice, release checklist, and minimal regression tests.
Added a hash-locked dependency set and GitHub build-validation workflow.
Added an explicit manual, production-environment-gated GitHub Actions path for deploying an accepted main commit to the latest build tag.
Made the production container explicitly run as the non-root myuser account.
Added copy-ready Store display, SEO, pricing, category, support, and logo assets.
Switched the Actor unique name and Store title to brand-neutral wording while retaining a prominent unofficial/no-affiliation disclosure.
Capped public runs at 1,000 listings and 100 search pages to keep the simple, non-checkpointed crawler bounded.
Persisted partial RUN_SUMMARY statistics when a crawl exits with an error or is gracefully interrupted.
Deliberately excluded AI, database, notification, browser, and exposé-download features.