All notable changes to this Actor are documented here.
- Fix:
slugify() percent-encoded a literal / as %2F, which
stepstone.de's own edge rejects with HTTP 400 before the app ever sees
the request — a non-retryable status, so any keyword or location
containing / (e.g. "UI/UX Designer", or "Frankfurt/Main", the common
way to disambiguate that city from Frankfurt/Oder) failed every page of
every keyword and made the whole run exit non-zero (REQ-7's "every
request failed" path). Root-caused via live reproduction against
stepstone.de (no code path in recent_failures — the single 30-day
FAILED run was a customer run, invisible to /v2/acts/{id}/runs).
Fix: treat / as a word separator, collapsed together with whitespace
into a single hyphen, matching how StepStone's own generated slugs
spell it (confirmed live: /jobs/ui-ux-designer and
/jobs/python/in-frankfurt-main both return 200 with a valid
__PRELOADED_STATE__ payload).
- Scaffolded the Actor skeleton:
ActorInput/ResultRow Pydantic
models, .actor/ schemas, PPE pricing placeholders, and store-listing
copy. The real StepStone scraping pipeline (src/client.py,
src/parser.py, src/scraper.py) is stubbed, not yet implemented —
src/main.py currently pushes a single placeholder: true record so
the Actor boots and exits cleanly.