Stepstone.nl Scraper
Pricing
from $0.64 / 1,000 results
Stepstone.nl Scraper
Scrape Stepstone.nl, the Netherlands' leading job board. Returns job titles, companies, locations, salary ranges, and full descriptions. Supports keyword/location search, fetchDetails, and start URLs. $0.80 per 1,000 results — the lowest price on Apify.
Pricing
from $0.64 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
8
Total users
4
Monthly active users
4 days ago
Last modified
Categories
Share

Extract job listings from stepstone.nl at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.
Why this scraper?
🎯 Built for the Netherlands
A dedicated Dutch scraper, not a global tool with a country dropdown. Search, locations and currency (EUR) are tuned for stepstone.nl.
📄 Complete job data
Full job title and description, direct listing URL and publish date for every record.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in EUR. Missing salaries are returned as null, never guessed.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
📍 Precise location
City, region and country plus latitude/longitude for mapping and radius analysis.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new jobs instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "developer" | Job title or keyword to search for, e.g. 'developer', 'marketing manager' or 'verpleegkundige'. A location is required alongside this field. |
location | string | "Amsterdam" | City or region to search in, e.g. 'Amsterdam' or 'Rotterdam'. Required — stepstone.nl does not return results without a location. |
radius | integer | 40 | Radius around the location in kilometres (5–100) |
contractType | string | (empty) | Filter by contract type. Leave empty for all types. |
maxResults | integer | 100 | Maximum number of job listings to scrape |
daysOld | integer | (empty) | Skip jobs older than this number of days. Leave empty to scrape all listings regardless of age. |
skipReposts | boolean | false | Automatically skip job listings that have been seen in previous runs (cross-run deduplication). |
startUrls | array | (empty) | Direct job detail or search page URLs to scrape. Overrides searchQuery/location when provided. |
fetchDetails | boolean | false | Fetch full job details from individual listing pages. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given job are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
url | string | Direct link to the listing |
jobId | string | Unique listing ID from the source. |
source | string | Source. |
language | string | Language. |
title | string | Job title |
company | string | Hiring company name |
companyUrl | string | Link to the company's page on the source. |
city | string | City of the role |
location | string | — |
country | string | Country of the position. |
contractType | string | e.g. FULL_TIME, PART_TIME |
workSchedule | string | Work schedule. |
salaryMin | string | Minimum salary (null if not published by the employer). |
salaryMax | string | Maximum salary (null if not published by the employer). |
salaryType | string | Salary type. |
salaryCurrency | string | Currency code of the salary. |
publishDate | string | Date posted (YYYY-MM-DD) |
publishDateISO | string | Publish date iso. |
expiryDate | string | Date the listing expires (null if not stated). |
description | string | Full job description in plain text. |
descriptionText | string | Full job description in plain text. |
descriptionMarkdown | string | Description markdown. |
applyUrl | string | Direct application link. |
isRepost | boolean | true if seen in a previous run |
originalPublishDate | string | Original publish date. |
originalUrl | string | Original url. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
scrapedAt | string | Timestamp when this record was scraped. |
latitude | number | Latitude of the workplace. |
longitude | number | Longitude of the workplace. |
changeStatus | string | NEW, CHANGED or UNCHANGED compared to the previous time this job was seen. |
Example record
{"url": "https://www.stepstone.nl/banen--AI-Cloud-Engineer-Amstelveen-Sustain-Recruit--543748-inline.html","jobId": "543748","source": "stepstone.nl","language": "nl","title": "AI Cloud Engineer ","company": "Sustain Recruit","companyUrl": "https://www.stepstone.nl/cmp/nl/Sustain-Recruit-148813/jobs.html","city": "Amstelveen","location": "Amstelveen","country": "NL","contractType": "Full Time","workSchedule": "Fulltime, Thuiswerken mogelijk","salaryMin": null,"salaryMax": null,"salaryType": null,"salaryCurrency": null,"publishDate": "2026-05-30","publishDateISO": "2026-05-30T15:01:02.35Z","expiryDate": "2026-06-29T14:32:57.8Z","description": "<div class=\"at-section-text-introduction job-ad-display-cl9qsc\" data-genesis-element=\"BASE\" data-at=\"section-text-introduction\"><article class=\"job-ad-display-147ed8i\" data-genesis-element=\"CARD\" data …","descriptionText": "IntroductieSustainRecruit are currently looking for a Cloud Engineer specialised in AI for a long term project with a key client of ours based in Netherlands. This position will offer a 12 month contr …","descriptionMarkdown": "#### Introductie\n\nSustainRecruit are currently looking for a Cloud Engineer specialised in AI for a long term project with a key client of ours based in Netherlands. This position will offer a 12 mont …","applyUrl": null,"isRepost": false,"originalPublishDate": null,"originalUrl": null,"contentHash": "c20f9a2de9e192da","scrapedAt": "2026-06-07T16:08:43.838Z","latitude": 52.3028209,"longitude": 4.8596844,"changeStatus": "UNCHANGED"}
Examples
Search for accountmanager roles in Den Haag:
{"searchQuery": "accountmanager","location": "Den Haag","maxResults": 100}
Filter by contract type:
{"searchQuery": "accountmanager","location": "Den Haag","maxResults": 100,"contractType": ""}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.stepstone.nl/vacatures/software-developer/in-amsterdam"}],"maxResults": 200}
Daily feed (run on a schedule):
{"searchQuery": "accountmanager","daysOld": 1,"skipReposts": true,"maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours.
💰 Pricing
$0.8 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.08 |
| 1,000 | ~$0.8 |
| 10,000 | ~$8 |
| 100,000 | ~$80 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.48 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: stepstone.nl — the Netherlands job listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl