Pricing
from $1.20 / 1,000 results
Werkzoeken.nl Scraper
Scrape 195,000+ listings from Werkzoeken.nl โ the Netherlands' comprehensive job aggregator. Filter by keyword, location, contract type and working hours. Full descriptions in HTML, text and Markdown. Repost detection & daysOld filtering. No API key required.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
2
Bookmarked
12
Total users
4
Monthly active users
3 days ago
Last modified
Categories
Share
Werkzoeken.nl Scraper โ Netherlands Jobs
Extract structured job listings from werkzoeken.nl โ the Netherlands' largest job aggregator with 195,000+ listings from hundreds of boards, staffing agencies, and employer sites. Filter by keyword, location, contract type, salary, and more. No API key required.
What you get
Every result includes title, company, location, salary range, contract type, working hours, publication date, repost detection, and a direct link. Enable fetchDetails to add full job descriptions (HTML, plain text, and Markdown) and apply URLs. Enable incrementalMode for daily change feeds โ only new, updated, and reappeared listings are returned.
Input parameters
Search & filters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | โ | Job title or keyword โ e.g. developer, verpleegkundige, chauffeur |
location | string | โ | City or region โ e.g. Amsterdam, Rotterdam, Den Haag |
radius | string | โ | Search radius in km โ e.g. 10, 25, 50 |
contractType | string | โ | Contract type โ e.g. fulltime, parttime, freelance, temporary |
hoursPerWeek | string | โ | Working hours filter โ e.g. 32, 40 |
educationLevel | string | โ | Required education โ e.g. MBO, HBO, WO |
employerType | string | โ | Employer type โ e.g. direct, uitzendbureau |
minSalary | string | โ | Minimum monthly salary โ e.g. 2500 |
daysOld | string | โ | Only jobs posted within N days โ 7 for this week, 1 for today |
sortBy | select | โ | date (newest first) or relevance |
maxResults | integer | 100 | Maximum results to return. 0 = unlimited |
fetchDetails | boolean | false | Fetch full descriptions and apply URL from each listing page |
skipReposts | boolean | false | Exclude reposts of already-seen listings |
Incremental mode
| Parameter | Type | Default | Description |
|---|---|---|---|
incrementalMode | boolean | false | Only return NEW, UPDATED, and REAPPEARED listings compared to the previous run |
stateKey | string | โ | Optional stable identifier for the tracked search state. Leave empty to auto-derive |
Output shaping
| Parameter | Type | Default | Description |
|---|---|---|---|
compact | boolean | false | Return core fields only โ ideal for AI agents and LLM pipelines |
descriptionFormat | select | all | Keep all variants, or pick text, html, or markdown |
descriptionMaxLength | integer | 0 | Truncate description to N characters. 0 = no truncation |
excludeEmptyFields | boolean | false | Strip null and empty fields from each record |
Notifications
| Parameter | Type | Description |
|---|---|---|
telegramToken | string | Telegram bot token from @BotFather |
telegramChatId | string | Telegram chat or channel ID |
discordWebhookUrl | string | Discord incoming webhook URL |
slackWebhookUrl | string | Slack incoming webhook URL |
webhookUrl | string | Generic POST webhook โ works with n8n, Make, Zapier |
webhookHeaders | object | Optional auth headers for the webhook |
notificationLimit | integer | Max jobs per notification message (default 5) |
notifyOnlyChanges | boolean | With incremental mode: only notify for NEW / UPDATED / REAPPEARED |
Output fields
Always present
| Field | Type | Description |
|---|---|---|
id | string | Unique job ID (wznl prefix + vacancy ID) |
vacancyId | string | Raw vacancy ID from werkzoeken.nl |
title | string | Job title |
url | string | Direct link to the listing |
company | string | Hiring company or recruiter name |
companyType | string | Employer type (e.g. direct, uitzendbureau) |
city | string | City or region |
contractType | string | Contract type (e.g. fulltime, parttime) |
hoursType | string | Working hours type |
experience | array | Required experience levels |
education | string | Required education level |
salaryMin | number | Minimum monthly salary (โฌ) |
salaryMax | number | Maximum monthly salary (โฌ) |
salaryType | string | Salary period โ always monthly |
publishDate | string | ISO date the listing was published |
ageLabel | string | Original age label from the site (e.g. vandaag, 3 dagen geleden) |
fingerprint | string | Cross-run dedup hash (from site's data-hash attribute) |
contentHash | string | MD5 of title + company + salary + location โ stable content identifier |
changeStatus | string | NEW, UPDATED, UNCHANGED, or REAPPEARED (only with incrementalMode) |
isRepost | boolean | Whether this listing has been seen before under the same fingerprint |
originalPublishDate | string | Publication date of the first-seen version (reposts only) |
originalUrl | string | URL of the first-seen version (reposts only) |
extractedEmails | array | Email addresses extracted from the job description |
extractedPhones | array | Phone numbers extracted from the job description |
scrapedAt | string | ISO 8601 timestamp of when this record was scraped |
source | string | Always werkzoeken.nl |
latitude | number | Geocoded latitude of the job location |
longitude | number | Geocoded longitude of the job location |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
description | string | Full job description as HTML |
descriptionText | string | Full job description as plain text |
descriptionMarkdown | string | Full job description as Markdown |
applyUrl | string | Direct application URL |
Sample output
{"id":"wznl12345678","vacancyId":"12345678","title":"Senior Software Engineer","company":"Tech Startup BV","companyType":"direct","city":"Amsterdam","contractType":"fulltime","hoursType":"40 uur","experience":["senior"],"education":"HBO","salaryMin":4500,"salaryMax":6000,"salaryType":"monthly","publishDate":"2026-06-09","ageLabel":"vandaag","changeStatus":"NEW","isRepost":false,"extractedEmails":["jobs@techstartup.nl"],"extractedPhones":[],"url":"https://www.werkzoeken.nl/vacature/senior-software-engineer-amsterdam-12345678/","applyUrl":"https://www.techstartup.nl/apply/senior-engineer","scrapedAt":"2026-06-09T10:00:00.000Z","source":"werkzoeken.nl"}
Examples
Developer jobs in Amsterdam
{"searchQuery":"developer","location":"Amsterdam","radius":"25","maxResults":50}
Daily feed of new IT jobs (incremental mode)
{"searchQuery":"software engineer","contractType":"fulltime","incrementalMode":true,"notifyOnlyChanges":true,"telegramToken":"your-bot-token","telegramChatId":"-100123456789"}
Part-time admin roles in Rotterdam with full descriptions
{"searchQuery":"administratief medewerker","location":"Rotterdam","contractType":"parttime","fetchDetails":true,"descriptionFormat":"text"}
Logistics jobs with minimum salary, this week only
{"searchQuery":"chauffeur","location":"Utrecht","minSalary":"2500","daysOld":"7","sortBy":"date"}
Compact output for AI/LLM pipelines
{"searchQuery":"data analyst","location":"Rotterdam","compact":true,"excludeEmptyFields":true,"descriptionFormat":"text","descriptionMaxLength":500}
n8n / Zapier webhook on new jobs
{"searchQuery":"marketing manager","location":"Amsterdam","incrementalMode":true,"webhookUrl":"https://your-n8n.com/webhook/abc123","notifyOnlyChanges":true,"notificationLimit":10}
Pricing
Pay-per-result โ you are charged only for items pushed to the dataset. Compute and proxy costs are absorbed by Unfenced Group.
Related scrapers
Other scrapers in our Jobs โ Netherlands collection:
- Adzuna NL API Scraper
- Freelancer.nl Opdrachten Scraper
- Intermediair.nl Vacatures Scraper
- Jobbird.com Vacatures Scraper
- Nationale Vacaturebank Scraper
Veelgestelde vragen
Welke vacatures haalt deze actor op?
Alle vacatures die bij je zoekopdracht passen op Werkzoeken.nl โ functietitel, werkgever, locatie, en de link. De actor haalt de volledige set op, ongeacht hoeveel pagina's dat zijn.
Kan ik zoeken op vacatures in een bepaalde regio?
Ja. Geef de locatie mee in de input en de actor levert alleen vacatures uit die regio. Combineer met functietermen om de set verder toe te spitsen.
Zijn er vacatures voor Engelstaligen op te halen?
Als de bron ze toont, komen ze mee in de resultaten. Filter op functietermen zoals 'English' of specifieke functietitels om die set te isoleren.
Hoe houd ik nieuwe vacatures bij?
Plan een dagelijkse of wekelijkse run in. Elke run levert een verse dataset met tijdstempel, zodat je nieuwe vacatures tegen je vorige run kunt afzetten.
Draai het op een schema
Deze actor is gemaakt voor herhaald gebruik. Stel hem in om dagelijks, wekelijks of elk uur te draaien, en de data blijft binnenkomen zonder dat je er iets voor hoeft te doen.
- Plan runs in โ open de actor, ga naar Schedules en kies een frequentie. Elke run rekent alleen de resultaten af die hij oplevert.
- Koppel het aan je stack โ stuur resultaten rechtstreeks naar Google Sheets, Slack, een webhook of je database via Apify Integrations. Geen extra code nodig.
- Haal resultaten op via de API โ elke run schrijft een schone dataset die je met รฉรฉn API-call ophaalt, klaar voor waar je hem ook voor gebruikt.
Stel het รฉรฉn keer in en het draait vanzelf.
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
