UK Data & Tech Job Market Tracker
A live dashboard that scrapes and analyses the UK data-job market in real time - because there was no clean dataset for what the market actually wants right now, so I built the thing that creates the data.
The problem
There's no clean dataset for “what does the UK data-job market actually want right now.” Job ads are messy free-text HTML, there's no label telling you which skills a posting demands, and demand shifts week to week. So I built the thing that creates the data instead of waiting for it.
My approach
I self-source postings from the Adzuna API - deduped by job ID and timestamped, so re-running never double-counts and “this skill is trending” becomes a defensible claim, not a single snapshot. A curated 56-skill taxonomy feeds a spaCy PhraseMatcher for high-precision, multi-word extraction (power bi, machine learning) with zero labelling cost - a deliberate trade-off, since no labelled UK job-ad dataset exists to train an NER model against. Rule-based classification tags each post's role and seniority. An XGBoost model predicts salary on the log scale (data-role pay is right-skewed). The whole thing serves through a FastAPI backend to a dashboard I built with no frontend framework and no charting library - the four chart types are ~400 lines of hand-rolled SVG that inherit theme colours from CSS variables.
The result
1,460 real postings analysed and growing, across a live dashboard with five views - skill demand, salary distributions, role breakdowns, and an interactive salary predictor. The salary model reaches R² 0.31, which is genuinely what role, seniority, region and skill-counts can explain - the rest is company-level variation the advert never states. 71 tests cover every number the API serves.
✓ What makes it honest
Adzuna's free tier truncates descriptions to 500 characters, so extracted skill percentages are a consistent lower bound on true demand - the dashboard says so on the skills view. I'd rather ship a documented limitation than a hidden one; knowing your data's ceiling is the job.
What I'd do next
Full-text descriptions via the detail endpoint to lift skill recall; a scheduled collector so the trend charts span months; and company-level features to push salary R² past what the advert alone can explain.
Stack Python · FastAPI · spaCy · scikit-learn · XGBoost · vanilla JS + SVG · Render + Vercel