Systems and tools Illustrative · synthetic data

Extra problems I solved

These are smaller pieces from the same platform. Each one sets out a separate data problem, the figure it produces, how it is solved, and the tools behind it. Figures are illustrative and use synthetic data.

Is our turnover bad, and against whom?

The peer benchmark

The problem. An employer's turnover rate means little until it is compared with similar employers, occupation by occupation, and that comparison is impossible while everyone names the same job differently.

Registered Nurse
5.1%
Surgical Technologist
8.4%
Nurse Aide
7.2%
Medical Assistant
4.9%
this employer peer range| peer median

The approach. Because every title resolves to a federal code, an employer can be compared with similar employers in the same occupation. The bar is the peer range, the tick is the median and the dot is this employer. Surgical Technologist stands out and is worth a conversation, while Medical Assistant does better than peers. Benchmarks are built under k-anonymity, so a cell with too few employers is withheld.

Stack Python · the occupation resolver · Supabase with k-anonymity floors

Turning supply into a list of places to call

Where to hire from

The problem. An employer can only act on a vacancy if it knows who nearby trains or supplies that kind of worker. Knowing that nurses are scarce helps less than knowing that four programs within an hour graduate 1,900 a year.

Maricopa Community CollegesNursing (ADN) · 29-11411,240/yr · 12 mi
Gateway Community CollegeSurgical Technology · 29-2055120/yr · 8 mi
Pima Community CollegeMedical Assisting · 31-9092410/yr · 40 mi
Aya Healthcare (agency)Travel RN · 29-1141~9k placements/yr

The approach. Supply is shown as places you can contact, with 35,000 training providers mapped by occupation pipeline and 8,000 staffing agencies mapped by federal code, each with a program, a volume, a distance and a contact. Each vacancy points to the specific providers and agencies that could fill it.

Stack Python · geocoding · the occupation resolver · Supabase

Which moves from a job are worth backing?

Career transitions

The problem. Career advice is full of moves that sound plausible but fail in practice, because of a licensing requirement, a pay cut or no training nearby. A worker or a workforce board needs moves that clear all three.

From Nurse Aide
Licensed Practical Nurse
bridge program, 12 to 18 months, served locally
+34%
Medical Assistant
short credential, high local capacity
+18%
Phlebotomist
certificate, weeks not years
+9%
Registered Nurse
degree-gated, two years, high wage but blocked short-term
+118%

The approach. From any occupation, the model finds moves that raise pay, need at most a credential, and already have a training pipeline nearby. Filled steps can be recommended now. Hollow steps require a degree and are flagged, so no one is sent on a two-year path presented as a lateral move.

Stack Python · skill-proximity index · credential and licensing gates · OEWS wages

What is an occupation made of?

The composition

The problem. To compare occupations or plan reskilling, a job title tells you very little. You need the skills and activities behind it, weighted by how central each is to the role, to measure how far apart two jobs are and how exposed each one is.

Registered Nurse, by learned weight
Assisting and caring for others
.93
Making decisions and solving problems
.85
Documenting and recording information
.70
Getting information
.68
Coordinating the work of others
.55

The approach. Each occupation is broken down into its skills and work activities, with learned weights. A filled bar marks a defining component of the job and a soft bar marks a contributing one. Distance, overlap and AI exposure are all measured from this breakdown.

Stack Python · O*NET task, skill, and activity profiles · the task-based engine

Mapping how close occupations are

The skill space

The problem. A flat list of occupations does not show how close each job is to the others, and for mobility and shortages that is the most important information. Two jobs are close when they share skills and activities, whatever their taxonomy labels say, and that closeness has to be measured.

Clinical Technical Support

The approach. 798,000 occupation-pair similarities place every job on one map, where distance reflects how much two jobs share. The clusters come out of the data and are not assigned by hand. The same map is used for career transitions, substitution in shortages, and the adjacent-population supply in the labor market twin.

Stack Python · sentence-transformer embeddings · skill-proximity index · Supabase with pgvector
← Back to the portfolio