A self-hostable job application tracker where every interaction — adding listings, updating statuses, recording notes — happens entirely through conversation with an embedded AI assistant. The UI is a real-time dashboard with a clean filterable table and a rich detail panel for every opportunity.
Job Tracker is a full-stack web application that rethinks the job search workflow. Instead of filling out forms and manually updating fields, every action is handled through natural language chat with an AI assistant powered by Claude. The result is a tracker that feels more like a conversation with a knowledgeable assistant than a database entry tool.
Built as a personal project outside of coursework, this demonstrates practical full-stack development — a FastAPI backend with an agentic AI loop, a live-updating vanilla JS frontend, and a flat-file data layer that keeps the setup dead simple. The demo is pre-loaded with sample CDL-A job search data from the DFW/Weatherford TX area.
All adds, edits, status changes, and notes happen through natural language chat. No forms, no manual data entry.
Click any row to see the full picture: pay range, schedule, requirements, benefits, recruiter contact, apply link, and industry-specific details.
Color-coded flags on each job — action items (amber), useful info (blue), disqualifiers and rejection reasons (red). Never lose track of why a listing was skipped.
The AI remembers your background, qualifications, target salary, and preferences across every session without re-explaining yourself.
The tracker re-renders instantly after the AI modifies data — status changes and new entries appear without reloading the page.
Installable on mobile via web app manifest. Filter by status: Interview, Call Recruiter, Applied, Rejected, Not Applied.
The dashboard is a read-only view — you never fill out a form directly. All interaction goes through the AI Assistant. Example prompts:
The AI reads and writes jobs.json directly via its tools. The table re-renders live after every change.
The application is structured as a single FastAPI server that handles both the API and serves the frontend:
Zero database required. The flat-file approach keeps self-hosting to a single pip install and one command.
The assistant has seven structured tools that Claude uses in an agentic loop — it can chain multiple operations in a single response:
Read all job entries — used to answer status questions and generate summaries.
Fetch full details for a single listing by ID.
Create a new entry with all rich fields from a single natural language prompt.
Change any field — status, pay range, notes, alerts, industry-specific details.
Remove an entry by name or ID.
Read and update the saved user profile — background, qualifications, salary target, preferences.