
Job Tracker
io.github.adamwardeckiPublished by GitHub account adamwardeckiv0.4.0Updated Nov 7, 2026
Local job-search tracker: roles, a status machine with evidence, rules, interviews, daily reports.
Overview
A local job-search tracker that finds fitting roles, verifies them, tracks status, interviews and replies, and drafts applications for your approval.
- What you can do
- Run a daily sweep that finds roles matching your hard filters, verifies each on the employer's posting and dedupes against roles already touched
- Track roles through a status machine with evidence, rules, interviews and a kanban board, plus pipeline summaries and open items
- Prepare applications: verify, write, fill the form, read it back, then wait for your explicit approval before one submit attempt
- Draft cover letters, optionally as a one-page PDF, and interview prep from your own stories
- Turn your overrides into reusable rules, and write one short daily report
- When to use it
- Use it if you are running a focused, low-volume job search and want an assistant to keep a local pipeline, verify postings, prepare tailored applications and report daily, rather than mass-applying.
- Requirements
- Runs locally as a stdio server; needs Claude Code 2.1.295 or newer (Desktop or CLI) or Hermes Agent, and Node.js 22.18 or newer. The database lives in the folder set by JOB_TRACKER_HOME (default ~/.job-tracker). Gmail and Google Calendar connectors, a browser, and an optional read-only LinkedIn MCP server are recommended.
Installation
In SourceWeft
- Open Job Tracker in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Job Tracker
A Claude Code (and Hermes Agent) plugin that runs a disciplined job search for one person. Every weekday it finds roles that fit your hard filters, verifies each one on the employer's own posting, dedupes against everything you have touched, and prepares tailored applications. It submits only through the employer's official apply flow, and only after you approve. It tracks replies and interviews and writes one short daily report.
The design follows one principle: fewer, better applications.
Website: jobtrackermcp.com
Setup and usage docs: jobtrackermcp.com/docs.html
Status: early, and in active development. Expect rough edges, and expect the source adapters to break when job sites change. Issues and pull requests are welcome.
What it won't do
- Send email or LinkedIn messages. It writes drafts only, and a hook blocks every send tool.
- Submit an application without your
/job-tracker:approve <role_id>in the same session. - Create accounts, enter passwords, solve visible CAPTCHAs, tick consent boxes, or fill personal-data fields (passport, nationality, age, gender, marital status, ID numbers).
- Auto-apply at volume.
Requirements
- Claude Code 2.1.295 or newer (the Desktop app or the CLI), or Hermes Agent.
- Node.js 22.18 or newer. If it is missing,
/job-tracker:setupoffers to install it on macOS and Windows. The tracker uses the built-innode:sqlite, and Node runs the plugin's TypeScript directly. There are no runtime npm dependencies. - Recommended connectors: Gmail and Google Calendar.
- Recommended browser: Claude in Chrome or the host's built-in browser.
- Optional: a LinkedIn MCP server (read-only use: job search and inbox).
Full setup and usage instructions: jobtrackermcp.com/docs.html
Install
Claude Code:
Hermes Agent:
Restart Hermes and type /job-tracker:setup. Details:
docs/hermes.md.
The tracker is also in the MCP Registry as
io.github.adamwardecki/job-tracker, packaged as an MCPB bundle attached to each
GitHub release.
Commands
Your data
The tracker runs locally. A stdio server on ~/.job-tracker/tracker.db. No network listener, no token.
The directory is owner-only (0700), database is 0600. Nothing is sent to the plugin's author.
Hooks (hard gates)
Development
The code is TypeScript that Node runs directly (type stripping), so there is no build step and nothing to install at runtime.
See CONTRIBUTING.md before opening a pull request.
Design choices
- Local only. The tracker is SQLite behind a stdio server in
~/.job-tracker. - The daily run is a local scheduled task.
- LinkedIn is read-only and optional. Send and connect tools are blocked by a hook.
- Voice.
write-noteuses an installed humanizer or writing-style skill when present, else its own rules. - Templates ship neutral. Your own values go in through setup.
License
Source: README.md at commit 72d1307
Tools
0Version history
2- v0.4.0LatestNov 7, 2026
- v0.3.3Oct 21, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts