Skip to main content

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.

Optional Company Hunt

For company career pages that need a real browser, add targets to config/career_pages.yml, then run the Company Career Hunt workflow from GitHub Actions. Results are committed to outputs/browser_hunt/jobs.json.

CLI Reference

  • job-hunter init <workspace> — create a workspace
  • job-hunter config check — validate config/job_hunter.yml
  • job-hunter doctor — check setup health
  • job-hunter hunt — discover and enrich jobs
  • job-hunter brief — write the daily briefing
  • job-hunter tailor — process job URLs or JD text
  • job-hunter dashboard, applications, analytics — inspect application state
  • job-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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

job_hunter_kit-0.10.tar.gz (287.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

job_hunter_kit-0.10-py3-none-any.whl (296.3 kB view details)

Uploaded Python 3

File details

Details for the file job_hunter_kit-0.10.tar.gz.

File metadata

  • Download URL: job_hunter_kit-0.10.tar.gz
  • Upload date:
  • Size: 287.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for job_hunter_kit-0.10.tar.gz
Algorithm Hash digest
SHA256 c179ed2c96015c506f79c0cd665d9da3740c70b5eedcc4890e6b0bc32bcacd1b
MD5 ca4e683b689fdbadda24ddbd1506bca8
BLAKE2b-256 db13879e77fc6e98096e29881fec321859795e130e32356f8aa7350b7120afba

See more details on using hashes here.

Provenance

The following attestation bundles were made for job_hunter_kit-0.10.tar.gz:

Publisher: release.yml on abdulrbasit/job-hunter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file job_hunter_kit-0.10-py3-none-any.whl.

File metadata

  • Download URL: job_hunter_kit-0.10-py3-none-any.whl
  • Upload date:
  • Size: 296.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for job_hunter_kit-0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 c49a52262666ef8aee50415c6a20b7954ab36265922f4a1a847695047f6ca39e
MD5 555b72af543dd24c08796d73a1514a3b
BLAKE2b-256 a4f7578ecea9b2b9e7d154c0b964c5e4a3b44f3837ec3b9a1b6f43aa72f115f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for job_hunter_kit-0.10-py3-none-any.whl:

Publisher: release.yml on abdulrbasit/job-hunter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page