Systems and tools Illustrative · synthetic data

Occupation resolver

Employer data is the most detailed record of the labor market there is, but it is of little use until every messy title is mapped to one code. The resolver runs cheap checks first, calls models where they are needed, and sends what it cannot match to review.

Machine learning · LLM systems · information retrieval · data engineering. In production on employer HRIS panels and public postings, under tenant isolation.
01

The problem

Employers name the same job a hundred ways, from "AmbFloat LPN / II" to "RN/Care Manager" and "Sr. Scrum Master (Remote, LOCALS)". Until those titles are mapped to one federal taxonomy, there is no way to benchmark, forecast or trace career transitions. There is also no ground truth to check against, since no labeled set says which code is correct. Everything after this stage depends on getting it right cheaply and reliably.

02

How it works

01One job, a hundred names

Raw titles carry shift tags, unit codes, seniority markers and location suffixes, which have to be removed before the title can be judged. The first stage strips and normalizes the input so that what remains describes the job.

Information retrieval · data engineering

02Cheapest checks first

A ten-stage cascade resolves what it can at each step and passes the rest on, starting with exact caches and keyword rules, then substring and embedding matches, then the models. Each stage has a confidence floor, and no match below it is accepted.

Information retrieval · data engineering

03Three models, called in sequence

An open-source embedding baseline handles most titles at no cost. A fine-tuned in-domain encoder handles the ambiguous middle. A local, tenant-isolated LLM decides the long tail of novel titles, marketing language and compound roles, with output constrained to JSON.

Machine learning · LLM systems

04Labels without a labeled set

With no gold standard to train on, a locally run LLM generates labels over normalized employer extracts, and those labels are then reviewed. That turns an unlabeled problem into a supervised one at scale, and the in-domain encoder is trained on the result.

LLM systems · data engineering
Federal classification type or pick

Each title is resolved two ways at once. On the left, a clean employer role with its specialty, level, and grade. On the right, the federal occupation at O*NET 8-digit and SOC-6, with its family and subfamily.

Examples
Real employer and posting titles, resolved. The demo matches against a sample of the panel. In production the same input goes through the ten-stage cascade and the three model layers.
A sample, resolved switch source · scroll

Two scrubbed samples run through the resolver. Each messy input is shown with the standard role and the federal occupation it maps to. Switch between the contributed employer panel and public postings.

