freehire-market-fitlisted
Install: claude install-skill strelov1/freehire-cli
# Scoring a stack against the live market
Needs a key: `freehire auth login --token fhk_…` (or `FREEHIRE_TOKEN`).
`market-fit` scores a skill list against the live open-vacancy market for a
filtered role: the headline coverage (`N%` of vacancies list ≥1 of the skills), the
must-have skills held, and the missing skills that unlock the most new vacancies.
```bash
freehire market-fit --skills go,docker,react --category backend # score a whole stack
freehire market-fit --skills go --country BR # one skill = its demand under the filter
freehire --json market-fit --skills go,react --seniority senior | jq '{coverage_percent, gaps}'
```
Here `--skills` is the **measured set** (comma-separated or repeated), *not* a
filter. It takes the same facet flags as `search` to define the role: `--remote
--region --country --city --company --category --role --seniority
--employment-type --english-level --salary-min --visa`.
**Ground the skill slugs first.** Skills are canonical lowercase slugs (`go`,
`react`, `kubernetes`), and a slug the market does not use scores nothing rather
than erroring:
```bash
freehire --json facets --category backend | jq '.facets.skills'
```
Where the stack comes from, if the person has not typed it out: `freehire --json
profile | jq '.skills'` returns what they already saved.
## Reading the result honestly
Coverage is a statement about *vacancy listings*, not about employability. A 70%
coverage means 70% of the filtered vacancies name