Randstad Scraper: Job Listings in 6 European Countries
Pricing
from $1.20 / 1,000 result scrapeds
Randstad Scraper: Job Listings in 6 European Countries
Scrape job listings from Randstad in Belgium, the Netherlands, Germany, France, Italy and Poland, the world's largest staffing agency. Search by keyword in the local language. No login or cookies required.
Pricing
from $1.20 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Randstad Scraper — Belgium, Netherlands, Germany, France, Italy & Poland
Extract job listings from Randstad in Belgium, the Netherlands, Germany, France, Italy and Poland, the world's largest staffing agency, as clean structured JSON. Pick a country, search by keyword, and get job titles, locations, employment type, posting dates and description excerpts in one run.
No login. No cookies. No browser automation. The actor reads the same data each country's site publishes server-side — Belgium's embedded search-page job data, and for every other country the job sitemap plus each listing's structured job-posting data — so it is fast and stable.
What this actor does
Given a country and a search keyword, this actor collects the matching job listings from that Randstad site and returns one row per job with:
- Job title
- Hiring company (Randstad, plus the end client when disclosed — Belgium only)
- Location (city, province)
- Language of the posting
- Employment type (contract type and working hours)
- Posting date
- A 300–400 character description excerpt
- The job's unique ID and direct URL
Randstad Belgium publishes listings in Dutch, French and English — you can search with keywords in any of the three languages and choose which language version of the site to crawl. The other countries publish in their local language only.
Why use it
- Staffing market research — track what roles Randstad is placing, and where, across two of its largest European markets.
- Recruitment and sourcing — build a live feed of temp and permanent positions for a role or region.
- Competitive intelligence — compare Randstad's open roles against VDAB/Le Forem/Actiris (Belgium) or UWV WERKbedrijf (Netherlands) public listings.
- Aggregators and job boards — feed Randstad staffing-agency listings into your own product.
How to scrape Randstad job data
- Open the actor and pick a Country —
Belgium,Netherlands,Germany,France,ItalyorPoland. - Set a Search Query. For Belgium this hits the site's own search engine (e.g.
warehouse,magazijnier,comptable,logistiek). For every other country this actor matches your keyword against each live job's URL slug — job-title words in the local language work best (logistiekNL,lagerDE,technicienFR,magazziniereIT,pracownikPL). - Optionally set a Location filter such as
Antwerp,Brussels,LiègeorUtrechtto narrow results to that city or province. - For Belgium, pick a Language (
en,nlorfr) — this selects which language version of the site to crawl. Ignored for every other country. - Set Max Results (up to 30 per run — see Limitations).
- Leave the proxy on its default residential setting and click Start.
For Belgium, the actor fetches the search page for your query and language, extracts the job data embedded in the page, applies your location filter if set, and writes everything to the dataset. For the other countries, it fetches the site's public job sitemap (every currently live vacancy), keeps the ones whose URL matches your keyword, then fetches each matching job's own page for its full structured data. Either way you can export the result as JSON, CSV or Excel.
Input
| Field | Type | Description |
|---|---|---|
country | string | be, nl, de, fr, it or pl. Default: be. |
searchQuery | string | Keyword to search for. Belgium: English, Dutch or French all work against the site's own search. Other countries: matched against each job's URL slug — keywords in the local language work best. Default: warehouse. |
location | string | Optional city or province filter, applied client-side (e.g. Antwerp, Liège, Utrecht). |
language | string | Belgium only: site language to crawl (en, nl or fr). Default: en. |
maxResults | integer | Maximum number of listings to return (max 30 — see Limitations). Default: 30. |
proxyConfiguration | object | Apify proxy settings. Default: Belgian residential. |
Example input (Belgium)
{"country": "be","searchQuery": "warehouse","location": "Antwerp","language": "en","maxResults": 30,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "BE"}}
Example input (Netherlands)
{"country": "nl","searchQuery": "logistiek","location": "Utrecht","maxResults": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "NL"}}
Output
Each dataset item looks like this:
{"title": "Sewer","company": "Randstad","locationRaw": "Ronse, East Flanders","locationParsed": { "city": "Ronse", "country": "Belgium" },"language": "en","postedAt": "2026-08-04T13:56:13.636546466Z","descriptionSnippet": "Are you looking for a stable job with daytime hours at a top company in Ronse? As a sewer, you will manufacture industrial insulation jackets using a sewing machine and enjoy a wage of €14.4939, meal vouchers, and an option for a permanent contract...","url": "https://www.randstad.be/en/candidates/jobs/sewer_ronse_5c298002-967d-47ca-b556-313982d6f0ed/","employmentType": "Permanent, Full-Time","source": "randstad.be","scrapedAt": "2026-08-04T17:16:12.303Z","jobId": "5c298002-967d-47ca-b556-313982d6f0ed","category": "Goods And Materials Production"}
A Netherlands result has the same shape, sourced from that job's own page:
{"title": "Logistiek medewerker fulltime","company": "Randstad","locationRaw": "Utrecht, Utrecht","locationParsed": { "city": "Utrecht", "country": "Netherlands" },"language": "nl","postedAt": "2026-09-26T00:00:00.000Z","descriptionSnippet": "Ben jij op zoek naar een dynamische baan in de logistiek? Als logistiek medewerker ga jij aan de slag met het in- en uitladen van vrachtwagens en het verwerken van bestellingen...","url": "https://www.randstad.nl/vacatures/753739/logistiek-medewerker-fulltime","employmentType": "TEMPORARY, PART_TIME, 8 - 16 uur per week","source": "randstad.nl","scrapedAt": "2026-09-27T19:40:00.000Z","jobId": "753739"}
Output fields
| Field | Type | Description |
|---|---|---|
title | string | Job title |
company | string | Hiring company as posted — Randstad itself unless a client is disclosed (Belgium only) |
clientCompany | string | Randstad's end client, when disclosed on the listing (Belgium only) |
locationRaw | string | Location as shown on the listing |
locationParsed | object | { city, country } |
language | string | ISO 639-1 language code of the posting (en, nl or fr) |
postedAt | string | ISO 8601 posting timestamp |
descriptionSnippet | string | 300–400 character plain-text excerpt of the description |
url | string | Full job listing URL |
employmentType | string | Contract type and working hours |
salaryRaw | string | Raw salary data, when disclosed (rare) |
source | string | Source site identifier (randstad.be or randstad.nl) |
scrapedAt | string | ISO 8601 timestamp of collection |
jobId | string | Unique Randstad job identifier |
category | string | Randstad's internal job classification category (Belgium only — not published on Netherlands listings) |
Cost estimate
Belgium runs make a single lightweight HTTP request — no browser, no per-item detail fetches. Runs for the other countries make a few requests for the job sitemaps plus one request per matched job (up to maxResults), since the full job data only lives on each job's own page. Either way there's no browser involved. Runs typically finish in well under a minute; cost is dominated by proxy traffic plus the per-result charge. Usage is only charged after a run finishes with status SUCCEEDED — a failed or aborted run doesn't bill for partial results.
Limitations
- Six countries. Belgium, Netherlands, Germany, France, Italy and Poland. Randstad Spain disallows all crawling in its robots.txt and is not included.
- Up to 30 results per query. Belgium's search page renders a fixed batch of results with no working server-side pagination parameter (page/offset/pageNumber query params were all tested live and had no effect). The sitemap countries are capped the same way for consistency. Run multiple searches with different keywords for broader coverage.
- Search in the sitemap countries matches URL slugs, not a real search index. This actor matches your keyword against each live job's URL slug (drawn from the site's own job sitemap), which is a good proxy for job-title keywords but won't find matches based on description text alone.
- Location filtering is client-side. Neither country's search page exposes a working location query parameter, so the
locationinput filters the fetched results by substring match rather than querying the site directly. - Salary is rarely disclosed. Most listings on both sites don't publish pay rates;
salaryRawis empty for the large majority of jobs. - Client company and category are Belgium-only fields. Randstad Netherlands' job-posting data doesn't include an end-client name or an internal category classification the way Belgium's does.
Related scrapers
Building a European staffing and public-employment dataset? These sibling actors follow the same clean-JSON approach:
- VDAB Scraper — Flemish public employment service
- Le Forem Scraper — Walloon public employment service
- Actiris Scraper — Brussels public employment service
- StepStone Scraper — Belgian commercial job board
- Jobat Scraper — Belgian job board
Disclaimer
This actor collects publicly available data from Randstad Belgium and Randstad Netherlands for legitimate research and aggregation use. Respect Randstad's terms of service and applicable data protection law when using the output.