Werk.nl Vacatures Scraper
Pricing
from $1.25 / 1,000 results
Werk.nl Vacatures Scraper
Scrape werk.nl — the official Dutch government job board with 250,000+ listings. Structured output: salary, contract type, education level, working hours. Self-healing filters, repost detection & daysOld support. No API key required.
Pricing
from $1.25 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
8
Total users
4
Monthly active users
5 days 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.
Why this scraper?
📄 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 and apply URL | 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","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-29T10:00:00.000Z"}
Examples
Developer vacancies in Amsterdam:
{"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.16 |
| 500 vacancies (with details) | ~25 min | ~$0.81 |
fetchDetails: trueis required for full vacancy text and apply URL. UsefetchDetails: falsefor fast runs with basic fields only (~3× faster).
💰 Pricing
$1.25 per 1,000 results — you only pay for successfully retrieved vacancies. Failed retries and filtered reposts are not charged.
Known limitations
- Contact fields:
contactName,contactPhone, andcontactEmailare not returned — removed in a previous version for GDPR compliance with UWV platform rules. - Salary: Not published by all employers —
salary,salaryMin, andsalaryMaxarenullwhen unavailable. - Apply URL: Links to the UWV application flow or an external ATS depending on the employer. Always present but destination varies.
- Target group flags: Fields such as
isForYouthandisFor50Plusare set by the employer and may not always be populated.
Technical details
- Source: werk.nl — official Dutch government employment platform (UWV), 250,000+ active listings from public and private sector employers
- Memory: 1024 MB
- Proxy: Apify RESIDENTIAL
- Repost storage: KeyValueStore
werk-nl-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff
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.
Built by unfenced-group · Issues? Open a ticket or send a message.