{"name":"me.freehire/freehire","slug":"freehire","title":"freehire","description":"freehire.me: search 3.3M+ IT jobs from 294K company boards, track applications, tailor CVs.","url":"https://mcp.market/server/freehire","rating":null,"grade":"A","score":93,"certified":false,"status":"active","category":"search","tags":["search"],"presence":{"score":48,"stars":16,"forks":6,"downloads_week":486,"last_push_at":"2026-10-28T23:49:57.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T08:25:31.315Z","last_ok_at":"2026-11-04T08:25:31.315Z","latency_ms":372},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/strelov1/freehire-mcp","website":"https://freehire.me/cli","version":"0.8.0","remotes":[{"type":"streamable-http","url":"https://freehire.me/api/v1/mcp"}],"packages":[{"registryType":"npm","identifier":"freehire-mcp","version":"0.8.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"A freehire personal API key (freehire.me -> account menu -> API keys). Optional: if omitted, the server reads the key the freehire CLI stored in ~/.freehire/creds.json.","format":"string","isSecret":true,"placeholder":"fhk_xxxxxxxx","name":"FREEHIRE_TOKEN"},{"description":"Override the API base URL. Defaults to https://freehire.me.","format":"string","default":"https://freehire.me","name":"FREEHIRE_API_URL"}]}],"tools":[{"name":"check_jobs_open","description":"Check 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slugs":{"type":["null","array"],"items":{"type":"string"},"description":"posting identifiers, as carried by search results' slug; up to 50 are checked per call"}},"required":["slugs"],"additionalProperties":false}},{"name":"fetch","description":"Read 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"a result id from search"}},"required":["id"],"additionalProperties":false}},{"name":"get_company","description":"Read 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","description":"the employer's identifier, as carried by a result's company_slug"}},"required":["slug"],"additionalProperties":false}},{"name":"get_job","description":"Read 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","description":"the posting's identifier, as carried by a search result's slug"}},"required":["slug"],"additionalProperties":false}},{"name":"job_market_stats","description":"How 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"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:produktchef"},"countries":{"type":["null","array"],"items":{"type":"string"},"description":"ISO 3166-1 alpha-2 codes, e.g. DE, BR"},"cities":{"type":["null","array"],"items":{"type":"string"}},"work_mode":{"type":["null","array"],"items":{"type":"string"},"description":"any of remote, hybrid, onsite"},"regions":{"type":["null","array"],"items":{"type":"string"},"description":"any of global, north_america, latam, eu, uk, mena, africa, apac, cis"},"seniority":{"type":["null","array"],"items":{"type":"string"},"description":"any of intern, junior, middle, senior, lead, staff, principal, c_level"},"category":{"type":["null","array"],"items":{"type":"string"},"description":"role family, e.g. backend, frontend, devops, data"},"skills":{"type":["null","array"],"items":{"type":"string"},"description":"technologies, e.g. go, kubernetes, react"},"require_all_skills":{"type":"boolean","description":"true: every listed skill must be present, not just one"},"exclude_skills":{"type":["null","array"],"items":{"type":"string"},"description":"technologies the posting must not ask for, e.g. php"},"employment_type":{"type":["null","array"],"items":{"type":"string"},"description":"any of full_time, part_time, contract, internship"},"salary_min":{"type":"integer"},"salary_currency":{"type":"string","description":"ISO 4217 code, e.g. USD"},"visa_sponsorship":{"type":["null","boolean"]},"english_level":{"type":["null","array"],"items":{"type":"string"},"description":"CEFR levels, e.g. B2, C1"},"relocation":{"type":["null","array"],"items":{"type":"string"},"description":"any of supported (the employer helps you move), required (the role needs you to move), not_supported"},"company_slugs":{"type":["null","array"],"items":{"type":"string"},"description":"employer identifiers, as carried by a result's company_slug"},"exclude_company_slugs":{"type":["null","array"],"items":{"type":"string"},"description":"employers to leave out, as carried by a result's company_slug"},"sources":{"type":["null","array"],"items":{"type":"string"},"description":"job boards to restrict to"},"posted_within_days":{"type":"integer"},"semantic":{"type":["null","boolean"],"description":"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 query"},"limit":{"type":"integer","description":"results per page"},"offset":{"type":"integer"}},"additionalProperties":false}},{"name":"list_filter_values","description":"The values one job-search filter accepts — skills, categories, seniorities, sources, countries and the rest — each with how many open postings carry it, most common first. A value not listed matches no posting. Use it before filtering on a value you are not sure of.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"filter":{"type":"string","description":"a job-search filter: one of category, seniority, skills, work_mode, regions, countries, cities, sources, employment_type, english_level, relocation"},"contains":{"type":"string","description":"keep only values containing this text, e.g. kube; for skills a known alias also finds its value, e.g. golang finds go"},"limit":{"type":"integer","description":"how many values to return, up to 200"}},"required":["filter"],"additionalProperties":false}},{"name":"salary_stats","description":"Salary 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"role family, e.g. backend, frontend, devops, data"},"seniority":{"type":"string","description":"any of intern, junior, middle, senior, lead, staff, principal, c_level"},"country":{"type":"string","description":"ISO 3166-1 alpha-2 code, e.g. DE"}},"additionalProperties":false}},{"name":"search","description":"Search freehire's IT job postings by free text. Returns matching postings as {id, title, url}.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"free text describing the jobs to find"}},"required":["query"],"additionalProperties":false}},{"name":"search_companies","description":"Find 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"free text, matched against the employer's name"},"countries":{"type":["null","array"],"items":{"type":"string"},"description":"ISO 3166-1 alpha-2 codes the employer hires in"},"limit":{"type":"integer"},"offset":{"type":"integer"}},"additionalProperties":false}},{"name":"search_jobs","description":"Search 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. A role has several names: join two or three in one query with OR, e.g. title:SRE OR title:\"site reliability\". Location, work mode, seniority and skills go in their filters, never in the query. If suspiciously few results come back, loosen one constraint at a time and say which. Present results as a table of title, company, location, posted date and link (the employer's posting and ours), naming the source. 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"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:produktchef"},"countries":{"type":["null","array"],"items":{"type":"string"},"description":"ISO 3166-1 alpha-2 codes, e.g. DE, BR"},"cities":{"type":["null","array"],"items":{"type":"string"}},"work_mode":{"type":["null","array"],"items":{"type":"string"},"description":"any of remote, hybrid, onsite"},"regions":{"type":["null","array"],"items":{"type":"string"},"description":"any of global, north_america, latam, eu, uk, mena, africa, apac, cis"},"seniority":{"type":["null","array"],"items":{"type":"string"},"description":"any of intern, junior, middle, senior, lead, staff, principal, c_level"},"category":{"type":["null","array"],"items":{"type":"string"},"description":"role family, e.g. backend, frontend, devops, data"},"skills":{"type":["null","array"],"items":{"type":"string"},"description":"technologies, e.g. go, kubernetes, react"},"require_all_skills":{"type":"boolean","description":"true: every listed skill must be present, not just one"},"exclude_skills":{"type":["null","array"],"items":{"type":"string"},"description":"technologies the posting must not ask for, e.g. php"},"employment_type":{"type":["null","array"],"items":{"type":"string"},"description":"any of full_time, part_time, contract, internship"},"salary_min":{"type":"integer"},"salary_currency":{"type":"string","description":"ISO 4217 code, e.g. USD"},"visa_sponsorship":{"type":["null","boolean"]},"english_level":{"type":["null","array"],"items":{"type":"string"},"description":"CEFR levels, e.g. B2, C1"},"relocation":{"type":["null","array"],"items":{"type":"string"},"description":"any of supported (the employer helps you move), required (the role needs you to move), not_supported"},"company_slugs":{"type":["null","array"],"items":{"type":"string"},"description":"employer identifiers, as carried by a result's company_slug"},"exclude_company_slugs":{"type":["null","array"],"items":{"type":"string"},"description":"employers to leave out, as carried by a result's company_slug"},"sources":{"type":["null","array"],"items":{"type":"string"},"description":"job boards to restrict to"},"posted_within_days":{"type":"integer"},"semantic":{"type":["null","boolean"],"description":"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 query"},"limit":{"type":"integer","description":"results per page"},"offset":{"type":"integer"}},"additionalProperties":false}},{"name":"similar_jobs","description":"Postings 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"type":"string","description":"the posting's identifier, as carried by a search result's slug"},"limit":{"type":"integer","description":"how many to return, up to 20"}},"required":["slug"],"additionalProperties":false}}],"scan":{"score":93,"grade":"A","scanned_at":"2026-11-03T14:21:44.199Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T14:21:44.142Z","components":{"code":{"score":25,"max":25,"notes":["7 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1205ms"]},"poisoning":{"score":15,"max":15,"notes":["11 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 6 days ago"]},"identity":{"score":8,"max":10,"notes":["endpoint served from the registry-verified namespace domain"]}},"findings":[],"inputs":{"probes":[{"url":"https://freehire.me/api/v1/mcp","reachable":true,"authRequired":false,"latencyMs":1205,"serverInfo":{"name":"freehire","version":"1.0"}}],"packages":[{"registryType":"npm","identifier":"freehire-mcp","version":"0.8.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-10-28T23:51:11.157Z","repositoryUrl":"git+https://github.com/strelov1/freehire-mcp.git","weeklyDownloads":486}],"repo":{"found":true,"owner":"strelov1","repo":"freehire-mcp","archived":false,"pushedAt":"2026-10-28T23:49:57Z","stars":16,"forks":6,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/10761735?v=4","ownerCreatedAt":"2015-01-29T18:02:25Z","license":"MIT"},"icon":{"url":"https://freehire.me/favicon.svg","source":"registry"},"presence":{"stars":16,"forks":6,"downloadsWeek":486,"license":"MIT","lastPushAt":"2026-10-28T23:49:57.000Z","score":48}}}},"grade_history":[{"kind":"restore","fromGrade":"B","toGrade":"A","reason":"score 93","createdAt":"2026-11-03T14:21:46.796Z"}],"reviews":[]}