Job search automation with LLM API pipeline mode and AI agent mode.
Project description
Job Hunter
Job hunting is repetitive work. Job Hunter automates the parts that don't need you: scraping listings across major job boards, scoring each one against your profile, tailoring your resume per application, and drafting cover letters. You handle the conversations.
Works interactively inside Claude Code, Codex, Gemini CLI, or GitHub Copilot, or runs fully autonomous via LLM API for unattended pipelines and GitHub Actions.
What It Does
- Discovers jobs across LinkedIn, Indeed, Glassdoor, Himalayas, Remotive, and more — filtered by your titles, regions, and exclusions
- Scores each listing against your career context so you know what to prioritize
- Tailors your resume per job and generates a cover letter, ready for PDF export
- Tracks applications with a dashboard and analytics so nothing slips through
Install
pip install job-hunter-kit
# or
uv tool install job-hunter-kit
Quick Start
job-hunter init my-workspace
cd my-workspace
cp .env.example .env
job-hunter config check
job-hunter doctor
Edit config/job_hunter.yml with your titles, regions, exclusions, profile paths, scoring thresholds, and provider/model choices. Put your positioning, writing style, and career context in profile/career_context.md. Secrets use fixed environment variable names in .env or GitHub Actions.
Modes
| Mode | What runs | When to use |
|---|---|---|
agent |
Python prepares context; Claude Code, Codex, Gemini CLI, or Copilot skills handle scoring, tailoring, and writing | Interactive daily review |
llm-api |
Full autonomous pipeline; LLM APIs called inside Python | Unattended runs and GitHub Actions |
Set mode: in config/job_hunter.yml. Default is agent.
Daily Workflow
job-hunter hunt --region primary
job-hunter brief
job-hunter dashboard --no-interactive
In agent mode, open the workspace in Claude Code, Codex, Gemini CLI, or GitHub Copilot 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 in one pipeline.
CLI Reference
job-hunter init <workspace>— create a workspacejob-hunter config check— validateconfig/job_hunter.ymljob-hunter doctor— check setup healthjob-hunter hunt— discover and enrich jobsjob-hunter brief— write the daily briefingjob-hunter tailor— process job URLs or JD textjob-hunter dashboard,applications,analytics— inspect application statejob-hunter update-skills— refresh bundled.claude/skills/job-hunter version,update-info— version and upgrade guidance
Support commands (agent-context, import-job, compile-pdf, update-readme, mark-processed, discard-job, cleanup-transient, finalize-run) are used by skills and automation.
Data Contract
Your data stays yours. Product updates must not overwrite config/, profile/, outputs/, or .env. Deterministic choices live in config/job_hunter.yml; career and writing guidance lives in profile/career_context.md; URL dedup state lives in outputs/state/discovered_urls.yml.
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.
Lineage
Job Hunter is the evolution of a single experiment: job-hunter-core and job-hunter-template worked as one system to prove the pipeline, the workspace model, and the agent skill layer — everything this package ships today.
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.8.tar.gz.
File metadata
- Download URL: job_hunter_kit-0.8.tar.gz
- Upload date:
- Size: 291.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2930ea8ff01ca1c3f77bf4a4131d26f574171af8cc87323c508434a18a45305
|
|
| MD5 |
0484d21b55af3845d6710acef6094e42
|
|
| BLAKE2b-256 |
702d826fb46ca8cc593bbf422619eeedc7574da84e6347755240b80d54507147
|
Provenance
The following attestation bundles were made for job_hunter_kit-0.8.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.8.tar.gz -
Subject digest:
a2930ea8ff01ca1c3f77bf4a4131d26f574171af8cc87323c508434a18a45305 - Sigstore transparency entry: 1936229963
- Sigstore integration time:
-
Permalink:
abdulrbasit/job-hunter@4789834d81209ea1757d8a4c7e517f1a2815a8ea -
Branch / Tag:
refs/heads/main - Owner: https://github.com/abdulrbasit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4789834d81209ea1757d8a4c7e517f1a2815a8ea -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file job_hunter_kit-0.8-py3-none-any.whl.
File metadata
- Download URL: job_hunter_kit-0.8-py3-none-any.whl
- Upload date:
- Size: 301.5 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 |
cd19f202c7fdf47f915c5c2fabd4345d24c36ffea7135184cc9b113220b5ee1b
|
|
| MD5 |
ead9459d38709c5dfefdbbebc1a9a9f2
|
|
| BLAKE2b-256 |
8f81febca5a02760a29fcae3d5c4cf539d847c632ae650c18477dbdc12f90e24
|
Provenance
The following attestation bundles were made for job_hunter_kit-0.8-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.8-py3-none-any.whl -
Subject digest:
cd19f202c7fdf47f915c5c2fabd4345d24c36ffea7135184cc9b113220b5ee1b - Sigstore transparency entry: 1936230084
- Sigstore integration time:
-
Permalink:
abdulrbasit/job-hunter@4789834d81209ea1757d8a4c7e517f1a2815a8ea -
Branch / Tag:
refs/heads/main - Owner: https://github.com/abdulrbasit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4789834d81209ea1757d8a4c7e517f1a2815a8ea -
Trigger Event:
workflow_dispatch
-
Statement type: