Nationale Vacaturebank Scraper
Pricing
from $1.50 / 1,000 results
Nationale Vacaturebank Scraper
Scrape 105,000+ job listings from Nationale Vacaturebank — the #1 Dutch job board. The only NVB scraper on Apify. Direct REST API, no browser. Salary range, geolocation, expiry date and full description included. RAG-ready Markdown output.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
6
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share

Scrape job listings from nationalevacaturebank.nl — the largest Dutch job board with 100,000+ active vacancies. Filter by keyword, city, radius, contract type, education level, experience level, and industry. No API key required.
Why this scraper?
🔄 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.
💰 Normalized salary data
Salary data is returned as structured fields — no regex parsing required:
| Field | Example |
|---|---|
salary | "€3,500 - €5,000" |
salaryMin | 3500 |
salaryMax | 5000 |
salaryType | "monthly" |
Filter and compare salaries directly in your own database without additional processing.
🔁 Automatic retries in the background
On temporary server errors (429, 503, 504), the scraper automatically retries with exponential backoff. Failed attempts are not charged — you only pay for successfully retrieved vacancies.
📍 Full location data
Every vacancy includes city, municipality, province, zip code, and GPS coordinates — ready for map visualizations or radius calculations.
📄 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 / freelance / internship / part-time / zzp | — |
educationLevel | select | vmbo / mbo / hbo / wo | — |
careerLevel | select | starter / junior / medior / senior / manager / director | — |
industry | string | Industry, e.g. "ICT" or "Healthcare" | — |
sort | select | date / relevance | date |
maxResults | integer | Maximum number of results (1–5000) | 100 |
daysOld | integer | Only return vacancies from the last X days | — |
skipReposts | boolean | Skip republished vacancies | false |
debugMode | boolean | Save screenshots on errors | false |
Output schema
{"id": "uuid","title": "Senior Frontend Developer","url": "https://www.nationalevacaturebank.nl/vacature/...","company": "Coolblue","companyType": "direct_employer","city": "Rotterdam","municipality": "ROTTERDAM","zipCode": "3012WZ","province": "Zuid-Holland","latitude": 51.9225,"longitude": 4.47917,"salary": "€4,000 - €5,500","salaryMin": 4000,"salaryMax": 5500,"salaryType": "monthly","hours": "32 - 40 hours","hoursMin": 32,"hoursMax": 40,"contractType": "Permanent","educationLevel": "HBO","careerLevel": "Experienced","functionTitle": "Software Developer","categories": ["ICT"],"industries": ["ICT"],"publishDate": "2026-03-20","expiryDate": "2026-05-19","description": "<p>Full vacancy text...</p>","descriptionText": "Full vacancy text...","descriptionMarkdown": "Full vacancy text...","isRepost": false,"originalPublishDate": null,"originalUrl": null,"contentHash": "sha256...","recruiterId": "...","referenceId": "...","numberOfApplies": 4,"scrapedAt": "2026-03-22T10:00:00.000Z"}
Examples
All developer vacancies in Amsterdam:
{ "searchQuery": "developer", "city": "Amsterdam", "radius": 40 }
Nurse vacancies, new listings only (no reposts):
{ "searchQuery": "verpleegkundige", "skipReposts": true, "sort": "date" }
Senior HBO ICT vacancies, fulltime:
{"searchQuery": "developer","educationLevel": "hbo","careerLevel": "senior","industry": "ICT"}
💰 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.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.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 | ~11s |
| 1,000 vacancies | ~2 min |
| 5,000 vacancies | ~10 min |
Known limitations
- Salary: Not published by all employers —
salary,salaryMinandsalaryMaxarenullwhen unavailable. - Location radius: Distance filtering is applied client-side using GPS coordinates — a small number of results near the boundary may fall slightly outside the requested radius.
- Apply URL: Varies by employer. Some listings link to an external ATS, others to the NVB application flow.
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.
