freehire
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
freehire.me: search 3.3M+ IT jobs from 294K company boards, track applications, tailor CVs.
| Author | me.freehire |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2857 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"freehire": {
"url": "https://freehire.me/api/v1/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (10)
check_jobs_openread-onlyCheck whether postings are still open, by the slugs search results carry — up to 50 per call. Use before acting on a saved shortlist: each posting answers open, closed or not_found, with when it closed or was last seen live.
Parameters:
slugs(required) — ['null', 'array'] — posting identifiers, as carried by search results' slug; up to 50 are checked per call
Hints: read-only yes · destructive no · idempotent no · open-world yes
fetchread-onlyRead one posting in full by an id search returned: its full text, the employer, the board it came from and whether it still looks live.
Parameters:
id(required) — string — a result id from search
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_companyread-onlyRead what freehire holds about one employer by the slug a result carries: what they do, which industries they are in, where they are based, and how many postings they have open.
Parameters:
slug(required) — string — the employer's identifier, as carried by a result's company_slug
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_jobread-onlyRead one posting in full by the slug a search result carries: the whole description, the stated requirements, which applicant tracking system handles applications, and whether the posting still looks live — when it was last seen open, a reality class, and any observed signs that it is not being filled.
Parameters:
slug(required) — string — the posting's identifier, as carried by a search result's slug
Hints: read-only yes · destructive no · idempotent no · open-world yes
job_market_statsread-onlyHow many open postings match a set of filters, and their most common role families, seniorities, skills, work modes, countries and regions. Takes the same filters as a job search.
Parameters:
limit— integer — results per pagequery— string — free text, matched against title, company, description and location. Operators: double quotes require every quoted word in any order (not a phrase); -word excludes; uppercase OR between terms matches any alternative (at most 5), e.g. golang OR rust; title: at the start of an alternative matches it in the title only, e.g. title:"product owner" OR title:produktchefcities— ['null', 'array']offset— integerskills— ['null', 'array'] — technologies, e.g. go, kubernetes, reactregions— ['null', 'array'] — any of global, north_america, latam, eu, uk, mena, africa, apac, cissources— ['null', 'array'] — job boards to restrict tocategory— ['null', 'array'] — role family, e.g. backend, frontend, devops, datasemantic— ['null', 'boolean'] — true: also match postings that describe the query in other words. Use it for a need described in words, e.g. 'keep our payment systems secure' or 'help kids learn to read'; leave it off for a job title or a non-technical role, which keywords answer better. Needs querycountries— ['null', 'array'] — ISO 3166-1 alpha-2 codes, e.g. DE, BRseniority— ['null', 'array'] — any of intern, junior, middle, senior, lead, staff, principal, c_levelwork_mode— ['null', 'array'] — any of remote, hybrid, onsiterelocation— ['null', 'array'] — any of supported (the employer helps you move), required (the role needs you to move), not_supportedsalary_min— integercompany_slugs— ['null', 'array'] — employer identifiers, as carried by a result's company_slugenglish_level— ['null', 'array'] — CEFR levels, e.g. B2, C1exclude_skills— ['null', 'array'] — technologies the posting must not ask for, e.g. phpemployment_type— ['null', 'array'] — any of full_time, part_time, contract, internshipsalary_currency— string — ISO 4217 code, e.g. USDvisa_sponsorship— ['null', 'boolean']posted_within_days— integerrequire_all_skills— boolean — true: every listed skill must be present, not just oneexclude_company_slugs— ['null', 'array'] — employers to leave out, as carried by a result's company_slug
Hints: read-only yes · destructive no · idempotent no · open-world yes
salary_statsread-onlySalary percentiles (25th, median, 75th) from open postings that state pay, scoped by role family, seniority and country, with the sample size behind each figure. Currencies and pay periods are reported separately, never converted.
Parameters:
country— string — ISO 3166-1 alpha-2 code, e.g. DEcategory— string — role family, e.g. backend, frontend, devops, dataseniority— string — any of intern, junior, middle, senior, lead, staff, principal, c_level
Hints: read-only yes · destructive no · idempotent no · open-world yes
searchread-onlySearch freehire's IT job postings by free text. Returns matching postings as {id, title, url}.
Parameters:
query(required) — string — free text describing the jobs to find
Hints: read-only yes · destructive no · idempotent no · open-world yes
search_companiesread-onlyFind employers in freehire's catalogue by name or by where they hire, with how many postings each has open. Use when the question is about a company rather than about a role.
Parameters:
limit— integerquery— string — free text, matched against the employer's nameoffset— integercountries— ['null', 'array'] — ISO 3166-1 alpha-2 codes the employer hires in
Hints: read-only yes · destructive no · idempotent no · open-world yes
search_jobsread-onlySearch freehire's catalogue of IT job postings. Use for any question about which jobs are open — by technology, seniority, location, pay or employer. Returns a short preview of each posting. Set semantic for a need described in words ("keep our payment systems secure"), not for a job title or a non-technical role, where plain keywords answer better.
Parameters:
limit— integer — results per pagequery— string — free text, matched against title, company, description and location. Operators: double quotes require every quoted word in any order (not a phrase); -word excludes; uppercase OR between terms matches any alternative (at most 5), e.g. golang OR rust; title: at the start of an alternative matches it in the title only, e.g. title:"product owner" OR title:produktchefcities— ['null', 'array']offset— integerskills— ['null', 'array'] — technologies, e.g. go, kubernetes, reactregions— ['null', 'array'] — any of global, north_america, latam, eu, uk, mena, africa, apac, cissources— ['null', 'array'] — job boards to restrict tocategory— ['null', 'array'] — role family, e.g. backend, frontend, devops, datasemantic— ['null', 'boolean'] — true: also match postings that describe the query in other words. Use it for a need described in words, e.g. 'keep our payment systems secure' or 'help kids learn to read'; leave it off for a job title or a non-technical role, which keywords answer better. Needs querycountries— ['null', 'array'] — ISO 3166-1 alpha-2 codes, e.g. DE, BRseniority— ['null', 'array'] — any of intern, junior, middle, senior, lead, staff, principal, c_levelwork_mode— ['null', 'array'] — any of remote, hybrid, onsiterelocation— ['null', 'array'] — any of supported (the employer helps you move), required (the role needs you to move), not_supportedsalary_min— integercompany_slugs— ['null', 'array'] — employer identifiers, as carried by a result's company_slugenglish_level— ['null', 'array'] — CEFR levels, e.g. B2, C1exclude_skills— ['null', 'array'] — technologies the posting must not ask for, e.g. phpemployment_type— ['null', 'array'] — any of full_time, part_time, contract, internshipsalary_currency— string — ISO 4217 code, e.g. USDvisa_sponsorship— ['null', 'boolean']posted_within_days— integerrequire_all_skills— boolean — true: every listed skill must be present, not just oneexclude_company_slugs— ['null', 'array'] — employers to leave out, as carried by a result's company_slug
Hints: read-only yes · destructive no · idempotent no · open-world yes
similar_jobsread-onlyPostings most similar to one posting, by its slug, nearest first — for "show me more like this". Empty for the newest postings, whose neighbours are not computed yet.
Parameters:
slug(required) — string — the posting's identifier, as carried by a search result's sluglimit— integer — how many to return, up to 20
Hints: read-only yes · destructive no · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.