Werk.nl Vacatures Scraper
Pricing
from $1.25 / 1,000 results
Werk.nl Vacatures Scraper
Scrape job listings from Werk.nl (UWV) — the official Dutch government job board. Unique feature: extracts recruiter contact details (name, phone, email) not available in any competing scraper. Self-healing filters via live API discovery.
Pricing
from $1.25 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
4
Total users
2
Monthly active users
4 minutes ago
Last modified
Categories
Share
Werk.nl Job Scraper

Scrape job vacancies from werk.nl — the official Dutch government job board (UWV) with 250,000+ active listings from both commercial employers and government agencies. Unique feature: direct recruiter contact details, unavailable through any other scraper.
Why this scraper?
☎️ Recruiter contact details — exclusive to this scraper
Werk.nl publishes the name, phone number and email address of the contact person for each vacancy. This scraper is the only one on the Apify Store that extracts this data:
| Field | Example |
|---|---|
contactName | "Jan de Vries" |
contactPhone | "+31207512190" |
contactEmail | "jan@company.nl" |
Reach out directly — without submitting an application first.
📄 Three description formats — ready for RAG & LLM pipelines
Every vacancy is delivered in three formats:
| Field | Format | Use case |
|---|---|---|
description | HTML | Display in your own application |
descriptionText | Plain text | Search indexing, full-text search |
descriptionMarkdown | Markdown | Pinecone, Weaviate, GPT-4, Claude |
🔄 Repost detection
Companies frequently republish the same vacancy to stay at the top of search results. This scraper detects that automatically via cross-run fingerprinting:
isRepost: true/falseoriginalPublishDate— date first seenoriginalUrl— link to the original listing
Use skipReposts: true to automatically skip republications.
💰 Normalised salary data
| Field | Example |
|---|---|
salary | "€4,000 - €6,000" |
salaryMin | 4000 |
salaryMax | 6000 |
salaryType | "monthly" |
Supports monthly, hourly and annual salaries.
🎯 Unique target group filters
Werk.nl carries target group markers not available on other job boards:
isInternship— internship positionsisForYouth— vacancies for young job seekersisFor50Plus— vacancies for 50+ candidatesisForWomen— vacancies specifically targeting womenisForDisabled— vacancies for people with a disabilityisBanenafspraak— Dutch government employment initiative vacancies
🔁 Automatic retries
On temporary server errors the scraper retries automatically with exponential backoff. Failed attempts are not charged — you only pay for successfully retrieved vacancies.
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
keywords | string | Search term, e.g. "developer" | — |
keywords2 | string | Second search term (batch mode) | — |
keywords3 | string | Third search term (batch mode) | — |
location | string | City or postcode, e.g. "Amsterdam" | — |
distance | integer | Search radius in km | — |
contractType | select | vast / mogelijk vast / tijdelijk | — |
educationLevel | select | vmbo / mbo / hbo / wo | — |
sortBy | select | relevantie / dichtbij / datum | dichtbij |
maxResults | integer | Maximum number of results (1–1000) | 100 |
fetchDetails | boolean | Fetch full vacancy text + contact details | true |
daysOld | integer | Only vacancies from the last X days | — |
skipReposts | boolean | Skip republications | false |
debugMode | boolean | Save screenshots on errors | false |
Output schema
{"title": "Senior Frontend Engineer","referenceNumber": 68101116,"url": "https://www.werk.nl/nl/vacatures/68101116","company": "Poki","companyWebsite": "https://jobs.lever.co/poki","city": "Amsterdam","postcode": "1012WZ","address": "Spui 10 1012WZ Amsterdam","distanceKm": 1.7,"workLocationType": "Fixed location","contractType": "Tijdelijk","hoursMin": 40,"hoursMax": 40,"education": "HBO/bachelor","profession": "Frontend engineer","salary": "€4,000 - €6,000","salaryMin": 4000,"salaryMax": 6000,"salaryType": "monthly","publishDate": "2026-02-20","expiryDate": "2026-03-22","contactName": "Jan de Vries","contactPhone": "+31207512190","contactEmail": "jan@company.nl","applyUrl": "https://jobs.lever.co/poki/...","isRepost": false,"originalPublishDate": null,"originalUrl": null,"isInternship": false,"isForYouth": false,"isFor50Plus": false,"isForWomen": false,"isForDisabled": false,"isBanenafspraak": false,"description": "<p>We are looking for...</p>","descriptionText": "We are looking for...","descriptionMarkdown": "## About the role\n\nWe are looking for...","scrapedAt": "2026-03-24T10:00:00.000Z"}
Examples
Developer vacancies in Amsterdam with contact details:
{"keywords": "developer","location": "Amsterdam","distance": 40,"fetchDetails": true}
Only new vacancies from yesterday, no reposts:
{"keywords": "verpleegkundige","daysOld": 1,"skipReposts": true,"sortBy": "datum"}
Batch: three search terms at once:
{"keywords": "marketing","keywords2": "communicatie","keywords3": "pr","location": "Utrecht"}
Performance
| Run | Time | Cost |
|---|---|---|
| 100 vacancies (with details) | ~5 min | ~$0.19 |
| 500 vacancies (with details) | ~25 min | ~$0.94 |
fetchDetails: trueis required for contact details and full vacancy text. UsefetchDetails: falsefor fast runs without contact data (~3× faster).
Pricing
$1.50 per 1,000 results — you only pay for successfully retrieved vacancies. Failed retries and filtered reposts are not charged.
Known limitations
- Salary: Extracted from free-text employment descriptions — may be
nullfor listings that don't include salary information in structured form. - contractType filter: Occasionally the Werk.nl API returns an error for specific filter combinations. The scraper falls back to unfiltered results in those cases and logs a warning.
- Government listings only: Werk.nl is the official Dutch government job board — it does not include commercial recruitment agency listings.
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support? Send an email to info@unfencedgroup.nl — we build on request.
Built by unfenced-group · Issues? Open a ticket or send a message.