Werk.nl Scraper: Netherlands UWV Government Jobs & Vacatures

The NanoScrape Werk Scraper is an Apify actor that extracts job listings from werk.nl. It returns 37 fields per result including title, location, description, company_name, company_website, priced at $5/1k job, with no API key or monthly subscription required.

Werk.nl (Government, Netherlands): Netherlands' national government employment service (UWV) (source platform). Covers all 12 Dutch provinces with title, salary, and employment type. Official government source.

Open on Apify →
Pricing
$5.00 / 1,000 job detail result
Runtime
Cloud (Apify)
Proxy
None
Coverage
NL

What you can scrape — 37 fields per result

FieldTypeExampleGroupFill %
_typestringjobCore100%
idstring71909996Core100%
titlestringSoftware Engineer PLCCore100%
job_urlstringhttps://www.werk.nl/nl/vacatures/71909996Core100%
source_urlstringhttps://www.werk.nl/nl/vacatures/71909996Core100%
source_platformstringwerk.nlCore100%
company_namestring | nullSynsel TechniekCore100%
company_logo_urlstring | null(populated when data available)Core—
contact_namestring | null(populated when data available)Core100%
contact_urlsarray[]Core—
apply_urlstring | nullhttps://api.multiposter.nl/click/1178554/37/Core100%
company_websitestring | null(populated when data available)Company20%
locationstringAmsterdamLocation100%
countrystringNLLocation100%
regionstring | nullNoord-HollandLocation100%
descriptionstring | nullBedrijfsomschrijving: Locatie: Amsterdam. Voor elke klantwens ontwerpt en ontwikkelt di...Description100%
description_fullstring | nullBedrijfsomschrijving: Locatie: Amsterdam. Voor elke klantwens ontwerpt en ontwikkelt di...Description100%
description_htmlstring | nullBedrijfsomschrijving: Locatie: Amsterdam. Voor elke klantwens ontwerpt en ontwikkelt di...Description100%
description_mdstring | null(populated when data available)Description—
salary_minnumber | null2900Salary40%
salary_maxnumber | null(populated when data available)Salary—
salary_currencystring | nullEURSalary40%
salary_periodstring | nullmonthSalary40%
salary_textstring | null€2.900Salary40%
employment_typestring | nullpermanentEmployment100%
min_hoursinteger | null40Employment80%
max_hoursinteger | null40Employment80%
posted_at_textstring | null22 October 2026Metadata100%
posted_at_datetimestring | null2026-10-22T00:00:00ZMetadata100%
study_levelstring | null(populated when data available)Metadata20%
contact_departmentstring | null(populated when data available)Metadata—
scraped_atstring2026-10-22T04:44:52ZMetadata100%
workplace_typestring | null(populated when data available)Other60%
contact_emailsarray[]Other100%
contact_phonesarray[]Other100%
search_querystring | nullsoftware engineer in AmsterdamOther100%
detail_statusstring | nullokOther100%

Input example — showcase (full detail)

{
  "searchQueries": [
    "software engineer",
    "verpleegkundige",
    "chauffeur"
  ],
  "location": "Amsterdam",
  "maxResults": 30,
  "maxResultsPerQuery": 10,
  "includeJobDetails": true,
  "includeCompanyDetails": true
}

Output example — real dataset item (PII scrubbed)

