Test version: the method has not yet been checked against a manually labelled sample and some sources still contain example values. Method
How are the figures made?
Being open about the method is the main aim of this site. This page explains what we do, why, and where the figures fall short.
In short
Every week we collect new online vacancies through Adzuna, a job search engine with a public API.
We remove personal data, drop duplicate vacancies and decide for each vacancy whether it is an ICT role, for which level, which programme it fits and which skills it mentions.
We only publish monthly counts, never the vacancies themselves.
Official figures from CBS, and graduate figures from the Landelijk Centrum Studiekeuze (HBO-Monitor, CBS Microdata, ROA), are shown alongside for comparison.
Every figure shows its source, date and number of records. Figures based on fewer than 30 records are marked as indicative.
Adzuna collects vacancies from thousands of Dutch job sites and employers. Every week we request the vacancies of the past 8 days: everything in Adzuna's IT category, plus a search for ICT words (such as developer, devops, PLC, information analyst) in all other categories, because many ICT vacancies end up there.
For each vacancy we receive the title, employer, place, date, the salary if stated, and only the start of the text (about 500 characters).
Before storing anything we remove e-mail addresses, phone numbers and names of contact persons. Vacancy texts are kept no longer than the licence allows; after that only the counts remain. We do not collect anything from sites that forbid it, such as LinkedIn or Indeed.
Duplicate vacancies
The same vacancy often appears several times, for example on different sites or because a recruiter reposts it. We count a vacancy once if title, employer and place are the same and the postings are within 30 days of each other. For titles we ignore capitals, punctuation and additions such as (m/f/x). A vacancy still open after 30 days counts again in the next month.
Some recruitment agencies post one vacancy in many places at once, sometimes in villages where the work is not. If the same title from the same employer appears in 3 or more places within 7 days, we count it as one vacancy. Because the real workplace is then unknown, such a vacancy counts only in the national figure, not in a province or region. Two places do count as two vacancies: that can be a company with two offices.
What counts as an ICT vacancy?
A vacancy counts as an ICT vacancy if the job title matches one of our role families (see Programmes), or if Adzuna placed it in the IT category and the text mentions a technical skill. Titles such as technician, work planner, account manager or recruiter never count through that second route, even when they are in the IT category.
Level
We classify each vacancy as internship, junior, medior, senior or unknown:
First we look at the title: words such as internship, graduation project, intern, junior, starter, trainee, medior, senior or lead.
If the title names several levels (for example "Junior/Medior developer"), we choose the lowest: the vacancy is open to that level.
If the title says nothing, we search the text for such words, and then for the required years of experience: 0–2 years is junior, 3–5 medior, 6 or more senior.
If we find nothing, the level is unknown.
Internship + junior is internship and junior combined: the vacancies certainly meant for students and starters. Because we only see the start of the text, the level of many vacancies is unknown. Some of those are also open to starters.
Programmes
We link vacancies to programmes through role families: groups of job titles a programme prepares for. A vacancy can fit more than one programme, or none. This is our own classification, not that of any university.
Role family
Computer Science
Business IT & Management
Computer Engineering
Software developer
✓yes
no
no
Web and mobile developer
✓yes
no
no
Software and IT architect
✓yes
no
no
Data and AI engineer
✓yes
no
no
DevOps and cloud engineer
✓yes
no
✓yes
Security specialist
✓yes
no
✓yes
Tester / QA engineer
✓yes
no
no
Game developer
✓yes
no
no
Business or functional analyst
no
✓yes
no
Functional application manager
no
✓yes
no
Technical application specialist
✓yes
✓yes
no
IT consultant
no
✓yes
no
Data and BI analyst
no
✓yes
no
Product owner / IT project lead
no
✓yes
no
IT auditor
no
✓yes
no
Embedded software engineer
no
no
✓yes
IoT engineer
no
no
✓yes
Industrial automation engineer
no
no
✓yes
Network and infrastructure engineer
no
no
✓yes
IT support and service desk
no
no
no
Skills
We recognise 64 skills with fixed search patterns in Dutch and English, in the title and the start of the text. 61 of them are linked to the European ESCO skills classification, so they can be compared with other sources. ESCO has no concept of its own for newer tools (such as Docker, Kubernetes or Go); those are linked to a broader concept or not at all.
The percentage next to a skill is the share of vacancies that mention it. Because we only see about 500 characters per vacancy, the true share is higher; the ranking is more reliable than the percentages.
Many vacancies state no salary, and those that do are not always representative. Postings also do not say whether an amount is per year, month, day or hour. Amounts from €12,000 are read as annual salary, amounts between €1,000 and €12,000 as monthly salary; lower amounts (day or hour rates) and amounts above €250,000 are left out. Salaries estimated by Adzuna itself are not used. We show gross per month: the annual amount divided by 12, rounded to €50. Medians are accurate to about €100 per month (below €2,500 a month to about €25).
Internship allowances are handled separately. An internship lasts a few months, so an allowance is always stated per month. For internship postings we only count amounts between €100 and €2,000 as a monthly allowance; other amounts (hourly rates, or a salary on a posting we wrongly classified as an internship) are left out. Internship allowances are never counted in the salaries of other levels, including 'all levels'. Many internship postings state no allowance at all.
Graduate figures (starting salary, job at level, time to a job) come from the Studiekeuzedatabase of the Landelijk Centrum Studiekeuze, as shown on Studiekeuze123. The estimated starting salary comes from CBS Microdata, job at level and in field from the HBO-Monitor (an alumni survey, about a year and a half after graduating). They are calculated nationally per group of related programmes, which is why Informatica and Technische Informatica have the same figures. They are separate from the vacancy figures.
Trends
A skill or role is called rising or declining when the share of vacancies mentioning it changes between the recent half of the chosen period and the half before. We compare shares, not counts, so a busy month does not make everything rise. Each half must span at least 3 months and a skill must occur at least 10 times. Lines of counts show complete months only: the current month and the month the series began would show a false drop or rise.
Regions
We use the place Adzuna provides to link a vacancy to a municipality, labour market region and province. Vacancies with only 'Netherlands' as place (often remote work or several locations) count in the national figure, but in no region.
Small numbers
A percentage or salary based on a handful of vacancies can be chance. Figures based on fewer than 30 records are marked as indicative (◔). For small regions, prefer the province or the whole country, or a longer period.
Comparison with CBS
CBS estimates, through a survey of companies, how many vacancies are open at a given moment, per sector. The 'Information and communication' sector also includes non-ICT roles at ICT companies, and misses ICT roles at, for example, banks and government. We count new online vacancies for ICT roles in all sectors. The numbers are therefore not equal and need not be. Compare the direction of both series instead: are they both rising or falling?
Known limitations
A vacancy is not a hire. Some vacancies are never filled, others are ongoing recruitment (ghost vacancies).
Recruitment agencies sometimes post the same role often and with slightly different titles. Deduplication does not always catch that.
We only see about 500 characters per vacancy. We miss skills and experience requirements further down, and the level of many vacancies is unknown.
Many vacancies state no salary.
We have one vacancy source. Adzuna covers a lot, but not everything: vacancies shared only on LinkedIn or through networks are not seen.
Classifying ICT, level, programme and skills is rule-based and makes mistakes. See Accuracy.
The vacancy series starts at our first collection date; no public historical vacancy dataset exists. Trends over years only become visible later.
Numbers in small regions are low; look at the province or the whole country instead.
Forecasts (ROA) are scenarios with uncertainty, not a prediction of your chances.
Accuracy
Not measured yet. We will assess 200 vacancies by hand (is it ICT, which level, which programme) and compare them with the automatic classification. The result will be shown here, per version of the method.
Changes to the method
A change to the method can cause a break in a trend series. Those are listed here, with the date.
19 Sept 2026 · First version of the method (v0.1.0)
First version of deduplication, seniority classification, programme mapping and skill extraction, revised against the first 30 days of Adzuna data. Adzuna provides only the first ~500 characters of a posting, so skills and experience requirements further down the text are not seen. Internship allowances are counted separately and never mixed with salaries. Not yet measured against a manually labelled sample.
Classifier version: 2026.09.1 · data set 20260919T204045Z