Skip to main content

Action-based CLI for tracking a job hunt

Project description

jobhound

Action-based CLI for tracking a personal job hunt. Status changes are a consequence of recorded events (apply, log, withdraw, …), not direct field edits.

Install

uv tool install jobhound   # or: pipx install jobhound

Exposes the jh command.

Usage

jh new --company Acme --role "Senior Engineer"
jh apply acme
jh log acme --channel email --direction to --who recruiter \
            --body draft.md --next-status screen
jh note acme --msg "Recruiter mentioned a hybrid setup"
jh withdraw acme
jh list
jh show acme                # human-readable detail; --json for the envelope
jh export --active-only     # bulk JSON envelope to stdout

Each command is a verb on a single opportunity. Run jh --help for the full set: new, apply, log, withdraw, ghost, accept, decline, note, priority, tag, link, contact, list, edit, archive, delete, sync, show, export.

jh export filters: --status and --priority (comma-separated or repeatable), --slug (substring), --active-only, --include-archived.

Storage

Per-opportunity data is stored under $XDG_DATA_HOME/jh/ (defaults to ~/.local/share/jh/) as a TOML file plus markdown notes and correspondence. The data root is a git repo with auto-commits on every state change — your history is auditable and you can push it anywhere.

AI integration (MCP)

jh ships a Model Context Protocol server so AI clients (Claude Desktop, Claude Code, Continue, Zed, …) can read and modify your job hunt directly. All 32 CLI verbs are exposed as MCP tools.

Install the optional extra:

uv tool install 'jobhound[mcp]'

Then point your MCP client at the server. For Claude Desktop, add to claude_desktop_config.json:

{
  "mcpServers": {
    "jobhound": {
      "command": "jh",
      "args": ["mcp"]
    }
  }
}

For zero-install discovery (no uv tool install needed):

{
  "mcpServers": {
    "jobhound": {
      "command": "uvx",
      "args": ["--from", "jobhound[mcp]", "jh-mcp"]
    }
  }
}

The same pattern works for Claude Code (.mcp.json), Continue, Zed, and any other MCP-spec-compliant client.

By default the AI gets full CLI parity — including writes. Most MCP clients show each tool call to the user before executing it; that's the consent layer. The one tool that requires explicit double-confirmation is delete_opportunity, which needs confirm=true in the call args (otherwise it returns a preview only, no side effects).

Status

Pre-1.0. The CLI surface is stable; semantic-versioned releases via Conventional Commits.

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

jobhound-0.5.0.tar.gz (29.1 kB view details)

Uploaded Source

Built Distribution

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

jobhound-0.5.0-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

File details

Details for the file jobhound-0.5.0.tar.gz.

File metadata

  • Download URL: jobhound-0.5.0.tar.gz
  • Upload date:
  • Size: 29.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for jobhound-0.5.0.tar.gz
Algorithm Hash digest
SHA256 3d8583a77f958d9afc06cf1594f8ad8f588fea297d205ee6c719aad7f73d6019
MD5 4bd07fe994a5b15e668bd2f1bbd9eecc
BLAKE2b-256 7196d75a10839eff7047c7be0e005c12c44034f0a67c8f32aee3d6c6076a8a34

See more details on using hashes here.

Provenance

The following attestation bundles were made for jobhound-0.5.0.tar.gz:

Publisher: release.yml on yo61/jobhound

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

File details

Details for the file jobhound-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: jobhound-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for jobhound-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba0d03a637911e288517df03e0c158883a31a1dcd207e69e86a6360908cb23b9
MD5 8b2dff21afd96a905ddaf443882d7d9b
BLAKE2b-256 a461dfa9580cae0612b59fa11ab47eb00f7d98bad1bb4f5473788691fb2e8094

See more details on using hashes here.

Provenance

The following attestation bundles were made for jobhound-0.5.0-py3-none-any.whl:

Publisher: release.yml on yo61/jobhound

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