Original titleCanonicalSpecialtyLevelSOC-6SOC-6 titleFamily
AmbFloat LPN / IILPN·staff29-2061Licensed Practical and Licensed Vocational NursesHealth Technologists and Technicians
Certified Nursing Assistant I - B1D Critical Care 1st FloorNurse AideCritical Carestaff31-1131Nursing AssistantsHome Health and Personal Care Aides; and Nursing Assistants, Orderlies, and Psychiatric Aides
CRNA ( Only)CRNA·staff29-1151Nurse AnesthetistsHealthcare Diagnosing or Treating Practitioners
DevOps Engineer-Software Engineer III, Enterprise Risk Finance TechnologySoftware EngineerDevOpsstaff15-1252Software DevelopersComputer Occupations
Clinical Staff Pharmacist Pharmacy and EDClinical Pharmacist·staff29-1051PharmacistsHealthcare Diagnosing or Treating Practitioners
Senior Industrial EngineerIndustrial Engineer·senior17-2112Industrial EngineersEngineers
Biomedical Equipment Tech SeniorBiomedical Equipment Tech·senior49-9062Medical Equipment RepairersOther Installation, Maintenance, and Repair Occupations
Senior Credit AnalystCredit Analyst·senior13-2041Credit AnalystsFinancial Specialists
Physical Therapist Assistant (Licensed) - Outpatient RehabPhysical Therapist AssistantOutpatientstaff31-2021Physical Therapist AssistantsOccupational Therapy and Physical Therapist Assistants and Aides
Telecomm Technician SeniorTelecommunications Equipment Installer and Repairer·senior49-2022Telecommunications Equipment Installers and Repairers, Except Line InstallersElectrical and Electronic Equipment Mechanics, Installers, and Repairers
Supervisor Health Information ManagementHealth Information Management Supervisor·supervisor29-2072Medical Records SpecialistsHealth Technologists and Technicians
Respiratory Therapist II (RRT) ( Only)Respiratory Therapist·staff29-1126Respiratory TherapistsHealthcare Diagnosing or Treating Practitioners
NonEE) Accounts Payable AssociateAccounts Payable Associate·staff43-3021Billing and Posting ClerksFinancial Clerks
Associate Customer Service RepresentativeCustomer Service Representative·staff43-4051Customer Service RepresentativesInformation and Record Clerks
Customer Tax AssociateTax Associate·staff13-2082Tax PreparersFinancial Specialists
Digitial Marketing Manager IIDigital Marketing Manager·manager11-2021Marketing ManagersAdvertising, Marketing, Promotions, Public Relations, and Sales Managers
Director Neonatal Nurse PractitionerNeonatal Nurse Practitioner·manager29-1171Nurse PractitionersHealthcare Diagnosing or Treating Practitioners
Early Career Senior Learning and Development ConsultantLearning and Development Specialist·senior13-1151Training and Development SpecialistsBusiness Operations Specialists
Lead Compliance OfficerCompliance Officer·senior13-1041Compliance OfficersBusiness Operations Specialists
Lead Wealth UnderwriterUnderwriter·senior13-2053Insurance UnderwritersFinancial Specialists
Nuclear Maintenance Technician I or Nuclear Maintenance Technician IIMaintenance Technician·staff49-9071Maintenance and Repair Workers, GeneralOther Installation, Maintenance, and Repair Occupations
Payroll Analyst IIPayroll Analyst·staff43-3051Payroll and Timekeeping ClerksFinancial Clerks
SVP & Chief Technology OfficerChief Technology Officer·manager11-1011Chief ExecutivesTop Executives
Surgical Tech SeniorSurgical Tech·senior29-2055Surgical TechnologistsHealth Technologists and Technicians
Talent Acquisition & Data ManagerTalent Acquisition Specialist·manager13-1071Human Resources SpecialistsBusiness Operations Specialists
A scrubbed sample from each source. Switch between the contributed employer panel and public postings. The same cascade runs on the full posting and employer panels.
Resolution stages each stage resolves more

A batch of messy titles runs through ten stages. Each resolves what it can and passes the rest on. The bar fills as more of the batch is classified, reaching 99% before the last 1% goes to review.

01Noise strip
clean
02Learnings cache
22%
03Keyword rules
36%
04Alternate titles
54%
05Family mapper
62%
06Embedding
70%
07Trained classifier
82%
08In-domain encoder
91%
09LLM adjudication
99%
10Human review
1% left
The fill is the share resolved so far. The stages run from cheapest to most expensive. By adjudication 99% is classified, and the last 1% goes to human review.
Evaluation held out

Measured on a held-out set of several hundred thousand LinkedIn job postings and roughly two dozen large employers.

LinkedIn postings, coverage93.8%
LinkedIn postings, top-1 at 8-digit72.1%
Employer titles, coverage92%
Canonical role clustering vs O*NET splits0.09 to 0.10 merge error
Coverage and accuracy are reported at both SOC-6 and O*NET 8-digit level. The role clustering is scored against O*NET's own 8-digit splits, where the alternative methods scored 0.38 and 0.85.
03

Tools used

PythonThe pipeline, the ten-stage cascade, and stage orchestration.
sentence-transformers (all-MiniLM)The open-source embedding baseline that handles most titles.
Hugging FaceThe fine-tuned in-domain encoder, trained on labeled employer-title pairs.
Ollama, QwenLocal, tenant-isolated LLM adjudication for the long tail, with JSON-constrained output.
scikit-learnThe trained classifier calibrated on national posting data.
pgvectorNearest-neighbor search over embeddings inside Postgres.
fuzzywuzzy, LevenshteinSubstring and alternate-title matching in the cheap stages.
Supabase, PostgresThe learnings cache of confirmed mappings, so no title is resolved twice.
04

Final state

The resolver above matches against a small synthetic sample. In production the same input runs the three model layers with the ten-stage cascade in front, over employer HRIS panels and public postings, with inference kept under tenant isolation. The evaluation numbers are from real held-out runs. Every code assigned to a title is traceable to the stage that produced it, and titles with no confident match are sent to review.

← Back to systems and tools What this makes possible: employer digital twin →