Stepstone.de [Only $1πŸ’°] Search Jobs by Url or Keywords avatar

Stepstone.de [Only $1πŸ’°] Search Jobs by Url or Keywords

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Stepstone.de [Only $1πŸ’°] Search Jobs by Url or Keywords

Stepstone.de [Only $1πŸ’°] Search Jobs by Url or Keywords

πŸ’° $1 per 1,000 results. Stepstone jobs scraper β€” paste any stepstone.de/at/fr/dk listing URL, keyword search, or direct job link and get one clean row per posting: title, company, salary, location, skills, dates, labels. Pure HTTP, no browser, no rental.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(9)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

7

Bookmarked

283

Total users

98

Monthly active users

6 hours ago

Last modified

Share

Stepstone Jobs Scraper β€” Germany, Austria, France, Denmark

How it works

How the Stepstone scraper works

All-in-one Stepstone jobs scraper β€” paste any Stepstone listing URL, keyword search, or individual job link and get one clean structured row per posting. Pure HTTP, no browser. Pay only for results you keep ($1 per 1,000 jobs). Works across stepstone.de, stepstone.at, stepstone.fr, jobindex.dk-style flows wherever Stepstone publishes.

InputRow(s) emitted
Search listing URL (e.g. /jobs/it-jobs?…)One row per job on the listing, across all paginated pages
Work-by-keyword URL (e.g. /work/software-entwickler/in-berlin)One row per job in the keyword corpus
Direct job-detail URL (e.g. /stellenangebote--…--13865399-inline.html)One row for that single job
Keyword + Location filters (when no startUrls)Builds the URL for you and crawls it

Pure HTTP. No headless browser, no third-party CF-bypass service. Uses Stepstone's own public unified-resultlist API endpoint via Apify Residential proxy. That's why each row costs $1 per 1,000, not the $19/mo flat fee competitors charge.


  1. Resolve each input URL β€” strip .html from search URLs, normalize the locale, classify as listing or detail.
  2. Fetch the listing via Stepstone's /public-api/resultlist/unifiedResultlist JSON endpoint (no DOM scraping, no JS execution).
  3. Filter out padding β€” when filters narrow the result set, Stepstone fills the 25-per-page response with recommended jobs that don't match your filter. By default we drop only section === "recommended"; main, regional, and semantic (all real filter matches that count toward pagination.totalCount) are kept and the output then matches what's visible on the Stepstone page.
  4. Paginate through unifiedPagination.links.next until you hit maxItems or run out of results.
  5. Charge per row kept β€” Apify's pay-per-event meter only ticks on dataset items you actually take.

Input

FieldTypeRequiredNotes
startUrlsarray of {url}optionalListing URLs, work/keyword URLs, or direct /stellenangebote--... job URLs. When set, the filters below are ignored.
keywordstringoptionalFree-text search (e.g. software, manager). Used only when startUrls is empty.
categorystringoptionalCategory slug (e.g. verwaltung, it-jobs). Used when both startUrls and keyword are empty. Default verwaltung.
locationstringoptionalLocation segment for /work/{keyword}/in-{location} (e.g. berlin, deutschland).
postedWithinenum all / 1 / 3 / 7optionalStepstone age facet (ag=age_N). Default all.
includeRelatedJobsbooleanoptionalWhen false (default), drops the recommended padding section β€” output matches what the Stepstone page visibly shows (keeps main, regional, semantic). When true, also keeps the recommended items.
maxItemsintegeroptionalHard cap on rows produced. Default 10000. Apify pay-per-result limit is honoured automatically.
maxConcurrencyintegeroptionalDefault 100.
maxRequestRetriesintegeroptionalDefault 100.
proxyobjectoptionalApify Proxy config. Default useApifyProxy: true, RESIDENTIAL.

Example input

