jobtracker
Score job postings, tailor resumes, and track applications with AI agents. Agents and skills
for the coding agent you already use, paired with a local CLI (jobtracker, or jta). Your
job-search data — scores, applications, resume content, preferences — lives in its own directory
you control, never inside this package.
Quick Install
curl -fsSL https://jpatrickb.github.io/jobtracker/install.sh | bash
Installs via uv or pip, then launches the setup wizard: picks a data directory, then offers to
run npx jobtracker-agents — pick which coding agent(s) you use and it installs the right files for
each, plus your skills. On Claude Code or Codex, it can then drop you straight into a live session
that's already running the preferences-onboarding skill, so the interview (hard gates, qualitative
preferences, resume import, rubric weights) starts immediately. Not on Node? The wizard prints the
equivalent manual commands instead — see Supported Platforms below.
Supported Platforms
npx jobtracker-agents
Lets you pick which agent(s) you use (Claude Code, Codex, Kilo Code, Cursor, Pi) and installs the right files for each, then offers to install skills too. This is what the setup wizard runs for you; run it yourself anytime to add another agent later, or if you skipped it during setup.
| Platform | Agents | Manual install (if you'd rather not use npx jobtracker-agents) |
|---|---|---|
| Claude Code | agents/ |
/plugin marketplace add jpatrickb/jobtracker then /plugin install jobtracker@jobtracker-marketplace |
| Codex | .codex/agents/ |
auto-discovered |
| Kilo Code | .kilo/agents/ |
auto-discovered |
| Cursor | cursor-agents/ |
/add-plugin jpatrickb/jobtracker (run inside Cursor — this one can't be scripted, jobtracker-agents just prints it too) |
| Pi | pi/agents/ |
see linked docs |
Skills need no per-platform port — npx skills add jpatrickb/jobtracker installs all 4
(resume-update, resume-onboarding, submit-application, preferences-onboarding) on any of the
above via Agent Skills. jobtracker-agents offers to run this for you too.
AGENTS.md (not CLAUDE.md) is the data directory's instructions file — an agent-agnostic
convention several tools converge on.
Manual Setup
pip install jobtracker # or: uv tool install jobtracker / pipx install jobtracker
jobtracker setup # or: jobtracker init [path] for a non-interactive equivalent
| PDF builds | Typst — brew install typst |
Then run npx jobtracker-agents (or see Supported Platforms above for manual steps).
What's Inside
Agents — dispatch directly, run several in parallel, one instance per posting.
| Agent | What it does |
|---|---|
job-scorer |
Scores a posting against your rubric and hard gates, logs it to the tracker. |
tailor-application |
Builds a tailored resume + cover letter for one posting. Ends with NEEDS REVIEW — dispatch resume-reviewer next. |
resume-reviewer |
Independent second pass on any resume or cover letter draft. |
Skills — conversational, run inline in your session, not for bulk dispatch.
| Skill | What it does |
|---|---|
preferences-onboarding |
Interviews you to set up hard gates, qualitative preferences, and the rubric — usually the first skill you run, often auto-launched right after install. |
resume-update |
General master-resume maintenance. |
resume-onboarding |
One-time interview that builds your evidence ledger (EVIDENCE.md, BULLETS.md). |
submit-application |
Pre-submit checklist, then a human-confirmation gate before marking a job Applied. |
The Rule
No claim, number, or rewrite goes on a resume or cover letter unless it traces to a verified item in your evidence ledger, a measured value, or a signed-off estimate. Every agent and skill defers to this.
Data Directory
~/JobTracker/
├── .jobtracker/ # applications.json database
├── RUBRIC.md # scoring weights
├── PREFERENCES.md # hard gates + preferences
├── SCORING.md # scoring-stack version
├── corrections.md # scoring corrections log
├── anchors/ # calibration jobs
├── listings/ # posting text + extracted facts
├── inbox/ # postings waiting to be scored
├── applications/ # one folder per tailored application
├── resume/ # EVIDENCE.md, BULLETS.md, VOICE.md (optional)
└── AGENTS.md, CLAUDE.md # agent instructions (CLAUDE.md is a symlink)
Customizing
| Default | Where |
|---|---|
| Resume length (1 page) | resume-reviewer's instructions |
| Cover-letter policy (only when asked) | tailor-application's instructions |
| Status lifecycle | a constant in the CLI source |
| Scoring model | model: in job-scorer's frontmatter |
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jobtracker-0.2.0.tar.gz.
File metadata
- Download URL: jobtracker-0.2.0.tar.gz
- Upload date:
- Size: 50.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5faf69a4469cdd46d78d56ba7f1a8f05cecc09197169e7b92d49a694f30f8bb1
|
|
| MD5 |
5dddcc4ad2b941ebed8319b6b6d0de5e
|
|
| BLAKE2b-256 |
4d17fe25582879af8b6c9df0764c5a52c8368501cbe0d033aaafc28f2eccd72f
|
Provenance
The following attestation bundles were made for jobtracker-0.2.0.tar.gz:
Publisher:
publish.yml on jpatrickb/jobtracker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jobtracker-0.2.0.tar.gz -
Subject digest:
5faf69a4469cdd46d78d56ba7f1a8f05cecc09197169e7b92d49a694f30f8bb1 - Sigstore transparency entry: 2335512309
- Sigstore integration time:
-
Permalink:
jpatrickb/jobtracker@10b2c73f320896c66b293602662f51ed51854ff3 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/jpatrickb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@10b2c73f320896c66b293602662f51ed51854ff3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file jobtracker-0.2.0-py3-none-any.whl.
File metadata
- Download URL: jobtracker-0.2.0-py3-none-any.whl
- Upload date:
- Size: 58.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a281a53b4d9f580377565bcd490f1f8130119666dede74de0ec33044bab03a20
|
|
| MD5 |
3c51ba599675a7a04977e6be5932c0ef
|
|
| BLAKE2b-256 |
c6c09bd17c8060b6021c11e7476143a9ddf1faa0aaafe9607b491daec5765a32
|
Provenance
The following attestation bundles were made for jobtracker-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on jpatrickb/jobtracker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jobtracker-0.2.0-py3-none-any.whl -
Subject digest:
a281a53b4d9f580377565bcd490f1f8130119666dede74de0ec33044bab03a20 - Sigstore transparency entry: 2335512323
- Sigstore integration time:
-
Permalink:
jpatrickb/jobtracker@10b2c73f320896c66b293602662f51ed51854ff3 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/jpatrickb
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@10b2c73f320896c66b293602662f51ed51854ff3 -
Trigger Event:
release
-
Statement type: