Projects

A selection of my hacky technical solutions to some very real problems.

01

Jobsworth

A self-hosted job application workbench that drafts a whole application from a bank of career evidence.

Next.js 15 / React 19 / TypeScript Prisma 6 + SQLite (FTS5) Vercel AI SDK v6 + OpenRouter Gemini embeddings @react-pdf/renderer MCP server Vitest, Playwright, promptfoo Docker Compose + Tailscale

active · Since August 2026

02

Morning Brief

A self-hosted daily news essay: around 80 sources read, triaged and written up with citations before 06:15.

Python 3.13 / uv SQLite OpenRouter trafilatura + feedparser Resend supercronic + Uptime Kuma Docker Compose + Tailscale

active · October 2026

03

Job Scout

A job-match service that reads job boards and alert emails, screens vacancies against my CV, and passes the good ones to Jobsworth.

Python 3.13 / uv SQLite OpenRouter (GPT-6 Luna) Greenhouse, Lever, Ashby and Workday APIs Reed and Adzuna APIs, IMAP FastAPI Docker Compose + Tailscale

prototype · October 2026

04

Liftlog and Corner

A training log and a heavy bag coach for my phone, built to work together and run on my home server.

Liftlog: Hono on Node 24 (node:sqlite) Liftlog: React 19 + Vite Corner: Python 3.13 + FastAPI Corner: plain ES modules + Web Audio Kokoro (kokoro-onnx, int8) YAML SQLite, Docker Compose + Tailscale

active · October 2026

05

ForceSight

A hackathon prototype predicting His Majesty's Inspectorate of Constabulary and Fire and Rescue Services (HMICFRS) performance ratings for police forces, from historical Home Office data.

Python (pandas, scikit-learn) HTML / CSS / JavaScript GOV.UK Design System

archived · May 2025

06

AI Talent Visualiser

An interactive metro-map simulation of the UK's AI talent pipeline, showing how education, labour-market, and immigration levers shift the national AI talent pool.

React 18 / TypeScript / Vite D3.js Tailwind CSS Vitest

prototype · June 2026

07

Skills Boost Next

A demonstrator for the follow-on platform for the Skills Boost website, with AI-generated learning pathways, SCORM support, and a full admin CMS.

Next.js (App Router) / React / TypeScript Prisma + PostgreSQL Auth.js v5 OpenRouter Vitest + Playwright

prototype · July 2026

08

Policy Analysis

An LLM-driven policy classification and analysis pipeline with an interactive visual dashboard, tested on a large MOD policy document with hierarchical structure, cross-references, and content classification.

Python (pandas) Claude batch API Plotly / Dash Static HTML export

archived · August 2025

10

Sites for friends and family

Fast, content-managed brochure sites built in Astro for people in my life—a coaching newsletter site and an artist's portfolio.

Astro Astro content collections (Markdown) Netlify

active · June 2025 and April 2026