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-job-searchgit 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-job-search)<a href="https://agentmods.dev/skills/strelov1/freehire-cli/freehire-job-search"><img src="https://agentmods.dev/badge/skills/strelov1/freehire-cli/freehire-job-search/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-job-search"><img src="https://agentmods.dev/badge/skills/strelov1/freehire-cli/freehire-job-search.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.00110 | $0.02089 |
| Opus 5 | $0.00055 | $0.01045 |
| Sonnet 5 | $0.00022 | $0.00418 |
| Haiku 4.5 | $0.00011 | $0.00209 |
Grade A, and why
freehire-job-search 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.
How it starts
The opening of the file, as written. The whole thing — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Finding jobs on freehire
freehire is a single static binary over the freehire.me
job API. It searches, filters and opens IT jobs without a browser. Every command
supports --json for a raw, faithful API payload (pipe to jq).
Needs a key: freehire auth login --token fhk_… (or FREEHIRE_TOKEN). A 401
means "run freehire auth login".
The loop
0. Read the person's own profile before asking them anything.
freehire profile # roles, skills, skills to avoid, geography, CV
freehire --json profile | jq '.skills, .cv.total_years'
They have already told freehire which roles and skills they want, which they
would rather avoid, and where and how they will work. Start from that and say what
you searched on; ask only about what it does not answer. It returns null data when
they have saved none — then point them at https://freehire.me/my/profile rather
than collecting the same answers in the conversation, because what they save there
also drives their recommendations and alerts. Contact details are never included.
1. Discover what you can filter by — before guessing values.
freehire facets # every filter's live values + counts, and skills
freehire facets --category backend # values relevant to a slice (e.g. backend skills)
freehire --json facets | jq '.facets.skills' # canonical skill slugs with demand
facets is the vocabulary source of truth: it returns each facet's valid values
(category, seniority, regions, countries, role, skills, english_level,
…) with a vacancy count each, plus numeric ranges (salary_min, …). Read it first
so search filters use real values and skills use canonical slugs. Skills are
lowercase slugs (go, react, kubernetes) — do not invent facet values.
2. Search with keyword + facet filters.
freehire search "golang" --remote --region eu --seniority senior
freehire search "data" --country BR --employment-type full_time
freehire search "AI" --country IT --employment-type contract --exclude-skill python
freehire search "backend" --facet source=greenhouse # any facet via --facet key=value
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 · 169 lines · 110 tokens per session scan A 349b878c0647
freehire-job-search is a skill published in the GitHub repository strelov1/freehire-cli (5 stars, last pushed 5d ago), licensed MIT. It adds 110 tokens to every session and 2,089 once invoked, about $0.0006 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…