← Back to projects
Shipped 2026

Job Dashboard

A pipeline that reads labeled Gmail, classifies each message with Claude into a validated schema, and stores application history as events. An MCP server and a macOS widget sit on top, and it runs 24/7 on a home server.

  • Python
  • Claude API
  • SQLite
  • MCP
  • SwiftUI
Job Dashboard cover

The problem

A job search means a flood of email from a dozen different applicant tracking systems. Keeping a spreadsheet current by hand is tedious, and it’s always out of date. I wanted something that watched my inbox and kept the pipeline accurate for me.

How it works

  • Gmail in. The pipeline reads the messages I’ve labeled in Gmail.
  • Claude in the loop. Each message goes to Claude with a structured output schema. What comes back is validated against that schema before anything is stored, so the rest of the system can trust it.
  • History as events. Every change to an application is stored in SQLite as an event. The current state of the pipeline is built from that history.
  • An MCP server. I can add or move applications straight from Claude.
  • A macOS widget. A native SwiftUI widget shows the whole pipeline on my desktop.

It runs 24/7 on a home server.

Stack

Python · Claude API (structured output) · SQLite · MCP · SwiftUI.

Why I like it

I use it every day. It’s also the project I point to when someone asks what I can build end to end, because it covers data modeling, an LLM integration, a server that runs on its own, and a native client in one system.