Software-engineering-cv’s falen bij ATS-screening voornamelijk door onnauwkeurige tech-stack-opmaak. Programmeertalen, frameworks en tools moeten exact worden weergegeven zoals ze worden benoemd in technische documentatie: “Python” niet “python,” “Node.js” niet “NodeJS,” “Go” naast “Golang” omdat beide voorkomen in vacatureteksten. Engineering-ATS-systemen wegen ook schaalsindicatoren mee - bediende gebruikers, doorvoer, datavolume - dus het opnemen van deze cijfers in ervaringspunten verbetert de score merkbaar.
Software-engineeringwerving heeft een van de hoogste ATS-afwijzingspercentages van alle vakgebieden. De reden is geen gebrek aan gekwalificeerde kandidaten - het is dat engineering-cv’s de neiging hebben opmaak- en zoekwoordproblemen te hebben die specifiek zijn voor de manier waarop ontwikkelaars over hun werk schrijven. Het begrijpen van deze patronen verandert de manier waarop je je ervaring presenteert.
Hoe engineering-ATS-systemen daadwerkelijk werken
De meeste grote techbedrijven gebruiken Greenhouse, Lever of Workday voor hun ATS, met aangepaste configuratie voor technische functiescreening. Engineering-specifieke configuraties voegen substantieel gewicht toe aan:
- Programmeertalen (exacte namen zijn belangrijk)
- Frameworks en bibliotheken
- Cloudplatforms en -services
- Ontwikkeltools en -methodologieën
- Systeemschaalsindicatoren (gebruikers, doorvoer, datavolume)
Deze systemen zijn ook steeds vaker geĂŻntegreerd met GitHub, waar een recruiter je repositorygegevens kan ophalen als secundair signaal. Maar de primaire screening is nog steeds tekstgebaseerd, en die tekst is je cv.
Tech-stack-opmaak: de specifieke details die ertoe doen
Generieke technologiebeschrijvingen zorgen meer dan in welk ander vakgebied dan ook voor lage ATS-scores in engineering-functies. Elke tool, taal en elk framework moet exact worden benoemd zoals het verschijnt in technische documentatie en vacatureteksten.
Taalbenamingen die exact zo moeten worden gebruikt:
- Python (niet “python” - kapitalisering is van belang in sommige parsers)
- JavaScript en TypeScript (niet alleen “JS” en “TS” - neem minimaal één keer de volledige naam op)
- Go (neem ook “Golang” op omdat vacatureteksten beide gebruiken)
- C++ (neem zowel “C++” als “C Plus Plus” op in je tekst, omdat sommige parsers moeite hebben met speciale tekens)
- Rust (niet “Rust-programmeertaal” - gewoon Rust)
- Swift (zorg dat de context duidelijk maakt dat dit Apple’s taal is, niet “swift” als bijvoeglijk naamwoord)
Frameworkbenamingen:
Neem altijd het ecosysteem op naast de frameworknaam:
- “React (JavaScript)” niet alleen “React” als je solliciteert naar functies waarbij React Native bedoeld kan worden
- “Next.js” niet “NextJS” - de officiële spelling gebruikt de punt
- “Node.js” niet “NodeJS” of “Node”
- “Express.js” of “Express” - beide worden veel gebruikt en ATS-systemen herkennen beide
- “FastAPI” (Python) niet “fast API” - het is één woord
- “Spring Boot” niet “SpringBoot” - het zijn twee woorden in de officiële documentatie
- “Ruby on Rails” voor het framework, “Rails” acceptabel als afkorting na de eerste vermelding
Cloud en infrastructuur:
- AWS (Amazon Web Services) - neem beide op bij de eerste vermelding
- GCP (Google Cloud Platform) of “Google Cloud” - beide worden gebruikt; neem één keer de volledige naam op
- Azure (Microsoft Azure) - beide bij de eerste vermelding
- EC2, S3, Lambda, EKS, RDS, DynamoDB - AWS-services gebruiken exact de juiste hoofdletters
- GKE (Google Kubernetes Engine), Cloud Run, BigQuery, Pub/Sub
- Azure Functions, Azure DevOps, AKS (Azure Kubernetes Service)
- Kubernetes (niet alleen “k8s” - schrijf “Kubernetes (k8s)” zodat beide vormen doorzoekbaar zijn)
- Docker, Terraform, Helm, Ansible - exacte namen, correct gekapitaliseerd
Versienummers: wel of niet opnemen?
Het advies over versienummers is afhankelijk van de technologie en de functie.
Neem versienummers op wanneer ze expertise in een specifieke generatie van de technologie signaleren:
- React 18 (gelijktijdige functies zijn distinct van React 16-kennis)
- Python 3.11+ (async-functies verschillen van Python 2.x)
- Java 17 of Java 21 (LTS-versies signaleren bewustzijn van actuele enterprise Java)
- PostgreSQL 15 (partitionering, logische replicatiefuncties zijn versiespecifiek)
- Kubernetes 1.28 (kennis van upgradepad signaleert operationele diepgang)
Laat versienummers weg wanneer ze voor de hand liggend zijn of je cv zullen dateren:
- Schrijf niet “Python 2.7” als je werk recent was - het signaleert dat je niet op actuele Python zit
- Schrijf niet “React 15” - het signaleert dat je niet hebt bijgehouden
- Schrijf niet “Node.js v10” - hetzelfde probleem
Praktische regel: Neem versienummers op wanneer het versienummer iets zinvols zegt over de diepte of actualiteit van je kennis. Laat ze weg wanneer ze je dateren of geen informatie toevoegen.
Formatteer versies consistent: “Python 3.11”, “PostgreSQL 15”, “Kubernetes 1.28”. Schrijf niet “Python v3.11” of “Python>=3.11” - het formaat lijkt op requirementsbestanden, niet op cv-inhoud, en parsers verwerken het inconsistent.
GitHub en open source: hoe je het opmaakt
Je GitHub-URL moet in je contactsectie staan als een standaard hyperlink: “github.com/jouwnaam”. Schrijf niet “Mijn GitHub: github.com/jouwnaam” - het voorvoegsel “Mijn GitHub” is overbodig en sommige parsers extraheren de voorvoegstekst samen met de URL, wat rommelige gegevens oplevert.
Neem voor open source-bijdragen deze op in je ervaringsectie of een aparte sectie “Projecten”:
Wat je schrijft:
“12 gemergte PR’s bijgedragen aan het Django REST framework-project (github.com/encode/django-rest-framework), primair gericht op OpenAPI-schemageneratie en prestatieoptimalisatie.”
Dit formaat vertelt de ATS: je kent Django REST framework (zoekwoordtreffer), je kent OpenAPI (zoekwoordtreffer), je hebt meetbare bijdragegeschiedenis (12 PR’s), en het verwijst naar een verifieerbaar openbaar record.
Wat je niet schrijft:
“Actieve GitHub-bijdrager” - dit vertelt de ATS niets specifieks en de ATS scoort niets.
Neem voor je eigen projecten de technologiestack expliciet op:
“Real-time collaboratieve code-editor gebouwd met React, WebSockets (Socket.io), Monaco Editor en Node.js/Express-backend, gedeployed op AWS ECS. 340 GitHub-sterren. (github.com/jouwnaam/projectnaam)”
Het sterrentelling is een geloofwaardigheidssignaal voor menselijke reviewers. De technologielijst is een zoekwoordcluster voor ATS-scoring.
Systeemschaal: hoe je erover schrijft
Engineering-ATS-systemen geven extra gewicht aan schaalsindicatoren. Een software-engineer die heeft gewerkt op de schaal van 10 miljoen dagelijkse actieve gebruikers verschilt van iemand die met 10.000 gebruikers heeft gewerkt, en de ATS-scoring voor senior- en staffentechnicus-functies weerspiegelt dit.
Schrijf schaal expliciet in je punten:
- “Gedistribueerde cachinglaag ontworpen die de databasebelasting met 70% verminderde voor een service die 45M dagelijkse verzoeken verwerkt”
- “Monolithische applicatie gemigreerd naar microservicesarchitectuur; het systeem verwerkt nu 2TB dagelijkse eventgegevens met 99,97% uptime”
- “Prestatieoptimalisatieproject geleid dat de API p99-latentie reduceerde van 1,2s naar 180ms bij 200K RPS”
De cijfers hier zijn niet alleen voor menselijke lezers. De ATS identificeert zinnen zoals “45M dagelijkse verzoeken,” “2TB,” “99,97% uptime” en “200K RPS” als schaalsindicatoren en weegt ze dienovereenkomstig voor seniorfuncties.
De vaardighedensectie voor engineering-cv’s
Je vaardighedensectie moet per categorie worden georganiseerd, niet als een vlakke lijst. Georganiseerde secties worden beter geparseerd en zijn gemakkelijker te scannen voor menselijke reviewers.
Aanbevolen structuur:
Talen: Python, Go, TypeScript, SQL, Bash
Frameworks: FastAPI, React, Next.js, gRPC
Databases: PostgreSQL, Redis, DynamoDB, Elasticsearch
Cloud & Infrastructuur: AWS (EC2, Lambda, EKS, RDS), Terraform, Kubernetes, Docker
Tools: GitHub Actions, DataDog, PagerDuty, Confluence, Jira
Methodologieën: Agile/Scrum, testgestuurde ontwikkeling (TDD), CI/CD, microservicesarchitectuur
Vermeld niet elke tool die je ooit hebt aangeraakt. Vermeld de tools waarmee je genoeg ervaring hebt om er intelligent over te discussiëren in een sollicitatiegesprek. Een vaardighedensectie met 40 technologieën zonder context lijkt op zoekwoordstuffing, en moderne ATS-systemen met AI-ondersteunde screening merken de mismatch op tussen zoekwoorddichtheid en contextueel bewijs in je punten.
De regel: als een technologie in je vaardighedensectie staat, moet het ook in minstens één punt in je ervaringsectie voorkomen, dat toont hoe je het hebt gebruikt.
Methodologische zoekwoorden die engineering-ATS-systemen wegen
Naast tools en talen bevatten engineering-vacatureteksten consequent methodologische termen die ATS-systemen scoren:
- Agile (en Agile/Scrum specifiek - ze worden vaak afzonderlijk vermeld)
- TDD (testgestuurde ontwikkeling) - schrijf beide
- BDD (gedragsgestuurde ontwikkeling)
- CI/CD (schrijf het zo, niet alleen “continue integratie/continue levering”)
- DevOps
- SRE (site reliability engineering)
- Systeemontwerp
- Gedistribueerde systemen
- Microservices
- Serverless
- Infrastructure as Code (IaC)
- Observability (distinct van “monitoring” in moderne engineeringcultuur)
- Code review
- Pair programming
Neem de termen op die nauwkeurig beschrijven hoe jij werkt. Voor functies bij bedrijven met volwassen engineeringpraktijken (Google, Meta, Stripe, Airbnb en vergelijkbare), dragen deze methodologische termen significant gewicht bij ATS-scoring, omdat ze afstemming signaleren met hoe die teams werken.
Wat je samenvatting moet zeggen
Voor software-engineers wordt de samenvattingssectie vaak overgeslagen of geschreven als generieke boilerplate. Geen van beide is optimaal. Een goed geschreven samenvatting geeft de ATS een dicht zoekwoordcluster bovenaan het document waar het scoringsgewicht het hoogst is.
Sjabloon (pas aan op je werkelijke ervaring):
“Software-engineer met 7 jaar backend- en gedistribueerde systeemervaring, gespecialiseerd in hoge-doorvoer datapijplijnen en API-ontwerp. Gewerkt met Python, Go en PostgreSQL op schaal in consumentgerichte en B2B-SaaS-producten. Ervaren met AWS-infrastructuur (ECS, Lambda, RDS), Kubernetes-gebaseerde implementaties en CI/CD via GitHub Actions. Momenteel gericht op senior backend-functies in fintech of data-infrastructuur.”
Deze samenvatting bevat: niveausignaal (7 jaar), specialisatie (gedistribueerde systemen, datapijplijnen, API-ontwerp), talen (Python, Go), database (PostgreSQL), cloud (AWS-services expliciet benoemd), implementatie (Kubernetes), tooling (GitHub Actions) en functiedoelstelling (senior backend, fintech/data-infrastructuur).
Elke term in die samenvatting is een ATS-zoekwoordtreffer. De samenvatting die zo is geschreven - specifiek, gekwalificeerd, gericht - presteert tien keer beter bij ATS-scoring dan “Gepassioneerde software-engineer met een liefde voor probleemoplossing.”
GitHub-activiteit als secundair signaal
Sommige ATS-platforms (Greenhouse in het bijzonder) hebben integraties die GitHub-gegevens ophalen wanneer een kandidaat dat autoriseert, of wanneer hun profiel-URL in de sollicitatie staat. Dit is nog steeds secundair aan cv-tekst, maar het is de moeite waard te weten.
Recruiters die GitHub als signaal gebruiken, kijken naar: bijdragefrequentie (actief in de afgelopen 12 maanden), repositorykwaliteit (gedocumenteerd, getest, echte projecten) en bijdrage aan bekende open source-projecten.
Je kunt je GitHub niet van de ene op de andere dag optimaliseren. Maar je kunt ervoor zorgen dat je cv er correct naar linkt en dat je gepinde repositories README-bestanden bevatten met technologiebeschrijvingen - die beschrijvingen zijn doorzoekbaar als tekst en kunnen worden geĂŻndexeerd.
Voor staff- en principal engineer-functies wordt een GitHub- of technisch portfoliolink in je contactsectie verwacht. Voor junior- en middelniveaufuncties is het nuttig maar niet vereist.
Voer je engineering-cv in door ATS CV Checker met de specifieke vacaturetekst voordat je solliciteert. Engineering-vacatureteksten zijn precies over technische vereisten, en de kloof tussen je huidige zoekwoorddekking en wat de functie vereist, is bijna altijd in minder dan 30 minuten oplosbaar.