TMR Inclusie & Diversiteit-check — Methodologie & Audit-vastlegging
Versie: 0.1.3-mvp (woordenlijst, bijgewerkt 2026-10-02) Status: MVP — niet als juridisch-bindend advies bedoeld
Dit document legt vast HOE TMR de Inclusie & Diversiteit-check uitvoert, WAAROM deze keuzes zijn gemaakt en WELKE bronnen gebruikt zijn. Bedoeld voor:
- Klanten / D&I-officers — om onze methodologie aan management te kunnen verantwoorden
- Auditors / compliance — om de toetsing zelf te kunnen valideren
- Recruiters — om te begrijpen waarom TMR een term flag't
- Onszelf — om consistent en reproduceerbaar te blijven
1. Scope
De I&D-check toetst vacatureteksten op 9 categorieën met een eigen detector, plus 1 deelcontrole binnen gender-codering (cat 7). 2 categorieën zijn nog niet gebouwd (zie §2, "V2/later"). Hij toetst NIET het wervingsproces, AI-screening of besluitvorming — dat valt buiten de scope van de tool.
Wat we WEL meten: tekstuele kenmerken die wettelijk problematisch zijn (AWGB, Wgbl, Wgbh/cz) of breed-geadopteerde richtlijnen overschrijden (College, SER, NVP).
Wat we NIET meten: of de werkgever in praktijk discrimineert. Een tekst kan "clean" zijn maar het proces niet — daarvoor verwijzen we naar College-richtlijnen.
2. De 12 categorieën
Wettelijke kader (BLOCKERS — score-cap 60)
| Cat | Naam | Bron | Detector |
|---|---|---|---|
| 1 | Leeftijd direct | College Vacaturecheck + Wgbl + AWGB | Regex |
| 2 | Leeftijd indirect | College news 2026 + Wgbl | Wordlist |
| 5 | Etniciteit/taal-eisen | College Vacaturecheck + AWGB art. 1 jo. 5 | Wordlist |
| 6 | Handicap/gezondheid-eisen | College Vacaturecheck + Wgbh/cz | Wordlist |
Officiële richtlijnen (WARNINGS — puntenaftrek)
| Cat | Naam | Bron | Detector |
|---|---|---|---|
| 3 | Gender-codering | Sia/SER + Gaucher 2011 | Wordlist-balance |
| 4 | Genderneutrale functietitel | Taalkompas Rijk + Taalunie | Regex + wordlist |
| 7 | Vage stereotypen | College stereotypering-risico | Sub-check binnen cat 3 |
| 8 | Leesbaarheid (B1) | Taalkompas Rijk + Voor Tekst | Flesch-Douma metric |
| 9 | Salaris-transparantie | NVP Sollicitatiecode 2025 | Regex + negatieve signalen |
| 10 | Persoon-eerst taalgebruik | Taalkompas Rijk + College | Wordlist |
Waar de Rijksoverheid iets voorschrijft, staat de bron erbij (het Taalkompas van CommunicatieRijk). De grenzen die TMR daaraan koppelt — B1 als eis voor publieke functies, de bonus voor (m/v/x) — zijn een eigen richtlijn.
V2/later
| Cat | Naam | Status |
|---|---|---|
| 11 | Functierelevante eisen-ratio | LLM-detector — gepland V2 |
| 12 | AI/algoritme-disclosure | Geskipt in MVP — te ambigu om te detecteren |
3. Score-formule
Basis
- Start: 100 punten
- Per categorie: bonus / aftrek / hard-cap volgens onderstaande tabel
Hard-cap regel (Q4-A)
Bij ≥1 blocker (cat 1, 2, 5, 6) → score wordt afgekapt op 60, ongeacht andere punten.
Bonussen / aftrekken per categorie
| Cat | Score-impact |
|---|---|
| 1 | Hard-cap 60 indien hit |
| 2 | Hard-cap 60 indien hit |
| 3 | -10 indien gender-imbalans (≥3 masc OR ratio ≥2:1) |
| 4 | +5 bij (m/v/x), +2 bij (m/v), -5 indien afwezig, -10 per biased function-title |
| 5 | Hard-cap 60 indien hit |
| 6 | Hard-cap 60 indien hit |
| 8 | -10 indien Flesch-Douma < 60 EN sector publiek/uitvoerend |
| 9 | -5 indien geen concrete salarisindicatie |
| 10 | -3 per overtreding, max -15 |
Score-labels
- ≥80: Excellent (geen blockers, sterke balans op alle assen)
- 60-79: Goed (geen blockers, kleine warnings)
- <60 OF ≥1 blocker: Aandacht nodig (wettelijk problematisch of veel issues)
Belangrijk: bij blockers wordt het label ALTIJD "aandacht-nodig", ook als de numerieke score 60 is. Een wettelijk problematische term mag niet als "goed" worden gepresenteerd.
4. Detector-werkwijze
4.1 Regex-detectors (cat 1, 4, 9)
Patroon-matching met word-boundary. Zie de exacte regex in
src/lib/inclusion-diversity/bias-words.nl.json. Voorbeelden:
\b(maximaal|max\.?)\s+\d{1,2}\s*(jaar|jr)\bvoor cat 1.
4.2 Wordlist-detectors (cat 2, 5, 6, 10)
Eén combined regex met alle termen + Dutch suffix-tolerantie (max 8 trailing letters). Voorbeeld: term "stressbestendig" matcht ook "stressbestendige" / "stressbestendigheid".
4.3 Gender-codering (cat 3 + sub-check 7)
Telt voorkomens van masculien (46 woorden) en feminien (38 woorden) gecodeerde termen. Triggert warning bij:
masculineCount ≥ 3(sub-check cat 7)- OF
masculine/feminine ratio ≥ 2.0
4.4 Leesbaarheid (cat 8)
Flesch-Douma formule (NL-aanpassing van Flesch Reading Ease):
score = 206.835 - (0.93 × gem.zinslengte) - (77 × gem.lettergreep/woord)
- ≥60 → B1
- 50-60 → B2
- <50 → C1+
Deze koppeling van Flesch-Douma-scores aan ERK-niveaus is een eigen indeling van TMR: we vonden geen bron die deze scores aan B1, B2 of C1 koppelt. Waarom B1 de maat is: volgens het Taalkompas van de Rijksoverheid is taal op B1-niveau "voor ongeveer 80% van de volwassen lezers niet te moeilijk" (CommunicatieRijk, Taalniveaus).
Conditioneel: alleen score-aftrek bij overheid/zorg/onderwijs/uitvoerend. Voor specialistische functies (developer, jurist) is B2/C1 acceptabel — toont info-finding zonder aftrek.
4.5 Genderneutrale functietitel (cat 4)
Detecteert (m/v/x) of (m/v) in eerste 500 chars + biased function-title-list ("verkoopmedewerkster", "secretaresse", etc.).
5. Hybride detector-flow (Q5-C)
Bij elke vondst krijgt de recruiter:
- Severity-icoon (blocker / warning / info)
- Matched term in mono-stijl
- Suggestion ("Vervang door X")
- "Waarom?"-uitklap met:
- Rationale (1-zin context)
- Bron-cards: authority + title + URL (klikbaar)
- "OK in context"-knop voor
dismissible: truefindings (warnings) — niet voor blockers
Recruiter behoudt agency: hij beslist of een match in zijn context OK is. Blockers zijn altijd niet-dismissable.
6. Bronnen-database (citations.json)
22 bronnen, in drie groepen:
Wetten
- AWGB art. 1 jo. 5 (begrippen; verbod op onderscheid bij werving)
- Wgbl (leeftijdsdiscriminatie)
- Wgbh/cz (handicap/chronische ziekte)
- AI-Verordening 2024/1689, gewijzigd door Verordening (EU) 2026/1744
- Wetsvoorstel implementatie richtlijn loontransparantie (in behandeling, zie §12)
Officiële richtlijnen
- College voor de Rechten van de Mens (Vacaturecheck, news 2026, Q&A AI, oordelen-database)
- SER Diversiteit in Bedrijf (Charter)
- RijkRecruitment / Werken voor Nederland (D&I)
- Taalkompas van de Rijksoverheid (Taalniveaus, Genderbewust, Mens centraal)
- Voor Tekst (Rijksleverancier 2022–2024; contract beëindigd na faillissement)
- NVP Sollicitatiecode 2025 (vernieuwd 2-9-2025)
- Taalunie (taal & gender)
- ABU (uitzendsector antidiscriminatie)
Onderzoek
- Sia Partners 13.900 NL-vacatures (2020)
- Gaucher, Friesen & Kay (2011)
- TNO rapport 2021 + TNO blog 2021
Per bron: type, authority, title, url, summary, publishedDate,
lastChecked. Alle URLs gecontroleerd op datum vermeld in lastChecked.
7. Belangrijke design-beslissingen
Q1: Onderdeel van de vacature-analyse
De check draait binnen de vacature-analyse, in de zijbalk van /vacature-result. Een losse
check op /vacature-id-check bieden we sinds 12 mei 2026 niet meer aan.
Q3: Alleen voor klanten
De check zelf draait alleen voor ingelogde TMR-gebruikers; er is geen openbare versie. Deze verantwoording is wél openbaar, zodat iedereen kan nagaan hoe de check werkt.
Q4: Hard-cap 60
Eén blocker → max 60. Niet 40 (te hard), niet "alleen aftrek" (te zacht). Geeft recruiter motivatie om te fixen vóór publicatie.
Q5: Hybride detector
Regex-hit + recruiter-context-knop. Geen LLM-call voor base-detection (deterministisch + goedkoop + uitlegbaar).
Q7: Geen "Fix alles"-knop
Alleen per-check suggesties. Past bij BALANS-MODEL principe (geen aggressieve auto-rewrite).
Q8: Bron prominent in uitklap
Citaat-cards met authority + title + summary + klikbare URL. Niet alleen "i"-icoon.
Q14: Eigen open-source NL-woordenlijst
Onder MIT-licentie. Reden: marktgap (we vonden in september 2026 geen open-source Nederlandse gender-decoder) + citeerbaarheid kern-USP + thought-leadership-kans voor TMR.
Q15: AI-disclosure detector geskipt
Te ambigu om te detecteren of werkgever AI inzet — alleen of de tekst het vermeldt.
8. Onderhoud & versioning
Bias-woordenlijst-versie
bias-words.nl.json.$version (semver). Verhogen bij elke wijziging:
- Patch (0.1.0 → 0.1.1): typo, suggestion-tekst
- Minor (0.1.0 → 0.2.0): nieuwe term, categorie-uitbreiding
- Major (0.1.0 → 1.0.0): score-formule wijzigt, nieuwe categorie
Citations.json onderhoud
lastChecked-datum per bron. Maandelijks gecontroleerd:
- URL nog actief, op hetzelfde domein en over hetzelfde onderwerp?
- Inhoud van richtlijn/oordeel onveranderd?
Toekomstig: College-oordelen-scraper
Geplande quartaal-cron in src/lib/inclusion-diversity/scraper/ die
oordelen.mensenrechten.nl doorzoekt op nieuwe werving-oordelen → stelt
nieuwe termen voor in PR-vorm. Status: niet geïmplementeerd in MVP.
Versie-lock per analyse
Elk IDCheckResult bevat wordlistVersion. Hierdoor is achteraf reproduceerbaar
welke woordenlijst-versie is gebruikt — belangrijk voor audit.
9. Audit-trail
Elk gegenereerd rapport (web + PDF) toont:
- Datum + tijd van analyse (
analyzedAtISO) - Bias-woordenlijst-versie
- Per finding: bron-keys naar
citations.json - Score-breakdown per categorie (sub-score + impact)
PDF-rapporten zijn A4-printbaar voor compliance-archivering.
10. Beperkingen & disclaimers
Wat de tool NIET kan
- Niet juridisch-bindend: TMR's score is een eerste-lijns hulpmiddel. Bij twijfel: raadpleeg het College voor de Rechten van de Mens of een arbeidsrechtsadvocaat.
- Geen contextueel oordeel: regex/wordlist matching kan false-positives geven bij ironisch/citaat-gebruik. Recruiter blijft eindverantwoordelijk.
- Geen procesaudit: de tool toetst alleen tekst. Het wervingsproces zelf (selectie, AI-screening) valt buiten scope.
- Sectorale blinde-vlekken: woordenlijst is generiek. "Fysiek belastbaar" is voor zorg/bouw OK, voor kantoor problematisch — recruiter moet zelf nuanceren.
Bekende beperkingen MVP
- Geen sector-specifieke woordenlijsten (V2)
- Geen LLM-eisen-ratio detector (V2)
- Geen org-dashboard (V2)
- Geen College-oordelen-scraper (V2)
- Geen branche-uitbreiding zorg/IT/onderwijs (V2)
- Geen EN-versie (V3)
11. Test-coverage
Smoke-tests in tests/unit/inclusion-diversity/id-check.test.ts:
- Clean vacancy → score ≥75, geen blockers
- Blocker vacancy ("max 35 jaar") → score ≤60, blocker detected, juiste bronkey
- Many-issues vacancy → meerdere categorieën met findings, score ≤60
- Edge cases: lege string, korte tekst, unicode
CI-check: npx vitest run tests/unit/inclusion-diversity/.
12. Wettelijk + ethisch kader
Geldend Nederlands recht
Stand per 2 oktober 2026.
- AWGB (1994) — het verbod bij werving staat in art. 5 lid 1 sub a, de begrippen in art. 1
- Wgbl (2004)
- Wgbh/cz (2003)
- AI-Verordening 2024/1689 (gefaseerd 2025–2028). De transparantieplichten van art. 50 gelden sinds 2 augustus 2026. De verplichtingen voor AI-systemen met een hoog risico uit bijlage III — waaronder werving en selectie — gelden vanaf 2 december 2027, voor hoog-risico-AI in producten vanaf 2 augustus 2028 (Verordening (EU) 2026/1744 van 8 juli 2026).
NB: de I&D-check zelf is geen hoog-risico-AI-systeem onder de AI-Verordening: het betreft deterministische tekstanalyse op functieniveau (regex/woordenlijst, geen LLM) zonder besluitvorming over of beoordeling van natuurlijke personen. De verwijzing naar de AI-Verordening dient als context voor het bredere wervingsdomein.
NIET geldend
- Wet 35.673 (Wet toezicht gelijke kansen werving en selectie) — verworpen door Eerste Kamer op 26-3-2024. Opvolger 36908 (initiatiefwet Ergin/Van Baarle, ingediend 3 maart 2026) wacht op het advies van de Raad van State (stand per 2 oktober 2026).
EU-loontransparantierichtlijn (2023/970) — status
Stand per 2 oktober 2026.
- Omzettingsdeadline EU: 7 juni 2026. Nederland heeft deze deadline niet gehaald; de Europese Commissie heeft aangegeven geen uitstel te accepteren.
- Nederlandse implementatie: Wetsvoorstel implementatie Richtlijn loontransparantie mannen en vrouwen (36949), ingediend bij de Tweede Kamer op 21 mei 2026. De plenaire behandeling in de Tweede Kamer staat gepland op 7 december 2026 en 11 januari 2027; daarna volgt de Eerste Kamer. Het kabinet streeft nog naar 1 januari 2027, maar met dit schema is die datum niet haalbaar. Een nieuwe officiële datum is niet bekend.
- Tussenperiode (7 juni 2026 – inwerkingtreding NL-wet): de richtlijn geldt, maar is nog niet omgezet in Nederlands recht. Voor private werkgevers is de impact in deze periode beperkt. Voor (semi)overheidswerkgevers kan de richtlijn directe werking hebben; de precieze implicaties daarvan zijn nog niet uitgekristalliseerd.
- Gevolg voor cat 9 (salaris-transparantie): cat 9 blijft een WARNING en wordt niet verzwaard naar blocker. De richtlijn vereist salarisinformatie aan de sollicitant vóór het sollicitatiegesprek — in de vacaturetekst óf bijvoorbeeld in de gespreksuitnodiging. Afwezigheid van een salarisindicatie in de tekst is daarom op zichzelf geen overtreding. De rationale bij cat 9 verwijst naar deze nuance. Herbeoordeling van de categorie-zwaarte volgt zodra de Nederlandse implementatiewet definitief is.
Deze statusparagraaf wordt bij elke maandelijkse controle (zie §8) gecontroleerd en bijgewerkt, net als de bronnen in citations.json.
13. Contact + bijdragen
- Bug-reports: TMR support
- Bijdragen aan woordenlijst: PR met bronvermelding (College-oordeel of peer-reviewed onderzoek vereist)
- Audit-vragen: TMR product owner
Versie van dit document: zie git-log van docs/inclusion-diversity-methodology.md.