// freehire on the command line

Search and track
from the terminal.

freehire is a small CLI — and an MCP server — over the same job API the site runs on. One API key lets an AI agent or a script search and open jobs, then track applications and notes without a browser. (You still apply on the employer's site; the CLI records that you did.)

terminal
# install — no Go needed
curl -fsSL https://freehire.dev/install.sh | sh

# authenticate once (key from /my/api-keys)
freehire auth login --token fhk_…

# discover the market, then search
freehire facets
freehire search "golang" --remote --region eu

// commands

Discover

freehire facets
Every filter's live values + counts — the vocabulary to filter by.
freehire market-fit --skills go,react
How much of the live market your skills cover, and the gaps.
freehire search <query>
List matching jobs (add --remote, --region, --company).
freehire job <slug>
Show a job's full content.
freehire company <slug>
Show a company and its open jobs.

Track applications & notes

freehire apply <slug>
Mark a job applied for your account.
freehire save <slug>
Bookmark a job (unsave to remove).
freehire stage <slug> <stage>
Set the application stage.
freehire note <slug> <text>
Attach a free-text note.
freehire my --filter applied
Your tracked jobs (all|viewed|saved|applied).

Start from freehire facets — it lists every filter's live values so search and market-fit use real values, not guesses. Everything you save, apply to and stage shows up on your Tracking board. stage takes a controlled value: applied → screening → responded → interview → offer → accepted, plus rejected / withdrawn.

Tailor a CV to a vacancy CLI only

After a fit analysis, reframe your CV toward one job — grounded in what you actually did, never fabricated — then export an ATS-ready PDF.

freehire cv context <id>        # the fit analysis to reframe toward
freehire cv edit <id> --patch …  # apply a field-level edit
freehire cv render <id> --out cv.pdf

// mcp

Same key, any AI host

freehire-mcp exposes the same search, market-fit and tracking tools over the Model Context Protocol — so Claude Desktop, Claude Code or any MCP host can drive freehire directly. It runs via npx; no global install.

It shares the CLI's credentials: if you've run freehire auth login, omit env and it reads ~/.freehire/creds.json.

~/.claude.json
{
  "mcpServers": {
    "freehire": {
      "command": "npx",
      "args": ["-y", "freehire-mcp"],
      "env": { "FREEHIRE_TOKEN": "fhk_…" }
    }
  }
}

// for ai agents

A drop-in agent skill teaches the discover → search → apply loop; drop it into a Claude Code (or compatible) skills directory. Every command takes --json for the raw API payload — results go to stdout, errors to stderr, and a non-zero exit code signals failure. The same endpoints are documented in the API reference.

// moderators

With the moderator role you can author postings:

freehire jobs add --url <url> --title "Senior Go Developer" --company Acme
freehire jobs edit <slug> --title "Staff Go Developer"

Free and open source — no tracking, no lock-in. Read every line of the CLI ↗ and the MCP server ↗ on GitHub.