6.9 KiB
Cross-industry taxonomy — proposed
28 October 2026. Implements the design contract of GJ-03; no dataset import or model inference performed.
Taxonomy choice and evidence
Use versioned ESCO concept URIs/labels/aliases/skills as the shared vocabulary. The official site reports v1.2.1 and downloadable data/API, including English, Swedish and Norwegian no; that pack must not be relabelled as separately qualified Bokmål/Nynorsk. Prefer a pinned local data subset over bundling the reference local API software. Use ESCO, download, API/software licensing, accessed 2026-10-28.
Data and API software licences are different: API software is EUPL 1.2 with component licences; EU-owned web content defaults to attributed reuse under Commission notice. GJ03-A must retain the exact downloaded dataset licence/readme/checksum and attribution, identify exceptions and approve commercial redistribution of that artefact. General web reuse is not proof of every downloadable file's licence. No email/download registration was submitted here.
Swedish JobTech taxonomy is public CC0 and provides SSYK-2012/ISCO-08 relations, occupation aliases and skills. Pin its versioned export, preserving concept IDs distinct from numeric SSYK codes. Taxonomy service, versioned catalogue, accessed 2026-10-28.
UK ONS supplies SOC2020 and extended job-title indexes, with a 27 August 2026 edition visible at research time. Cross-referencing ESCO during classification development is not a validated one-to-one crosswalk. Import an explicitly licensed/pinned title index only after GJ03-A review; leave uncertain SOC↔ISCO↔ESCO mappings unmapped. ONS extended SOC, accessed 2026-10-28.
Contract and matching
OccupationConcept: namespace + immutable URI/code + taxonomy version, preferred/alternative labels keyed by original language tag, broader/related/skill edges with evidence, validity/deprecation/replacement and source/licence. Mapping edges carry source/target versions, exact/broad/narrow/related relation and reviewed confidence. A many-to-many crosswalk is not equality.
Occupation describes work; employer title remains original advert text; industry describes economic activity; skill is capability; qualification/licence is an explicit requirement/evidence; schedule and experience are separate facets. “Weekend work” is valid free text, not a forced occupation. Unknown terms never disappear when the taxonomy fails.
Query modes: exact resolves selected concept/approved aliases without broadening; related adds labelled related concepts only with user opt-in; keyword preserves unclassified input. Accent/case normalization supports lookup without rewriting displayed titles; ambiguous tokens (e.g. English “chef” versus Swedish “chef” manager) require language context/disambiguation. cook/kokk/kock is a proposed reviewed alias example, not an asserted frozen ESCO mapping. Skills only use explicit user choices or consented profile facts; no pooled private CV text.
Debounce/cancel suggestions, ignore stale responses, cap results, use locale-aware ranking and accessible combobox behavior. Order exact/local preferred labels before aliases and explicit related roles. Allow search without selecting a suggestion; taxonomy outage falls back to literal keyword. UI language affects labels, not an implicit advert-language restriction. Unsupported provider occupation/skill filters require auditable query expansion or disclosed exclusion.
Current JobImport/SkillTagger.cs is largely technical regex tags, used by JobImportService.PreviewAsync. Retain its existing caller contract while adding universal discovery vocabulary; it cannot define all-occupation search or candidate qualification. GJ-03/GJ-06 must trace every caller before changing shared tagging/matching behavior.
Frozen benchmark to create in GJ03-A
These are proposed human-reviewed query examples; translations are not yet linguistic acceptance or complete taxonomic equivalents.
| Sector | English queries | Bokmål / Swedish candidates | Required distinction |
|---|---|---|---|
| Education | teacher, teaching assistant | lærer, lærerassistent / lärare, lärarassistent | Teacher versus assistant, subject/level |
| Hospitality | chef, cook, kitchen assistant | kokk, kjøkkenassistent / kock, köksbiträde | Manager ambiguity, assistant not chef |
| Health | nurse, care worker | sykepleier, pleiemedarbeider / sjuksköterska, vårdbiträde | Registration not inferred |
| Trades | electrician, plumber, carpenter | elektriker, rørlegger, tømrer / elektriker, rörmokare, snickare | Different trade licences |
| Logistics | driver, warehouse operator | sjåfør, lagermedarbeider / chaufför, lagerarbetare | Licence category, no inferred permission |
| Retail | shop assistant | butikkmedarbeider / butiksbiträde | Part-time/evening availability |
| Cleaning | cleaner | renholder / lokalvårdare | No formal qualification needed to search |
| Office/finance | accountant, administrator | regnskapsfører, administrator / redovisningsekonom, administratör | Credential and role ambiguity |
| Agriculture | farm worker | gårdsarbeider / lantarbetare | Seasonal roles, not farmer-owner only |
| Technology | software developer | programvareutvikler / systemutvecklare | One sector with equal benchmark weight |
Freeze at least these ten sector groups × three query languages, positive and confusing negative terms, unfamiliar/free-text jobs, shifts/apprenticeships/no experience and missing requirements. Record intended relevant concepts and allowed expansions with provenance and native review. Proposed GJ03-E targets: precision@5 >=0.90 and relevant suggestion recall@5 >=0.80 per sector/language; report macro averages and failures rather than hiding weak sectors in a tech-heavy total. Targets need owner approval before execution. Zero invented credentials is mandatory regardless of relevance scores.
Match explanation includes explicit profile fact reference/version, advert requirement field/source version, relation used, matched/not supplied/unknown, and no hiring-probability claim. Profile revision change invalidates cached explanation; AI remains optional and gated. Public taxonomy contains no tenant PII; profile-derived ranking remains owner-scoped.
The frozen corpus must also include waiter, mechanic and public administrator explicitly, as required by GJ-03. Test bounded typo tolerance without overriding exact-title mode or allowing broad roles to swamp precise titles.