An interactive treemap for exploring occupation groups across Europe.
This app visualizes a compact Europe-focused job market report and a large treemap where:
- rectangle area represents employment
- color represents the selected layer
- layers include
BLS-style Outlook,Avg. Salary, andDigital AI Exposure - the report above the chart summarizes total jobs, outlook tiers, AI bands, and leading occupation groups
This project is a visual exploration tool, not an official labor-market publication.
- It is built to feel similar to Andrej Karpathy's US job visualizer style, but adapted for Europe
- The current occupation taxonomy is inspired by ESCO-style occupation groups
- The current numeric dataset is synthetic mock data
- Employment, salary, growth, and AI exposure values are generated locally by
generate_mock_data.py
That means the current version is best understood as a design and data-product prototype, not a source-of-record statistics app.
The app currently includes:
- a compact report section with key summary stats
- a large treemap visualization
- controls above the chart to switch country and metric
- a dedicated
Sourcespage that explains where the taxonomy and data come from
The app now includes an in-app Sources page, but these are the key references directly:
- ESCO occupations classification:
https://esco.ec.europa.eu/en/classification/occupation-main - European Commission ESCO overview:
https://employment-social-affairs.ec.europa.eu/policies-and-activities/skills-and-qualifications/skills-jobs/european-skillscompetences-qualifications-and-occupations-esco_en - Local synthetic data generator:
generate_mock_data.py - Generated dataset used by the app:
src/data.json
- React
- Vite
- D3 hierarchy + treemap layout
- Lucide React icons
Install dependencies:
npm installStart the dev server:
npm run devBuild for production:
npm run buildPreview the production build:
npm run previewsrc/
App.jsx Main report + treemap page
Treemap.jsx Treemap rendering and interactions
data.json Current generated dataset
App.css App layout and report styling
Treemap.css Treemap-specific styling
generate_mock_data.py Synthetic data generator
- The numbers are not yet connected to official Eurostat, ESCO, OECD, or national labor-statistics feeds
- AI exposure is a heuristic field in the generated data, not an audited measurement
- Some occupation values may look unrealistic because the dataset is still synthetic
- replace synthetic values with real employment, pay, and outlook data
- document the exact source and transformation for each metric
- add reproducible ingestion scripts for official Europe labor datasets
- add methodology notes for AI exposure scoring
No explicit license has been added yet. If you plan to reuse or publish this publicly, add a license file first.