Hoe koppel je een ATS aan je website?
Kort antwoord: er zijn vijf gangbare manieren: de careersite van je ATS op een subdomein, een widget of iframe, een vacaturefeed die je CMS inleest, een API-koppeling en een WordPress-plugin. Hoe meer de vacatures echt op je eigen site staan, hoe meer controle je hebt over vormgeving, meting en vindbaarheid, en hoe meer werk het is. Het sollicitatieformulier kies je apart: dat van het ATS, of je eigen formulier dat via de API naar het ATS schrijft. Regel daarnaast JobPosting-markup voor Google, een werkende bronregistratie en een formulier dat voldoet aan de AVG.
Nog niet gekozen tussen een eigen werkenbij-site en de careersite van je ATS? Lees dan eerst eigen werkenbij-site of ATS-careersite.
Laatst bijgewerkt: 1 oktober 2026 · Methodologie
Vijf koppelmethodes vergeleken
| Methode | Hoe het werkt | Voordelen | Nadelen | Geschikt voor |
|---|---|---|---|---|
| Careersite van het ATS op een subdomein | Het ATS host vacatures en formulier op bijvoorbeeld werkenbij.jouwbedrijf.nl, via een DNS-record (CNAME). | Snel live, geen ontwikkelwerk | Vormgeving binnen de sjablonen van de leverancier | Organisaties zonder webteam of met weinig vacatures |
| Widget of iframe | Code van het ATS op je pagina toont de vacaturelijst, soms ook het formulier. | Weinig werk, altijd actueel | Beperkte opmaak; bij een iframe staat de inhoud bij de leverancier; meten is lastiger | Een vacatureoverzicht op een bestaande site |
| Vacaturefeed (XML of JSON) | Je CMS leest de feed periodiek in en maakt per vacature een pagina. | Vacaturepagina's op je eigen domein | Webbouwer nodig; een feed werkt één kant op, dus solliciteren loopt via het ATS-formulier of een tweede koppeling | Een eigen werkenbij-site met eigen CMS |
| API-koppeling (headless) | Je site haalt vacatures op via de API en stuurt sollicitaties terug. | Volledige controle over pagina's, formulier en meting | Meeste bouw- en onderhoudswerk; beveiliging en foutafhandeling liggen bij jou | Organisaties met een webteam, veel vacatures of meerdere merken |
| WordPress-plugin | Een plugin maakt van ATS-vacatures WordPress-pagina's, soms met formulier. | Geen maatwerk, beheer in WordPress | Afhankelijk van de pluginmaker; niet elk ATS heeft er een | Werkenbij-sites op WordPress |
Meer achtergrond: hoe werkt een careersite, hoe werkt een ATS-API en ATS-integraties.
Voorbeelden per leverancier
Gecontroleerd in de documentatie van de leverancier op 30 september 2026. Alfabetisch, zonder rangorde. Ontbreekt jouw leverancier, vraag dan naar dezelfde opties.
| Leverancier | Methode | Wat de documentatie zegt |
|---|---|---|
| Greenhouse | API | Vacatures openbaar op te vragen; sollicitaties insturen vraagt een geheime sleutel en loopt via je eigen server. |
| Homerun | Widget | Embed-code voor de lijst met actieve vacatures, aan te passen in kleur, lettertype en indeling. |
| OTYS | WordPress-plugin | Eigen plugin met vacaturelijst, detailpagina's en sollicitatieformulieren. |
| Personio | Feed, API | XML-feed; solliciteren via het Personio-formulier of de Recruiting API. WordPress-plugin van een derde partij: Personio Integration Light. |
| Recruitee | Subdomein, widget, API | Careersite op eigen subdomein, JavaScript-widget, openbare Careers Site API voor vacatures en sollicitaties. |
| Teamtailor | Subdomein, widget, iframe, API | Eigen domein alleen als subdomein; vacaturewidget; sollicitatieformulier via iframe. |
Het sollicitatieformulier: van het ATS of je eigen?
Het formulier van het ATS. De kandidaat komt via een link of iframe op het formulier van de leverancier. Velden, cv-upload en ontvangstbevestiging regel je in het ATS. Nadeel: de kandidaat wisselt van omgeving, en staat het formulier op een ander domein, dan moet je meting dat volgen. Recruitee beschrijft een mengvorm: vacatures via de API op je eigen site, solliciteren op het Recruitee-formulier.
Je eigen formulier via de API. Je bepaalt vormgeving, velden en meting zelf. Validatie, bestandsupload, foutmeldingen en beveiliging liggen dan bij jou. Greenhouse waarschuwt dat de API-sleutel geheim is: post formulieren via je eigen server, anders staat de sleutel in de broncode. Bij Recruitee telt een kandidaat die via de API binnenkomt als echte sollicitatie, inclusief alle gekoppelde acties.
In beide gevallen:
- ☐ Vraag alleen wat nodig is. De AVG beperkt gegevens tot wat nodig is voor het doel.
- ☐ Vraag niets twee keer (WCAG 2.2, succescriterium 3.3.7). Leest het ATS het cv uit, laat de kandidaat dan niet overtypen.
- ☐ Houd het kort. Google noemt een sollicitatie direct (veld directApply) bij een korte, eenvoudige procedure op jouw pagina zonder onnodige tussenstappen.
- ☐ Test een storing. Ziet de kandidaat een melding, en blijft de sollicitatie bewaard?
Vacatures vindbaar in Google: Google for Jobs
Google toont vacatures in een eigen zoekervaring, volgens de documentatie (bijgewerkt 8 september 2026) ook in Nederland en België. Google leest de vacature uit JobPosting structured data. Dit moet je ATS of website leveren:
- ☐ Verplicht: title (de functietitel, niet de kop van de advertentie), description (volledige vacaturetekst), datePosted, hiringOrganization (organisatienaam, niet de vestiging) en jobLocation.
- ☐ Aanbevolen: validThrough, employmentType, identifier, baseSalary en directApply. Bij volledig thuiswerk: jobLocationType TELECOMMUTE met applicantLocationRequirements.
- ☐ Alleen op de detailpagina, niet op een overzicht met meerdere vacatures.
- ☐ Alles uit de markup staat zichtbaar op de pagina. Een salaris alleen in de code is een overtreding.
- ☐ Gesloten vacatures afmelden: validThrough in het verleden, pagina weg (404 of 410) of markup eruit. Te laat, dan kan Google een handmatige actie opleggen.
- ☐ Indexing API: Google raadt die aan voor vacaturepagina's, naast een sitemap.
- ☐ Dezelfde vacature op meerdere URL's: gebruik een canonical. Bij Recruitee blijft de standaard careersite bijvoorbeeld online als je vacatures via de API op je eigen site toont.
Bij een iframe is de vacature een apart document met een URL van de leverancier; daar staat dan ook de markup. Bij een widget: controleer waar de detailpagina staat.
Test met de Rich Results Test en de URL-inspectie in Search Console. Vraag de leverancier welke velden het ATS vult, of validThrough automatisch wordt gezet en wat er met de URL gebeurt als een vacature sluit.
Meten: UTM, bronregistratie en toestemming
UTM-parameters op elke campagnelink. Google Analytics adviseert altijd utm_source, utm_medium en utm_campaign. Spreek vaste waarden af, zoals utm_source=linkedin.
Bronregistratie in het ATS. Analytics telt bezoeken; het ATS moet de bron op de kandidaat vastleggen. Vraag of het ATS UTM-waarden overneemt. De Recruitee-widget registreert bijvoorbeeld het domein van de widget als bron.
Meten over domeinen heen. Staat het formulier op een ander domein, dan telt Google Analytics dezelfde bezoeker mogelijk twee keer. Cross-domain measurement geeft de bezoekers-ID mee via de parameter _gl, met dezelfde Google-tag op beide domeinen. Google raadt dit ook aan voor subdomeinen met een ander cookiedomein. Een iframe kan cookies van derden plaatsen; Firefox en Safari beperken die standaard, dus meten in een iframe kan onvolledig zijn.
Toestemming. Voor tracking cookies vraag je vooraf toestemming. Functionele cookies en analytische cookies met weinig gevolgen voor de privacy mogen zonder, maar je informeert bezoekers wel. De Autoriteit Persoonsgegevens houdt toezicht op cookiebanners. Dit geldt ook voor de ATS-careersite op jouw subdomein: vraag welke cookies careersite, widget of iframe plaatsen.
Privacy en AVG: checklist
- ☐ Verwerkersovereenkomst met de ATS-leverancier. Lopen sollicitaties via je eigen server of een formulierplugin, dan ook met de externe partij die dat beheert.
- ☐ Privacyverklaring bij het formulier, met onder meer doel, grondslag, ontvangers, doorgifte buiten de EU, bewaartermijn en rechten (artikel 13 AVG).
- ☐ Bewaartermijn. De NVP Sollicitatiecode: vernietigen binnen vier weken na afwijzing, tenzij anders afgesproken. Bewaar je langer, dan geeft de kandidaat na een jaar opnieuw toestemming. Automatiseer dit in het ATS.
- ☐ Talentpool met een leeg vinkje. Vooraf aangevinkt is geen toestemming (overweging 32 AVG).
- ☐ Weet waar de gegevens landen. Vraag de leverancier waar de gegevens staan. Laat bij een eigen formulier geen cv's achter in een mailbox, het CMS of de formulierplugin.
Meer hierover: ATS en de AVG.
Toegankelijkheid
- ☐ Elk veld een label, bij elkaar horende velden gegroepeerd, foutmeldingen die zeggen hoe je het oplost.
- ☐ Een iframe krijgt een title, zoals "Sollicitatieformulier", zodat schermlezers weten wat erin staat.
- ☐ Knoppen en uploadvelden groot genoeg of met genoeg ruimte eromheen (WCAG 2.2, succescriterium 2.5.8).
- ☐ Test met alleen het toetsenbord. Gebruik je het ATS-formulier, vraag dan naar het WCAG-niveau.
Wie doet wat?
| Rol | Taken |
|---|---|
| HR en recruitment | Vacatureteksten, formuliervelden, bewaartermijnen, bronnen in het ATS, testsollicitaties; privacy samen met de privacyfunctionaris |
| Marketing | Vormgeving, UTM-afspraken, Google Analytics, cookiebanner, Search Console |
| Webbouwer | DNS-record, widget of feed inbouwen, API-koppeling, markup, redirects, toegankelijkheid |
| ATS-leverancier | Careersite, feed of API, JobPosting-markup, verwerkersovereenkomst, support bij storingen |
Leg per onderdeel één eigenaar vast. Zie ook ATS-implementatie.
Stappenplan: van keuze tot livegang
- Kies de methode op basis van je site, je team en het aantal vacatures.
- Leg vast wat je nodig hebt: velden, filters, formuliervelden, UTM-waarden en bronnen in het ATS.
- Regel privacy vooraf: verwerkersovereenkomsten, privacyverklaring, bewaartermijnen en toestemmingstekst voor de talentpool.
- Bouw op een testomgeving. API-sleutels staan alleen op de server.
- Test de hele route. Solliciteer zelf op mobiel en desktop, met en zonder cv. Juiste vacature? Juiste bron? Bevestigingsmail ontvangen? Werkt alles met het toetsenbord? Geen tracking vóór toestemming? Draai de Rich Results Test.
- Test het sluiten van een vacature. Verdwijnt hij van de site, en is hij voor Google afgemeld (validThrough, 404/410 of markup weg)?
- Ga live. Dien de sitemap in, gebruik de Indexing API als je site of ATS die ondersteunt, stuur oude vacature-URL's door en zet canonicals waar vacatures dubbel staan.
- Controleer na een maand het vacaturerapport in Search Console, het bronrapport in het ATS en waar kandidaten in het formulier afhaken.
Test daarom vóór de livegang wat er gebeurt als je een vacature sluit (stap 6).
Veelgestelde vragen
Wat is de snelste manier om ATS-vacatures op mijn website te krijgen?
Een link naar de careersite van je ATS, eventueel op een subdomein, of een widget. Voor vacaturepagina's op je eigen domein heb je een feed, API of plugin nodig.
Is een iframe slecht voor SEO?
De vacature in een iframe is een apart document met een URL van de leverancier; de JobPosting-markup staat ook daar. Wil je vacaturepagina's onder je eigen domein, kies dan een feed, API of plugin.
Moet mijn ATS Google for Jobs ondersteunen?
Niet per se: de markup kan ook van je eigen site komen. Wel moet elke vacaturepagina JobPosting-markup hebben. Laat de leverancier een live vacature zien en test die met de Rich Results Test.
Mag ik mijn eigen sollicitatieformulier gebruiken?
Ja, als het ATS sollicitaties via de API aanneemt. Houd de API-sleutel op je server, sluit verwerkersovereenkomsten en sla cv's nergens anders op.
Hoe lang mag ik sollicitatiegegevens bewaren?
De NVP Sollicitatiecode gaat uit van vernietigen binnen vier weken na afwijzing, tenzij anders afgesproken. Bewaar je langer, dan geeft de kandidaat na een jaar opnieuw toestemming.