Where teams and agents Think together.

Capture context, find answers, and automate tasks with AI built for your team and career.

⊞Job Applications

Job Applications

38 tracked
Job Applications›15 companies
Aa Position✨ StageNº App ID Company Salary Seniority Source Work Mode
Senior Data Engineer Wishlist42LinkedIn Job Wrapping£95,000Seniorgreenhouse.io/artefactlinkedinRemote
Senior Data Engineer Wishlist41Roku£110,000Seniorweareroku.com/jobs/8030055Hybrid
Staff AI Systems Engineer Interviewing21Stripe$220,000Leadstripe.com/jobs/staff-aiRemote
Head of Product Engineering Offer18Linear$245,000Seniorlinear.app/careersRemote
Founding Fullstack Engineer Applied12Vercel$185,000Midvercel.com/careersRemote
Azure Data Engineer To apply8Hooli$165,000Midhooli.com/jobs/azureHybrid
New application
Designer-Grade Visuals

Designed with character, clarity, and emotion

Every screen and illustration in this workspace is crafted with intention — blending the clean, fluid geometry of unDraw-style modern vectors with Notion's signature warm hand-drawn character accents. Real craft that makes your job hunt feel empowering.

Career growth illustration from unDraw

Plays nicely with the tools you already use

Claude CodeClaude DesktopMCPTursoDockerTelegramSMTPlibSQLCSVNotion exportClaude CodeClaude DesktopMCPTursoDockerTelegramSMTPlibSQLCSVNotion export

Everything in one place

Built by cloning a real Notion tracker, then making it faster

Capture

The dense table that feels like Notion

Fourteen columns in the order a real search needs them — stage, salary, seniority, source, req ID, cover letter, fit. Click any cell to edit it in place; it saves instantly, with no full-page reload and no layout shift.

  • Sort, per-column filters, and search across position, company, notes and req ID
  • Badge colours sampled from the reference design, never eyeballed
  • Empty cells stay quiet until you hover the row
Job Applications
The Job Applications table with stage badges, salary, seniority and progress columns
Move

A pipeline you can actually drag

The same rows grouped by stage. Drag a card and it lifts with a shadow while the others animate into place — real motion, not a teleport on drop. Add a role straight into the right column with the hover button.

  • Seven stages, from Wishlist to Withdrawn
  • Every stage change is written to the application's activity timeline
  • The board auto-scrolls when you drag near the edge
Job Applications
Kanban board with applications grouped by stage
Never miss

Interview reminders that reach you

Interviews in the next 24 hours are pushed to Telegram, or email if you prefer. One reminder per interview, retried a few times if a channel is down, and skipped entirely for applications you have already closed.

  • Runs as a sidecar process, a cron job, or a token-protected endpoint
  • Delivered to every teammate, at their own chat ID
  • The dashboard shows response rate, upcoming interviews and recent activity
Job Applications
Job Search HQ dashboard with pipeline counts and response rate
Interview scheduling and reminders illustration from unDraw

See what you can do

Real jobs, handled

Every one of these is a single call against the same service layer the UI uses.

Log a posting in one line

“Add the senior data engineer role at Globex, hybrid, £95k.” The agent writes the row.

create_application

Ask what needs chasing

“Which applications have gone quiet for two weeks?” Get a filtered list back.

list_applications

Move a batch of stages

“Mark everything I applied to last week as Applied.” One call, twenty rows.

update_application

Log an interview, get reminded

Book the screen and the reminder lands in Telegram before it happens.

log_interview

Bring your Notion tracker

Export to CSV, import it here, and keep every stage, badge and note intact.

CSV import

Invite a mentor to review

One-time link, member role, scoped to this workspace — revocable any time.

invitations

Why not a spreadsheet

What you get that a sheet cannot do

Capability SheetGeneric trackerApplication tracker
Structured, relational data
Dense inline editing in a table
Kanban with real drag physics
Interview reminders by Telegram or email
AI agent access over MCP
Roles, invites and workspaces
Self-host and own the data
Open source
Model Context Protocol

Let your agent do the admin

The app ships an MCP server that wraps the same functions as the web UI. Claude Code, Claude Desktop or any MCP client can read and write your pipeline — no browser involved, no scraping, no copy-pasting.

  • list_applications
  • get_application
  • create_application
  • update_application
  • delete_application
  • log_interview
  • list_companies
  • add_contact
  • get_stats
  • add_company

Inputs are validated against the same enums as the database, and invalid values come back as readable errors so the agent can correct itself.

CLI coding agent and AI assistant illustration from unDraw
claude_desktop_config.json
{
  "mcpServers": {
    "application-tracker": {
      "command": "pnpm",
      "args": ["--dir", "/srv/job-tracker", "mcp:dev"]
    }
  }
}

Prefer HTTP?

Run the MCP transport with a bearer token and point the client at /mcp — handy when the tracker lives on a server and you work from a laptop.

terminal
git clone https://github.com/job-tracker/job-tracker.git job-tracker && cd job-tracker
cp .env.example .env        # SESSION_SECRET, ADMIN_PASSWORD
docker compose up --build

# web        -> http://localhost:3000
# mcp        -> http://localhost:3333
# scheduler  -> interview reminders (60m) + IMAP mail polling (15m)
Your infrastructure

Self-host in one command

One container for the web app, one for the MCP transport, one for the reminder scheduler. Migrations run on boot, so there is no manual SQL and no migration night.

  • SQLite-compatible libSQL — a local file for a laptop, Turso for the cloud
  • Docker Compose with health checks and a persisted data volume
  • Password auth with revocable sessions; no third-party identity required
  • Telegram or SMTP notifications, configured with environment variables
  • MIT licensed — fork it, rebrand it, ship it

Pricing

Start free. Scale when the pipeline does.

Free

For one focused search

$0 / forever

  • Up to 100 applications
  • Up to 3 teammates
  • Table and kanban views
  • Interview reminders
  • MCP server for your agent
  • CSV import and export
Get started free

Pro

Most popular

For a serious, long search

$2 / user / month

  • Everything in Free
  • Unlimited applications
  • One seat per teammate, $2 each
  • Priority support
  • Early access to new views
Get early access

Billing opens soon

Self-hosted

For teams with a server

Free · MIT

  • No application or member limits
  • Your database, your domain
  • Docker Compose deployment
  • Telegram or SMTP notifications
  • Read the source, fork it
Deployment guide

Plan limits apply to the hosted service only — self-hosted installs are never capped.

Questions, answered

Do I need a Turso account?+

No. The default configuration uses a local libSQL file, which is SQLite-compatible. Point it at Turso when you want a hosted, replicated database.

Can I run it on my own server?+

Yes. One command brings up the web app, the MCP transport and the reminder scheduler. Migrations and first-boot setup run automatically, so there is no manual SQL.

Is the MCP server required?+

Not at all. It exposes the same service layer the web app uses as tools. Ignore it and the app behaves exactly the same.

What counts as a seat?+

One teammate with access to the workspace. A personal tracker needs exactly one, so Pro is $2/month; you only pay for more if you invite people to share a job search. Seats are also the member limit, so what you pay for is what you can use.

What happens to my data if I stop paying?+

It is your database, so it stays yours. Export everything to CSV at any time, or keep running the self-hosted build — plan limits are never enforced there.

Can I import my Notion tracker?+

Yes. Export your Notion database to CSV and import it from Settings; the importer validates stages, fits, seniorities and work modes as it goes and reports the rows it skipped.

Project completed and job offer illustration from unDraw

Stop losing follow-ups in a spreadsheet

Set it up in a minute, point Claude at it, and never miss a screen again.