Job search automation with LLM API pipeline mode and Claude Code agent mode.
Project description
Job Hunter
Job Hunter is an installable Python package for running a personal job-search workspace. It has one CLI and two modes:
agent: Python handles deterministic work; Claude/Codex skills handle screening, scoring, tailoring, and writing.llm-api: Python runs the autonomous LLM-backed pipeline for unattended jobs.
The default mode is agent.
Install
pip install job-hunter-kit
# or
uv tool install job-hunter-kit
Create a Workspace
job-hunter init my-job-hunter-workspace
cd my-job-hunter-workspace
cp .env.example .env
job-hunter config check
job-hunter doctor
Edit config/job_hunter.yml with deterministic machine choices: titles, regions, exclusions, profile paths, mode, scoring thresholds, LLM search gate, and provider/model choices. Put personal positioning and writing preferences in profile/career_context.md. Secrets use fixed environment variable names in .env or GitHub Actions.
Daily Use
job-hunter hunt --region primary
job-hunter brief
job-hunter dashboard --no-interactive
In agent mode, open the workspace in Claude Code or Codex and use:
/job-hunter brief
/job-hunter batch
/job-hunter one <url>
/job-hunter finalize
In llm-api mode, job-hunter hunt runs scrape, score, tailor, cover letter, PDF, tracker, and README updates in one pipeline.
Public CLI
job-hunter init <workspace>creates a workspace.job-hunter config checkvalidatesconfig/job_hunter.yml.job-hunter doctorchecks setup health.job-hunter huntdiscovers and enriches jobs.job-hunter briefwrites the daily briefing.job-hunter tailorprocesses provided job URLs or JD text.job-hunter dashboard,job-hunter applications, andjob-hunter analyticsinspect application state.job-hunter update-skillsrefreshes bundled.claude/skills/only.job-hunter versionandjob-hunter update-infoshow version and upgrade guidance.
Support commands such as agent-context, import-job, compile-pdf, update-readme, mark-processed, discard-job, cleanup-transient, and finalize-run exist for skills and automation.
Data Contract
Deterministic user choices live in config/job_hunter.yml; human career and writing guidance lives in profile/career_context.md. Persistent URL dedup lives in outputs/state/discovered_urls.yml. Product updates must not overwrite config/, profile/, outputs/, or .env.
See DATA_CONTRACT.md for the full contract.
Development
uv sync --extra dev
uv run pytest tests/ -q --tb=short
uv run ruff format --check job_hunter tests .github/scripts
uv run ruff check job_hunter tests .github/scripts
uv run ty check job_hunter tests
uv build
MIT licensed. See CONTRIBUTING.md.
Project details
Release history Release notifications | RSS feed
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 job_hunter_kit-0.1.tar.gz.
File metadata
- Download URL: job_hunter_kit-0.1.tar.gz
- Upload date:
- Size: 271.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
693d3cfd0c1601151eefc4e4309e88e3b9d7d4a44f5f4bedeeae30ee29408c24
|
|
| MD5 |
c32e09ad7713650692c3765b76f18e7e
|
|
| BLAKE2b-256 |
051c3d171c27e5410e4e7301f0e0193a6106b4cb2ec0516f8bb6cd327c0f7d4a
|
Provenance
The following attestation bundles were made for job_hunter_kit-0.1.tar.gz:
Publisher:
release.yml on abdulrbasit/job-hunter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
job_hunter_kit-0.1.tar.gz -
Subject digest:
693d3cfd0c1601151eefc4e4309e88e3b9d7d4a44f5f4bedeeae30ee29408c24 - Sigstore transparency entry: 1926118639
- Sigstore integration time:
-
Permalink:
abdulrbasit/job-hunter@6e75a5b10a4542d575792eb1010661748f132798 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/abdulrbasit
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6e75a5b10a4542d575792eb1010661748f132798 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file job_hunter_kit-0.1-py3-none-any.whl.
File metadata
- Download URL: job_hunter_kit-0.1-py3-none-any.whl
- Upload date:
- Size: 281.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1b9aa2837b261da725ab935433b641aeb8e0d44482b98e91c5a4e83a1111b6e
|
|
| MD5 |
6bdb992c0f2d1c13843891262a9cec65
|
|
| BLAKE2b-256 |
b5447cc973c390dfd80c5492c74a8e42aa6616da822db925cb63e9b21acd50ec
|
Provenance
The following attestation bundles were made for job_hunter_kit-0.1-py3-none-any.whl:
Publisher:
release.yml on abdulrbasit/job-hunter
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
job_hunter_kit-0.1-py3-none-any.whl -
Subject digest:
d1b9aa2837b261da725ab935433b641aeb8e0d44482b98e91c5a4e83a1111b6e - Sigstore transparency entry: 1926118742
- Sigstore integration time:
-
Permalink:
abdulrbasit/job-hunter@6e75a5b10a4542d575792eb1010661748f132798 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/abdulrbasit
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6e75a5b10a4542d575792eb1010661748f132798 -
Trigger Event:
workflow_dispatch
-
Statement type: