Explore Finnish occupation data (StatFin PxWeb + Occupational Barometer) and color it by AI exposure.
-
Configure
cp data/statfin_config.example.json data/statfin_config.json # Edit data/statfin_config.json with your PxWeb table IDs and variable codes -
Build site
finlandjobs all --barometer-input barometer.csv # complete pipeline # or finlandjobs fetch && finlandjobs build
-
Preview
cd site && python -m http.server 8000
finlandjobs fetch– download StatFin datafinlandjobs infer– add AI exposure estimates (optional)finlandjobs build– generate site data filesfinlandjobs all– run complete pipeline
Optional: finlandjobs all --barometer-input barometer.csv includes Occupational Barometer outlook data.
statfin_config.json– required, defines PxWeb tables and variablesTREE_LEVEL– treemap hierarchy level (default: 4)
See finlandjobs --help for all options.
score.pywill use Markdown pages if present, otherwise it constructs a prompt fromoccupations.csv.- Outlook: if you use the Occupational Barometer, map its demand labels into the CSV
outlook_descfield infetch_statfin.py. fetch_statfin.pywritesmedian_pay_sourceandoutlook_sourcefields for auditability (wages_statfin,outlook_statfin,extras_csv).- You can enforce outlook completeness in config with
min_outlook_coverage(0-1) andstrict_outlook_coverage(true/false). build_site_data.pyuses one hierarchy level only (TREE_LEVEL, default4) so total jobs are not double-counted across Level 1-5 aggregates.- Barometer data source: The Occupational Barometer (Työllisyysbarometri) CSV can be obtained from Statistics Finland (PxWeb API) or the Ministry of Employment and the Economy. Look for columns containing occupation codes (ISCO or ammatti_koodi) and outlook categories (balance_label). This data is optional; the pipeline will use
extras.csvif barometer data is not provided.
This project is adapted from karpathy/jobs. Thanks to the original author for the excellent foundation.