The Problem
The MIT Project Iceberg found that visible AI adoption in tech represents only 2.2% of US labour market wage value, while hidden exposure across administrative, financial, and professional roles is 11.7% -- five times larger. That insight is powerful but abstract. There was no interactive tool that lets individuals explore their own occupation's AI exposure at the task level, compare across countries, or see what their job looks like after AI rather than simply whether it is "at risk".
I wanted to build something that reframes the conversation from "will AI take my job" to "how is AI changing what my job actually involves" -- task by task, country by country.
What I Built
The project has two halves: a Python data pipeline and a SvelteKit frontend.
Pipeline
The pipeline pulls occupation and task data from two national sources:
- US: O*NET v2 API -- standardised occupation codes, detailed task lists
- AU: OSCA Excel files for occupation structure, JSA Gen AI scores for pre-computed automation exposure at the ANZSCO unit group level
Each task gets scored by Claude for automatability (full, partial, or human-required), with a bypass path for AU tasks that already have JSA pre-scores. This cut API costs significantly -- over 60% of AU tasks used existing JSA scores instead of hitting Claude.
I also built match.py, which uses Claude to semantically match US occupations to their Australian equivalents. Twenty occupations per country, matched across borders so users can compare how the same role is defined differently in each labour market.
The dataset schema (v2.0) supports multi-country fields: country, source, native_code, id, and matched_id. Validation tooling (validate.py) checks schema compliance and can compare US/AU datasets side by side.
Frontend
The SvelteKit app is fully static -- no backend, no database. Dataset JSON files are imported at build time and baked into the output.
Three views:
- Job Explorer: Search bar, country toggle, occupation cards with iceberg scores showing the ratio of automatable to human-required tasks
- Task Breakdown: Every task in an occupation, categorised as full/partial/human, with AI tool badges showing which tools apply
- Country Comparison: Side-by-side US/AU view of the same occupation, showing how task definitions and scores differ across countries
Design follows a minimal, data-forward approach -- Hanken Grotesk for body, Azeret Mono for labels, IBM Plex Serif for editorial pull quotes. Mobile-responsive down to 390px.
Every piece of UI copy was reviewed for editorial tone. The framing is consistently "job change, not job loss" -- no mention of replacement or elimination anywhere.
What is Next
The pipeline architecture is ready to scale beyond 20 occupations per country. The immediate next steps are Dockerising the frontend for the local home server, wiring it into the shared Caddy reverse proxy, and then applying the solarpunk glassmorphic design system to bring it visually in line with the rest of the agent suite.