Werk.nl Vacatures Scraper avatar

Werk.nl Vacatures Scraper

Pricing

from $1.25 / 1,000 results

Go to Apify Store
Werk.nl Vacatures Scraper

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

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

4

Total users

2

Monthly active users

4 minutes ago

Last modified

Share

Werk.nl Job Scraper

Werk Nl 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:

FieldExample
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:

FieldFormatUse case
descriptionHTMLDisplay in your own application
descriptionTextPlain textSearch indexing, full-text search
descriptionMarkdownMarkdownPinecone, 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/false
  • originalPublishDate — date first seen
  • originalUrl — link to the original listing

Use skipReposts: true to automatically skip republications.

💰 Normalised salary data

FieldExample
salary"€4,000 - €6,000"
salaryMin4000
salaryMax6000
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 positions
  • isForYouth — vacancies for young job seekers
  • isFor50Plus — vacancies for 50+ candidates
  • isForWomen — vacancies specifically targeting women
  • isForDisabled — vacancies for people with a disability
  • isBanenafspraak — 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

ParameterTypeDescriptionDefault
keywordsstringSearch term, e.g. "developer"
keywords2stringSecond search term (batch mode)
keywords3stringThird search term (batch mode)
locationstringCity or postcode, e.g. "Amsterdam"
distanceintegerSearch radius in km
contractTypeselectvast / mogelijk vast / tijdelijk
educationLevelselectvmbo / mbo / hbo / wo
sortByselectrelevantie / dichtbij / datumdichtbij
maxResultsintegerMaximum number of results (1–1000)100
fetchDetailsbooleanFetch full vacancy text + contact detailstrue
daysOldintegerOnly vacancies from the last X days
skipRepostsbooleanSkip republicationsfalse
debugModebooleanSave screenshots on errorsfalse

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

RunTimeCost
100 vacancies (with details)~5 min~$0.19
500 vacancies (with details)~25 min~$0.94

fetchDetails: true is required for contact details and full vacancy text. Use fetchDetails: false for 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 null for 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.