{
  "_type": "job",
  "id": "71909996",
  "title": "Software Engineer PLC",
  "job_url": "https://www.werk.nl/nl/vacatures/71909996",
  "source_url": "https://www.werk.nl/nl/vacatures/71909996",
  "source_platform": "werk.nl",
  "company_name": "Synsel Techniek",
  "company_website": null,
  "company_logo_url": null,
  "location": "Amsterdam",
  "country": "NL",
  "region": "Noord-Holland",
  "posted_at_text": "22 October 2026",
  "posted_at_datetime": "2026-10-22T00:00:00Z",
  "employment_type": "permanent",
  "workplace_type": null,
  "min_hours": 40,
  "max_hours": 40,
  "study_level": null,
  "salary_min": 2900,
  "salary_max": null,
  "salary_currency": "EUR",
  "salary_period": "month",
  "salary_text": "€2.900",
  "description": "Bedrijfsomschrijving: Locatie: Amsterdam. Voor elke klantwens ontwerpt en ontwikkelt dit bedrijf een hightech geautomatiseerde machine of complete productielijn. Kennis en duurzaamheid zijn speerpunten binnen deze organisatie. De klanten van deze organisatie bevinden zich met name in Nederland en de cultuur kenmerkt zich als: open, innovatief, no-nonsense en professioneel. Als je bij dit bedrijf aan de slag gaat weet je zeker dat je te maken krijgt met de nieuwste technologieën, mogelijkhede...",
  "description_full": "Bedrijfsomschrijving:\nLocatie: Amsterdam. Voor elke klantwens ontwerpt en ontwikkelt dit bedrijf een hightech geautomatiseerde machine of complete productielijn. Kennis en duurzaamheid zijn speerpunten binnen deze organisatie. De klanten van deze organisatie bevinden zich met name in Nederland en de cultuur kenmerkt zich als: open, innovatief, no-nonsense en professioneel. Als je bij dit bedrijf aan de slag gaat weet je zeker dat je te maken krijgt met de nieuwste technologieën, mogelijkheden om jezelf te ontwikkelen en samen met een team te werken voor je klant. Wegens enorme groei in deze organisatie en toenemende projecten zijn ze op zoek naar een Software Engineer PLC.. Wil jij in regio Amsterdam tot 5630 verdienen als ? Solliciteer dan direct!\nFunctie-inhoud:\n- Schrijven van software (programmeren van PLC), configureren en het testen van de software voor de machinebesturingen, bedienpanelen, aandrijf- en veiligheidssystemen;\n- Als Software Engineer PLC test en optimaliseer je nieuwe ontwikkelingen in de werkplaats;\n- Het verzorgen van een goede projectadministratie, documentatie en standaardisatie;\n- Het bewaken van de voortgang, planning, kwaliteit en informatievoorziening;\n- Je geeft als Software Engineer PLC input voor het schrijven van handleidingen;\n- Het assisteren bij de ontwikkeling van nieuwe producten of functionaliteit;\nFunctie-eisen:\n- Je hebt minimaal een HBO-opleiding in de richting van Elektrotechniek, Industriële Automatisering, Besturingstechniek;\n- Je hebt ervaring als Software Engineer PLC of in een soortgelijke functie;\n- Je hebt interesse in het bouwen en ontwerpen van besturingsoplossingen voor machines;\n- Je hebt als Software Engineer PLC kennis van PLC systemen zoals Siemens S7 en Allen Bradley;\n- Je bent bereid om incidenteel in het buitenland te werken;\n- Vloeiende beheersing van de Nederlandse taal is noodzakelijk, zowel mondeling als schriftelijk;\nWij bieden:\n- Een basissalaris tussen de €2.900 en €5.630 bruto per maand;\n- 27 vaka.",
  "description_html": "Bedrijfsomschrijving:\nLocatie: Amsterdam. Voor elke klantwens ontwerpt en ontwikkelt dit bedrijf een hightech geautomatiseerde machine of complete productielijn. Kennis en duurzaamheid zijn speerpunten binnen deze organisatie. De klanten van deze organisatie bevinden zich met name in Nederland en de cultuur kenmerkt zich als: open, innovatief, no-nonsense en professioneel. Als je bij dit bedrijf aan de slag gaat weet je zeker dat je te maken krijgt met de nieuwste technologieën, mogelijkheden om jezelf te ontwikkelen en samen met een team te werken voor je klant. Wegens enorme groei in deze organisatie en toenemende projecten zijn ze op zoek naar een Software Engineer PLC.. Wil jij in regio Amsterdam tot 5630 verdienen als ? Solliciteer dan direct!\nFunctie-inhoud:\n- Schrijven van software (programmeren van PLC), configureren en het testen van de software voor de machinebesturingen, bedienpanelen, aandrijf- en veiligheidssystemen;\n- Als Software Engineer PLC test en optimaliseer je nieuwe ontwikkelingen in de werkplaats;\n- Het verzorgen van een goede projectadministratie, documentatie en standaardisatie;\n- Het bewaken van de voortgang, planning, kwaliteit en informatievoorziening;\n- Je geeft als Software Engineer PLC input voor het schrijven van handleidingen;\n- Het assisteren bij de ontwikkeling van nieuwe producten of functionaliteit;\nFunctie-eisen:\n- Je hebt minimaal een HBO-opleiding in de richting van Elektrotechniek, Industriële Automatisering, Besturingstechniek;\n- Je hebt ervaring als Software Engineer PLC of in een soortgelijke functie;\n- Je hebt interesse in het bouwen en ontwerpen van besturingsoplossingen voor machines;\n- Je hebt als Software Engineer PLC kennis van PLC systemen zoals Siemens S7 en Allen Bradley;\n- Je bent bereid om incidenteel in het buitenland te werken;\n- Vloeiende beheersing van de Nederlandse taal is noodzakelijk, zowel mondeling als schriftelijk;\nWij bieden:\n- Een basissalaris tussen de €2.900 en €5.630 bruto per maand;\n- 27 vaka.",
  "description_md": null,
  "contact_name": null,
  "contact_department": null,
  "contact_emails": [],
  "contact_phones": [],
  "contact_urls": [],
  "apply_url": "https://api.multiposter.nl/click/1178554/37/",
  "search_query": "software engineer in Amsterdam",
  "detail_status": "ok",
  "scraped_at": "2026-10-22T04:44:52Z"
}

Cost math

Priced at $0.0050 per job detail result. 10 job detail results ≈ $0.05, 100 ≈ $0.50, 1,000 ≈ $5.00. The first runs land inside Apify's $5/mo free-tier credit — pay only for what you extract, no monthly subscription.

Who should use this

