Randstad.nl Vacatures Scraper
Pricing
from $1.00 / 1,000 results
Randstad.nl Vacatures Scraper
Extract job listings from Randstad.nl — the largest Dutch staffing agency with thousands of temp and permanent vacancies. Part of the unfenced-group Dutch jobs portfolio: consistent output format across NVB, Intermediair, Werk.nl, Randstad and Jobbird.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
2
Total users
0
Monthly active users
26 minutes ago
Last modified
Categories
Share
Randstad Scraper
Scrape job listings from randstad.nl — the Netherlands' largest staffing platform covering Randstad, Yacht, Tempo-Team, and BMC brands with tens of thousands of active vacancies. Filter by keyword, city, radius, contract type, education level, sector, and hours per week. No API key required.
Why this scraper?
☎️ Recruiter contact details
Randstad publishes contact persons with many vacancies. The scraper retrieves recruiter name, department, phone, and email where available — useful for direct outreach without going through the standard application flow.
💰 Normalized salary data
Salary data is returned as structured fields — no parsing required:
| Field | Example |
|---|---|
salary | "€15.66 - €18.72 per hour" |
salaryMin | 15.66 |
salaryMax | 18.72 |
salaryType | "hourly" |
Supports hourly, monthly, and annual salary formats.
🔄 Repost detection — unique in the market
Companies frequently republish the same vacancy to stay at the top of search results. This scraper detects reposts automatically and flags them — so you only pay for genuinely new listings.
Each result includes:
isRepost: true/false— is this a republished vacancy?originalPublishDate— when did this vacancy first appear?originalUrl— link to the original listing
Use skipReposts: true to automatically exclude reposts from your results.
🔁 Automatic retries in the background
On temporary server errors, the scraper automatically retries with exponential backoff. Failed attempts are not charged — you only pay for successfully retrieved vacancies.
🏢 Multi-brand coverage
Randstad operates multiple brands under one platform. The opco field identifies which brand posted the vacancy:
| Value | Brand |
|---|---|
RANDSTAD | Randstad |
YACHT | Yacht (professionals & secondment) |
TEMPO-TEAM | Tempo-Team (flex & temp) |
BMC | BMC (government & healthcare consultancy) |
📄 Three description formats
Every vacancy description is returned in three formats out of the box:
description— original HTMLdescriptionText— plain textdescriptionMarkdown— Markdown (ready for RAG pipelines and LLM workflows)
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
searchQuery | string | Search term, e.g. "developer" | — |
city | string | City, e.g. "Amsterdam" | — |
radius | select | Search radius in km: 5/10/20/30/40/50/75/100 | 40 |
contractType | select | permanent / temporary / secondment / temporary with permanent prospect | — |
educationLevel | select | primary / vmbo / mbo / havo-vwo / hbo / wo | — |
sector | string | Sector, e.g. "ict" or "financieel" | — |
hoursPerWeek | select | 0–8 / 9–16 / 17–24 / 25–32 / 33–36 / 37–40+ hours | — |
maxResults | integer | Maximum number of results (1–5000) | 100 |
fetchDetails | boolean | Retrieve full description, recruiter info, benefits and structured sections | true |
daysOld | integer | Only return vacancies from the last X days | — |
skipReposts | boolean | Skip republished vacancies | false |
Output schema
{"id": "12345678","title": "Java Developer","url": "https://www.randstad.nl/vacatures/...","company": "ING","opco": "YACHT","vacancyUnitCode": "R0012345","city": "Amsterdam","jobLocation": {"streetAddress": "Bijlmerplein 888","postalCode": "1102MG","city": "Amsterdam","region": "Noord-Holland","country": "Netherlands"},"salary": "€5,000 - €7,000","salaryMin": 5000,"salaryMax": 7000,"salaryType": "monthly","hours": "40 hours","workday": "Fulltime","educationLevel": "HBO","contractType": "Permanent","workFromHome": true,"student": false,"experienceRequirements": "3+ years of Java experience","experienceYears": 3.0,"recruiterName": "Maaike Deegens","recruiterDepartment": "Yacht Technology","recruiterPhone": "0612345678","recruiterEmail": "maaike.deegens@nl.randstad.com","summary": "Short vacancy teaser...","description": "<p>Full vacancy text...</p>","descriptionText": "Full vacancy text...","descriptionMarkdown": "Full vacancy text...","benefits": [{ "type": "salary", "text": "Competitive salary" }],"sections": {"whatWeOffer": "...","whoAreYou": "...","whatWillYouDo": "...","whereWillYouWork": "...","apply": "..."},"publishDate": "2026-03-20","publishDateISO": "2026-03-20T00:00:00.000Z","validThrough": "2026-04-20","logoUrl": "https://...","applyUrl": "https://...","isRepost": false,"originalPublishDate": null,"originalUrl": null,"contentHash": "sha256...","source": "randstad.nl","scrapedAt": "2026-03-22T10:00:00.000Z"}
Note:
fetchDetails: falseskips recruiter info,jobLocation,benefits,sections, and full description. Use for fast list-only runs.
Examples
ICT vacancies in Amsterdam:
{ "searchQuery": "developer", "city": "Amsterdam", "sector": "ict" }
Part-time vacancies, 17–24 hours per week:
{ "hoursPerWeek": "17 - 24 uur", "maxResults": 50 }
New Yacht secondment vacancies, no reposts:
{"contractType": "Detachering","daysOld": 7,"skipReposts": true,"fetchDetails": true}
💰 Pricing
$1.50 per 1,000 results — you only pay for successfully retrieved vacancies. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.1 |
| 1,000 | ~$1.00 |
| 10,000 | ~$10.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage. At 10,000 results/month, this scraper costs significantly less with no commitment.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run | Time |
|---|---|
| 100 vacancies (list only) | ~5s |
| 100 vacancies (with details) | ~1 min |
| 1,000 vacancies (with details) | ~10 min |
fetchDetails: truemakes one additional request per vacancy to retrieve full descriptions and recruiter info. UsefetchDetails: falsefor fast bulk runs where contact details are not needed.
Built by unfenced-group · Issues? Open a ticket or send a message.