Nationale Vacaturebank Scraper avatar

Nationale Vacaturebank Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Nationale Vacaturebank Scraper

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

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Nationale Vacaturebank Scraper

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:

FieldExample
salary"€3,500 - €5,000"
salaryMin3500
salaryMax5000
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 HTML
  • descriptionText — plain text
  • descriptionMarkdown — Markdown (ready for RAG pipelines and LLM workflows)

Input parameters

ParameterTypeDescriptionDefault
searchQuerystringSearch term, e.g. "developer"
citystringCity, e.g. "Amsterdam"
radiusselectSearch radius in km: 5/10/20/30/40/50/75/10040
contractTypeselectpermanent / temporary / freelance / internship / part-time / zzp
educationLevelselectvmbo / mbo / hbo / wo
careerLevelselectstarter / junior / medior / senior / manager / director
industrystringIndustry, e.g. "ICT" or "Healthcare"
sortselectdate / relevancedate
maxResultsintegerMaximum number of results (1–5000)100
daysOldintegerOnly return vacancies from the last X days
skipRepostsbooleanSkip republished vacanciesfalse
debugModebooleanSave screenshots on errorsfalse

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.

ResultsCost
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

RunTime
100 vacancies~11s
1,000 vacancies~2 min
5,000 vacancies~10 min

Known limitations

  • Salary: Not published by all employers — salary, salaryMin and salaryMax are null when 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.