Dutch recruitment agencies and staffing firms use this actor to access the official UWV government job inventory, which includes listings that do not appear on private boards, at $3 per 1,000 jobs with no subscription.

Netherlands job board operators covering the local market rely on the province-level region field and Dutch contract-type mapping to power faceted search across all 12 provinces.

HR analytics teams tracking Dutch salary benchmarks by education level and region use the structured study_level and salary_min / salary_max fields to build compensation reports without manual data collection.

Integrations

Run this actor directly on Apify (no code)

Click Open on Apify above to run werk-nl-scraper in your browser - no code, no install. In the Apify console you get:

Get your Apify API token

To run this actor from your own code you need an Apify API token. Get one in about a minute:

  1. Sign up for a free Apify account (Google, GitHub, or email).
  2. Go to Settings → Integrations → API tokens.
  3. Click Create a new API token. Copy it and keep it secret.

Free tier: Apify credits your account with $5 of platform usage every month, no credit card required. Enough to test any actor meaningfully. How many results that covers depends on the actor's price per result.

Call from code

Run this actor from any language via the Apify REST API. Replace YOUR_TOKEN with your API token and adapt the input JSON to your needs.

curl -X POST "https://api.apify.com/v2/acts/santamaria-automations~werk-nl-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
// npm install apify-client
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('santamaria-automations/werk-nl-scraper').call({});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
# pip install apify-client
from apify_client import ApifyClient

client = ApifyClient('YOUR_TOKEN')
run = client.actor('santamaria-automations/werk-nl-scraper').call(run_input={})
items = list(client.dataset(run['defaultDatasetId']).iterate_items())
print(items)
// dotnet add package Apify.Client
using Apify.Client;

var client = new ApifyClient("YOUR_TOKEN");
var run = await client.Actor("santamaria-automations/werk-nl-scraper").CallAsync(new { });
var items = await client.Dataset(run.DefaultDatasetId).ListItemsAsync();
// Maven: com.apify:apify-client
import com.apify.client.ApifyClient;

ApifyClient client = new ApifyClient("YOUR_TOKEN");
ActorRun run = client.actor("santamaria-automations/werk-nl-scraper").call(Map.of());
List<Map<String,Object>> items = client.dataset(run.getDefaultDatasetId()).listItems();

Use with AI agents (MCP)

This actor is available on the Apify MCP server, so you can drive it from any MCP-compatible AI client - Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or a custom agent - without writing any code.

https://mcp.apify.com?tools=santamaria-automations/werk-nl-scraper

Example prompt once connected:

"Use <code>werk-nl-scraper</code> to run a scrape on my target list and give me the results as a table."

Clients that support dynamic tool discovery (Claude.ai, VS Code) receive the full input schema automatically via add-actor.

Use with no-code platforms

Trigger this actor from your favorite automation tool. Every platform below can call the Apify API in a few clicks - no code required.

  1. Add the n8n Apify node (installed by default on n8n Cloud; on self-hosted install @apify/n8n-nodes-apify).
  2. Set Actor to santamaria-automations/werk-nl-scraper.
  3. Choose operation Run Actor and get dataset, paste your input JSON, and connect a downstream node (Google Sheets, Postgres, webhook, ...).
  1. Create a new Zap with any trigger.
  2. Add a Webhooks by Zapier POST action to https://api.apify.com/v2/acts/santamaria-automations~werk-nl-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.
  3. Body: your input JSON. Content-Type: application/json.
  1. Create a new scenario.
  2. Add an HTTP module: URL https://api.apify.com/v2/acts/santamaria-automations~werk-nl-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, method POST, body raw JSON.
  3. Parse the response with a JSON module to iterate items downstream.
  1. Create a new workflow.
  2. Add an HTTP Request step: POST to https://api.apify.com/v2/acts/santamaria-automations~werk-nl-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN.
  3. Access steps.http.$return_value in subsequent steps.
  1. Install the API Connector plugin.
  2. Add a new API: POST https://api.apify.com/v2/acts/santamaria-automations~werk-nl-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN, body type JSON.
  3. Initialize the call with your input, then reference the response array in workflow actions.

FAQ

How much does the werk-nl-scraper cost?

$5.00 / 1,000 job detail result, billed per result on Apify. Apify's $5/month free tier covers the first runs. No monthly subscription — you only pay for what you extract.

What fields does it return?

37 fields per result. Full field catalog is listed in the 'What you can scrape' table above — includes core identifiers, descriptive text, dates, and any category-specific data.

Is scraping this site legal?

Scraping publicly available data is generally permitted in most jurisdictions, but GDPR applies to any personal data you collect. Review your local rules and consult a lawyer for commercial use.

Do I need an API key from the source platform?

No. This actor reads public pages over plain HTTP, without a proxy. No API key, no OAuth, no rate-limit management on your side.

How fresh is the data?

Every run pulls live data at execution time. Set up a schedule (daily/hourly/weekly cron) in the Apify console to keep your dataset current automatically.

Related actors in this category

Related tutorials

Open on Apify →