NL CAO Wijzigingen Database
Pricing
from $3.50 / 1,000 results
NL CAO Wijzigingen Database
Dutch collective labour agreement (CAO) changes, extracted from official Staatscourant algemeenverbindendverklaring publications. Structured per sector, with wage increase and validity extraction.
NL CAO Wijzigingen Database ๐ณ๐ฑ
Track Dutch collective labour agreement (CAO) changes as a structured, machine-readable feed โ extracted directly from official Staatscourant algemeenverbindendverklaring (avv) publications.
Every year, the Ministry of Social Affairs and Employment (SZW) publishes hundreds of decisions that make CAO provisions binding for an entire sector โ new agreements, amendments, extensions, and revocations. Today, that information is only available through slow, API-less web portals (caobank.szw.nl, AWVN Cao-kijker, CAOWijzer) built for human browsing. This actor turns that public stream into clean, structured data: per-sector CAO name, publication type, validity period, and wage-increase percentages where mentioned in the text.
Who is this for?
- Payroll & HR software vendors who need to track CAO updates across sectors instead of following one at a time
- Salarisadministratiekantoren monitoring multiple client sectors for wage table changes
- Employer & employee organisations tracking sector-wide developments beyond their own CAO
- Legal & compliance teams who need an audit trail of avv decisions affecting a sector
- Market researchers analysing Dutch wage trends across industries
- AI agents โ clean, flat JSON output, ideal as a tool for agentic workflows (MCP-ready)
When should an AI agent use this?
- "Has the CAO for Bouw & Infra changed recently, and what's the new wage increase?"
- "Which CAOs got a wijziging (amendment) or verlenging (extension) published in the Staatscourant this month?"
- "What's the current looptijd (validity period) of the Sociaal Werk, Welzijn & Maatschappelijke Dienstverlening CAO?"
- "Are there any pending avv requests (verzoek) for the Metaal sector that haven't been decided yet?"
- "List all new algemeenverbindendverklaring decisions (nieuwe_avv) published since January 2026."
- "Did any CAO wage-increase percentage change for a sector I'm already tracking, compared to last week's run?"
What data do you get?
Each result is one Staatscourant avv-publication:
{"id": "stcrt-2025-6395","title": "Besluit van de Minister van Sociale Zaken en Werkgelegenheid van 19 maart 2025 tot wijziging van het besluit tot algemeenverbindendverklaring van bepalingen van de collectieve arbeidsovereenkomst Sociaal Werk, Welzijn & Maatschappelijke Dienstverlening","recordType": "wijziging","caoNaam": "Sociaal Werk, Welzijn & Maatschappelijke Dienstverlening","ministerie": "Ministerie van Sociale Zaken en Werkgelegenheid","publicatiedatum": "2025-03-25","looptijd": "2025","loonsverhogingen": [{ "percentage": 1.13, "datum": "1 januari 2025" }],"urlHtml": "https://repository.overheid.nl/frbr/officielepublicaties/stcrt/2025/stcrt-2025-6395/1/html/stcrt-2025-6395.html","urlXml": "https://repository.overheid.nl/frbr/officielepublicaties/stcrt/2025/stcrt-2025-6395/1/xml/stcrt-2025-6395.xml","bron": "officielebekendmakingen","sectorEerderGezien": false,"isWijzigingSignaal": true}
recordTypeis derived from the publication's fixed legal phrasing โnieuwe_avv(fresh decision),wijziging(amendment),verlenging(extension),intrekking(revocation), orverzoek(pending request, decision not yet made)caoNaamis the sector/CAO name โ extracted from the title, or (for pendingverzoekpublications, which carry no sector name in the title) from the full-text bodylooptijdandloonsverhogingenare best-effort extractions from the official full text โ not every publication mentions a wage percentage (some only touch e.g. pension contributions), so these can be emptyisWijzigingSignaalistruefor an explicit amendment/extension, or for a fresh avv covering a sector you've already seen in a previous run (only meaningful withincrementalMode)
Input options
| Field | Description | Example |
|---|---|---|
sectorKeyword | Free-text filter on the full-text index | "Bouw", "Metaal", "Horeca" |
publishedAfter | Only publications from this date | "2026-01-01" |
recordTypes | Which publication types to include | ["nieuwe_avv", "wijziging"] |
maxResults | Cap the number of results | 100 |
incrementalMode | Only new items since previous run + flag previously-seen sectors | true |
Typical use cases
Daily monitoring feed for a payroll provider, wijziging-alerts only:
{"recordTypes": ["wijziging", "verlenging"],"incrementalMode": true}
Track one sector's CAO history:
{"sectorKeyword": "Bouw & Infra","maxResults": 50}
All new avv decisions since a given date:
{"recordTypes": ["nieuwe_avv"],"publishedAfter": "2026-01-01"}
Scheduling & integrations
- Schedules โ run weekly and get only new/changed CAO publications
- Integrations โ push results to Google Sheets, Slack, Zapier, Make, or any webhook
- API โ fetch the dataset as JSON, CSV or Excel from your own code
- MCP โ expose this actor as a tool for AI agents (Claude, Cursor, and other MCP clients)
Data source & legality
This actor uses the official public SRU API of the Dutch government (KOOP / repository.overheid.nl), the same source behind zoek.officielebekendmakingen.nl and the Staatscourant.
- โ No scraping of protected websites โ official open data API only, no login, no ToS conflicts
- โ Sector-wide agreements between employer and employee organisations โ no personal data, no natural persons identified
- โ ๏ธ
looptijdandloonsverhogingenare extracted from free text with regular expressions. They are informational โ always consult the official publication (urlHtml) for legally binding terms
Pricing
Pay per result: you are only charged for CAO records actually delivered, plus a small extra charge for each detected wijziging-alert (an amendment, extension, or a fresh avv for a sector you've seen before).
FAQ
How fresh is the data? Publications appear in the feed the same day SZW publishes them in the Staatscourant.
Why is caoNaam sometimes empty? A small number of publications use non-standard title phrasing that doesn't match the sector-name pattern, and the full-text fallback also found nothing. This is rare โ check urlHtml for the source in that case.
Why is loonsverhogingen often empty? Not every avv decision changes wages โ some only extend a CAO's term, or update non-wage clauses (pension contributions, working hours). An empty array is a normal, expected result.
How do I get only real changes, not pending requests? Set recordTypes to exclude "verzoek" (a verzoek is a request awaiting a ministerial decision, not yet a finalized CAO change).
Related Actors
Also by this developer โ Dutch/EU public-data actors that pair well with this one:
- NL Vergunningen & Bekendmakingen Leadfeed โ same official publication family, turned into commercial leads instead of HR/legal tracking.
- NL & EU Government Tenders Scraper โ same "official government publication โ structured feed" approach, applied to public procurement tenders.
- PDOK Adres Geocoding & Buurtdata โ Dutch address geocoding and neighbourhood demographics, useful if you need to map sector activity geographically.
Zoekwoorden: cao database, cao wijzigingen, collectieve arbeidsovereenkomst monitor, algemeenverbindendverklaring scraper, cao loonsverhoging tracker, labour agreement Netherlands, cao sector monitoring.
Keywords
cao, collective labour agreement, arbeidsvoorwaarden, avv, algemeenverbindendverklaring, hr, payroll, netherlands, wage tracker, labour law
Changelog
2026-07-12 - Documentation update
- Added a "Related Actors" section cross-linking other actors by this developer.
0.1.0 - Initial release
- Structured CAO avv-publication feed from the official Staatscourant SRU API, with recordType classification (nieuwe_avv, wijziging, verlenging, intrekking, verzoek), sector-name extraction, and best-effort looptijd/wage-increase parsing.