Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add strelov1/freehire-cli --skill freehire-market-fitgit clone --depth 1 https://github.com/strelov1/freehire-cliWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/strelov1/freehire-cli/freehire-market-fit)<a href="https://agentmods.dev/skills/strelov1/freehire-cli/freehire-market-fit"><img src="https://agentmods.dev/badge/skills/strelov1/freehire-cli/freehire-market-fit/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/strelov1/freehire-cli/freehire-market-fit"><img src="https://agentmods.dev/badge/skills/strelov1/freehire-cli/freehire-market-fit.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00081 | $0.00559 |
| Opus 5 | $0.00041 | $0.00280 |
| Sonnet 5 | $0.00016 | $0.00112 |
| Haiku 4.5 | $0.00008 | $0.00056 |
Grade A, and why
freehire-market-fit scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
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.
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:
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 at least one skill in the set — it does not mean they would pass 70% of the screens. Say what was measured, under which filter, and how many vacancies were in scope.
A gap is worth naming only with the number attached: "adding Kubernetes reaches another 1,240 vacancies in this filter" is usable advice, "you should learn Kubernetes" is not.
To act on a specific vacancy rather than the market as a whole, use the freehire-tailor-cv skill.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 49 lines · 81 tokens per session scan A b4106a5e8350
freehire-market-fit is a skill published in the GitHub repository strelov1/freehire-cli (5 stars, last pushed 5d ago), licensed MIT. It adds 81 tokens to every session and 559 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
resume
Generate a tailored resume AND cover letter for a job description via the native four-role Resume Team, score both against ATS and HR rubrics, create DOCX files, and update the tracker. Use when the user pastes a job description and wants a complete application package (resume plus cover letter) with dual scoring and…
writing-coach
Human-voice writing coach that rewrites resumes and cover letters for brevity, burstiness, plain language, and authentic impact, and blocks AI-sounding prose. Use when the user wants to improve writing quality, fix robotic or generic AI-sounding text, cut fluff, strengthen bullets and summaries, or pass the…
find-jobs
Search live job boards for roles that match the master resume, then score and rank them by ATS and HR fit. Use when the user wants to discover or find jobs, search openings by title or location, wants remote roles, or asks which live listings best match their background. Uses the discoverjobs MCP tool and never…
cover-letter
Create a compelling one-page, human-voice cover letter for a job description and generate the final DOCX. Use when the user wants a cover letter only (no resume), pastes a JD and asks for a letter, or needs a letter to accompany an already-tailored resume. Runs the mandatory humanvoiceaudit before producing the DOCX.
job-fit
Run the deterministic, digest-bound candidate-fit gate that scores the configured master resume against an exact job description before any resume tailoring. Use when the user wants a GO/NO-GO fit check on a JD, asks "should I apply", or before starting resume work, to confirm score >= 70 with zero hard knockouts.…
setup
One-time setup for Resume Builder — Python dependencies, config.json, cloud or local scoring, and optional LLM features. Use once right after installing, or when the user reports missing dependencies, a missing or incomplete config, wants to switch between cloud and local scoring, or wants to enable AI-augmented…