{
"startUrls": [
{ "url": "https://www.stepstone.de/jobs/it-jobs?action=facet_selected%3bdetectedLanguages%3ben&fdl=en&am=INTERNAL&wfh=2&di=IT" },
{ "url": "https://www.stepstone.de/work/software-entwickler/in-deutschland" }
],
"maxItems": 200,
"includeRelatedJobs": false,
"postedWithin": "7",
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Output schema

One row per job posting. Sample (real, trimmed):

{
"id": 13865399,
"title": "Mitarbeiter (m/w/d) Postlogistik & Verwaltung Vollzeit (40 Wochenstunden) Standort DΓΌsseldorf",
"url": "/stellenangebote--Mitarbeiter-m-w-d-Postlogistik-Verwaltung-Vollzeit-40-Wochenstunden-Standort-Duesseldorf-Duesseldorf-PROSERVCE-Dienstleistungsgesellschaft-mbH--13865399-inline.html?rltr=1_1_25_seorl_m_0_0_0_0_1_0",
"companyId": 91004,
"companyName": "PROSERV!CE Dienstleistungsgesellschaft mbH",
"companyUrl": "https://www.stepstone.de/cmp/de/proserv%21ce-dienstleistungsgesellschaft-mbh-91004/jobs",
"companyLogoUrl": "https://www.stepstone.de/upload_DE/logo/P/logoPROSERVICE-Dienstleistungsgesellschaft-mbH-91004DE.gif",
"datePosted": "2026-04-07T09:35:39+02:00",
"location": "DΓΌsseldorf",
"isAnonymous": false,
"salary": "",
"unifiedSalary": {
"min": null, "max": null, "currency": null, "period": null,
"salaryAvailable": true, "salaryType": null
},
"workFromHome": "0",
"section": "main", // real filter match: "main" / "regional" / "semantic" β€” kept by default. "recommended" = padding, dropped unless includeRelatedJobs=true.
"labels": [ { "label": "Schnelle Bewerbung", "type": "QUICK_APPLY" } ],
"topLabels": [],
"skills": [],
"textSnippet": "Mitarbeiter (m/w/d) Postlogistik & Verwaltung...",
"harmonisedId": "ACC40E9E-B26B-48F3-A600-5DF302EBE539",
"partnership": {
"isPartnershipJob": false, "isBackfilled": false,
"sourceSiteFriendlyName": "", "isCrossPosted": false
},
"metaData": { "positionOnPage": 1, "positionAbsolute": 1 },
"isHighlighted": false, "isSponsored": false, "isTopJob": false,
"isTrafficFromPartner": false, "hasFuturePosting": false,
"cvToJobScore": null
}

Field reference

GroupFields
Identityid, harmonisedId, url, title
CompanycompanyId, companyName, companyUrl, companyLogoUrl, isAnonymous
Location & remotelocation, postCode, workFromHome (0 on-site, 1 flexible, 2 remote-friendly)
TimingdatePosted (ISO-8601 + tz), publishFromDate, publishToDate, hasFuturePosting
Compensationsalary (raw), unifiedSalary.{min,max,currency,period,salaryAvailable,salaryType}
Classificationlabels[] (e.g. QUICK_APPLY), topLabels[], skills[], section (main / recommended / semantic / regional)
ContenttextSnippet (preview HTML), cvToJobScore (when available)
Distributionpartnership.* (cross-post / backfill flags), metaData.positionOnPage, isSponsored, isTopJob, isHighlighted

Pricing

Pay-per-event (PPE) β€” $1 per 1,000 jobs returned. You pay only for rows that end up in the dataset, not for crawl attempts or padding rows.

EventCharged whenRate
apify-default-dataset-itemA job row is written to the dataset$0.001 per row ($1 / 1,000)

Cost examples:

  • Scrape 250 jobs from a search β†’ $0.25
  • Scrape 5,000 jobs across multiple keywords β†’ $5.00
  • Daily monitoring of 500 newly posted jobs β†’ $0.50 / day = ~$15 / month

Compare to FLAT_PRICE_PER_MONTH competitors at $19.99/mo: you break even at ~20,000 jobs per month. Below that, this actor is cheaper; above that, you'd still want this actor because the flat-rate ones are about to be force-migrated by Apify on October 1, 2026 (rental sunset).


What makes this richer than the competition

CapabilityOther Stepstone scrapersThis actor
Pricing modelFlat $19.99 / month (rental) β€” sunsetting Oct 1, 2026Pay-per-result $1/1k β€” survives the rental deprecation
Country coverageMostly stepstone.de onlystepstone.de + .at + .fr + .dk URL builder
Input flexibilityListing URLs onlyListing URL OR keyword-search URL OR direct job-detail URL OR filter-builder (keyword + location + age)
Section filteringReturns Stepstone's padded recommended / semantic jobs as if they matched your filtersection === "main" strict by default, includeRelatedJobs: true to opt in
PaginationOften capped at page 1Full unifiedPagination.links.next walk to maxItems
Anti-botNone or browser-based (slow + expensive)Pure HTTP via Stepstone's own public unified-resultlist JSON API, behind Apify Residential
Pay-per-result enforcementN/ARespects ACTOR_MAX_PAID_DATASET_ITEMS + ACTOR_MAX_TOTAL_CHARGE_USD from Apify's charging manager
Success rate (live)varies96 % over last 2,500 runs (Apify Store stats)

Notes & limitations

  • No full job-description body in the row. The unified-resultlist endpoint returns textSnippet (~500 chars of preview), not the full description. If you need the long description, set the input to the job-detail URL form and we'll fetch it; or open an issue describing the use case and we can add a fetchDetails flag.
  • postCode is often null. Stepstone exposes city in location, not always postcode.
  • unifiedSalary is sparse. Most German employers don't publish ranges; salaryAvailable: true means the field exists, not that values are populated.
  • workFromHome is Stepstone's own code: 0 = on-site, 1 = hybrid/flexible, 2 = remote-friendly. There's no documented public mapping; values inferred from observed listings.
  • section: "main" filter is enabled by default. If your filter is narrow (e.g. postedWithin: 1 and a niche city), Stepstone may pad the page with recommended jobs that don't match β€” these are dropped. Set includeRelatedJobs: true to see them.

FAQ

Q. Does this work for Stepstone subsidiaries (Totaljobs, Cwjobs, Jobsite)? No. Those run on a different platform under The Stepstone Group umbrella. This actor targets the stepstone.{de,at,fr,dk} domain family. For UK Stepstone-group sites, watch for a sibling actor.

Q. Can I scrape behind a logged-in Stepstone employer account? No. This actor uses the public unified-resultlist endpoint only β€” no authentication.

Q. Why do I sometimes see fewer jobs than the Stepstone page shows? Because of section: "main" filtering. The Stepstone page count includes recommended/semantic/regional padding. Set includeRelatedJobs: true if you want parity with the on-page count.

Q. What's the max throughput? Default maxConcurrency: 100. In practice, ~30–60 listing pages/sec sustained on Apify Residential. Listings cap at ~25 jobs each, so you'll see ~750–1,500 jobs/sec at peak.

Q. Does it respect Apify's pay-per-result limits? Yes β€” ACTOR_MAX_PAID_DATASET_ITEMS and ACTOR_MAX_TOTAL_CHARGE_USD are honoured. You can never be charged for more rows than your limit, even if maxItems is higher.


⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Stepstone GmbH, The Stepstone Group, or any of their subsidiaries or related entities. All Stepstone-related trademarks, service marks, trade names, and logos are the property of their respective owners and are used here solely for descriptive purposes β€” to identify the public website from which this scraper extracts data.

This Actor accesses only publicly available job-listing pages on stepstone.de, stepstone.at, stepstone.fr, stepstone.dk and similar regional Stepstone domains. You are solely responsible for ensuring that your use of the data complies with Stepstone's Terms of Service, applicable copyright law, the EU Database Directive, GDPR, and any other regulations that may apply to your jurisdiction or use case. Do not use this Actor to bulk-republish copyrighted content, to harass employers or candidates, or to circumvent any rate-limiting or technical protection measure intentionally imposed by Stepstone.

The author provides this Actor "as is", without warranty of any kind, and disclaims any liability for damages arising from its use.


SEO Keywords

stepstone scraper, stepstone jobs scraper, stepstone.de scraper, stepstone.at scraper, stepstone.fr scraper, stepstone.dk scraper, germany jobs api, germany job board scraper, dach jobs scraper, deutschland jobs scraper, europe jobs scraper, job posting api germany, recruiter job market data, hr analytics germany, stepstone job listings, stepstone search api, stepstone bulk export, stepstone csv export, stepstone json export, stepstone unified resultlist, scrape stepstone with apify, apify stepstone actor, pay-per-result stepstone, job aggregator scraper


Support


Additional services