Every job posting, classified: ISCO-08 occupations, ISIC industries and skills, live on the API
Every posting in the JobsPipe index now carries an ISCO-08 occupation code, the employer's ISIC Rev.4 industry division and a curated skills profile - as raw codes plus labels, filterable on every plan. Industry coverage is 90% of half a million live postings, and a Labour Market Insights API ships alongside it. Here is what shipped, how the classification works, and why we chose UN and ILO standards over a proprietary ontology.
Dvir Atias
Founder, JobsPipe
Raw job postings tell you what one employer wants. Classified job postings tell you what the labour market is doing. As of this week, every posting in the JobsPipe index carries three classification axes: an ISCO-08 occupation unit group for the role, the employer’s ISIC Rev.4 industry division, and a curated skills profile extracted from the posting text. All three ship as raw codes plus human-readable labels, on every plan, with no schema changes to existing integrations.
What every job object now carries
"occupation_code": "2512",
"occupation_label": "Software Developers",
"isic_division": "21",
"isic_division_label": "Manufacture of basic pharmaceutical
products and pharmaceutical preparations",
"keyword_slugs": ["python", "kubernetes", "application-security",
"anthropic", "ci/cd", "devsecops"],
"technology_slugs": ["python", "kubernetes", "ci/cd"]Coverage today, measured across roughly half a million verified-open postings: industry on 90%, skills on 89%, occupations on the highest-volume titles first and climbing daily as the nightly classifier works through the long tail. Codes are strings, not integers - ISIC divisions 01 through 09 have leading zeros, and anyone joining against BLS, Eurostat or ILO reference tables will want them intact.
Three new search filters
The interesting queries are the cross-axis ones. Software engineers, but only at pharmaceutical companies:
curl -X POST https://api.jobspipe.dev/v1/jobs/search \
-H "Authorization: Bearer $JOBSPIPE_API_KEY" \
-d '{
"job_title_or": ["software engineer"],
"isic_division_or": ["21"]
}'That returns AbbVie, Genentech, Boehringer Ingelheim and Abbott - not because their postings mention pharma, but because the employer is classified. No keyword search can express that query. occupation_code_or matches 4-digit unit groups exactly and treats 1-3 digit codes as hierarchy prefixes, so {"occupation_code_or": ["25"]} returns every ICT professional. skills_or matches the curated lexicon: python, kubernetes, financial-modeling, patient-care.
And a Labour Market Insights API on top
Classification is the substrate. The point of the substrate is aggregate answers, so the Labour Market Insights API (/v1/insights) ships alongside it - ten endpoints: occupations and industries ranked by live volume, top and trending skills per occupation and per industry, advertised-compensation percentiles, skill demand trends, a salary benchmark, and an AI exposure report. Everything is measured live from the postings index over a rolling window - not modelled, not projected, counted.
A taste, from the day we shipped:
- 47.7% of Software Developer postings in the last 90 days list Python; 34% list CI/CD; 32.8% list AWS.
- 39.9% of postings from Information Services employers now carry at least one AI skill - the highest share of any industry.
- In advertising and market research, postings that ask for AI skills advertise a median of $111,000 against $88,400 for those that don’t - a 26% premium.
curl https://api.jobspipe.dev/v1/insights/technology/ai-exposure?by=industry \
-H "Authorization: Bearer $JOBSPIPE_API_KEY"How the classification works
We deliberately did not build a proprietary ontology. Pearson and Lightcast classify against taxonomies you have to license; we classify against the standards the world already publishes. ISCO-08 is the ILO’s occupation classification - 433 unit groups. ISIC Rev.4 is the UN’s industry classification - 88 divisions. Both reference files are vendored from the official sources, and the raw codes in our responses join directly against any dataset that speaks them.
The mechanics are three separate systems, because the three axes have different shapes:
- Skills are deterministic: a curated lexicon of 450+ skills with aliases and veto phrases, matched with word-boundary rules at ingestion. Veto phrases matter more than you’d think - “excel at communication” is not Microsoft Excel, and “at the helm” is not Helm. Same input, same output, forever; no model in the hot path.
- Occupations and industries are classified by a language model - but the model never sees individual postings. It classifies unique normalized titles and unique employers into dimension tables, and postings join against those. Half a million postings collapse to tens of thousands of unique titles and employers, which is why classifying the entire corpus cost us about as much as a lunch.
- Unknowns stay honest. A title the classifier can’t place gets no code rather than a guessed one, the same contract as our salary parser. A null is honest; a wrong code is a support ticket.
Spot-checked, including the long tail
We sampled random classifications before exposing the filters - deliberately from the obscure end. The classifier put a Swiss warehousing company (“Lagerhäuser Aarau AG”) in division 52, a carbon-electrolysis startup in chemicals manufacture, staffing agencies in employment activities, and handled titles in Portuguese, French, Spanish and German. NVIDIA lands in semiconductor manufacture, not software - which is exactly the kind of distinction an industry axis exists to make.
Why this matters
The workforce-analytics vendors sell modelled conclusions on top of classified data, at enterprise prices, behind sales calls. The substrate itself - live postings with standard codes - is the part developers actually need, and it’s the part that’s been hardest to get self-serve. That’s now a filter parameter and ten GET endpoints on every JobsPipe plan, including free. The docs cover the new filters and the insights API.
Query classified postings and live labour-market insights - free key in 30 seconds.
Get a free API key