openhire
Job postings with the employer's REAL posting date, pulled from Greenhouse / Lever / Ashby / 北森 Beisen / Moka ATS APIs. MCP server + CLI for Claude, Cursor and any agent. 139 employers in AI infra, autonomous driving 智驾 and embodied AI 具身. Your résumé never leaves your machine.
Install / Use
claude mcp add gzchenhao -- npx -y github:gzchenhao/openhireIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Human ResourcesSupported Platforms
Our assessment of openhire
openhire scores 84/100 on our quality scale, 45th of 65 Human Resources skills we index.
Its MCP Server is 35 KB long, well organised into 21 sections with 15 code examples: a thorough specification that gives an agent plenty to work with.
It has 10 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated today, so openhire is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
openhire compared with similar skills
All 4 of these similar skills score higher than openhire; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| openhire (this skill)by gzchenhao | 84 | 10 | today | MCP Server |
| Agent-Reachby Panniantong | 100 | 96.4k | 4d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.1k | 1d ago | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.4k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 87.0k | 1d ago | MCP Server |
Frequently asked questions
- How do I install openhire?
- Run
claude mcp add gzchenhao -- npx -y github:gzchenhao/openhire. The install tabs above show the steps for each supported agent. - Which AI agents does openhire work with?
- It is written for Claude Code, Claude Desktop and Cursor, as a MCP Server file. Other agents that read the same format can often use it too.
- Is openhire safe to use?
- It is MIT-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is openhire still maintained?
- The repository was last updated today, so openhire is actively maintained.
Skill content
View source on GitHubOpenHire · 开聘
<p align="center"><img src="docs/quickstart.svg" alt="30-second quickstart: pipx install openhire, ohp bootstrap, ohp search" width="880"></p> <p align="center"><sub>Real terminal output — install from PyPI, download the public index, search. No account, no signup.</sub></p>A job-search radar for your AI assistant — first-party listings, every posting's real age, and your résumé never touches our servers. 让 AI 助手替你盯岗的求职雷达 —— 一手职位、岗位在架时长打分,简历不经过我们的服务器。
Every number here is checkable. Open-duration report (per-employer medians, named, monthly) · numbers.json (the provenance of every figure we quote, regenerated each refresh) · raw report data. 我们引用的每个数字都能核:岗位在架时长月报 · numbers.json
Is your company in here, and you did not put it here? Your postings are in this index because your own careers page serves them publicly. We can measure how long a role has been open; we cannot see why, and a long-open role is a question, not a verdict. Claim your company — free, no payment, ever — and say why in your own words, or ask us to remove you and we will, without arguing. 贵公司被收录了、而且不是贵公司提交的?点这里认领,免费, 可以用自己的话解释,也可以直接要求我们移除。
三不原则 · Three things OpenHire never does
- 不存简历 · No résumé, ever. 简历留在你的电脑上。过网的只有一个你自己生成的匿名指纹和岗位号;协议里没有简历字段,多传一个
resume参数会被拒绝,CI 测试钉死。 Your résumé stays on your machine. Only an anonymous, client-generated fingerprint and a job id ever cross the wire; the protocol has no résumé field, an extraresumeargument is refused, and CI pins it. - 不刷假单 · Never applies for you. 它只把你送到雇主自己的投递页,从不向任何 ATS 提交申请;连表单长什么样,我们的测试也只用一次普通 GET 看,到此为止。 It hands you the employer's own apply page and never submits anything to any ATS. Even our own tests only GET the form once and stop.
- 不追踪 · No tracking. 不埋点、不统计谁看了什么。服务器只记一条匿名授权(指纹 + 岗位号),没有你是谁;索引本身跑在你自己的机器上。 No analytics, no view counting, no telemetry. The server keeps one anonymous authorization record (fingerprint + job id) and nothing about who you are; the index itself runs on your machine.
还有一条不在这三条里,但同样锁死:排序买不到,它是(匹配度,新鲜度)的纯函数,见下文三条隐私红线。 One more that is locked the same way: ranking cannot be bought; it is a pure function of (match, freshness). See the three red lines below.
What your agent actually sees
You ask your assistant a question in plain language. It calls search_jobs, and every row comes
back carrying the employer's real posting date — so the agent can reason about staleness
instead of guessing.
You: Any senior Python roles that are actually still open? Skip the stale ones.
// one row from search_jobs — trimmed to the fields that matter here
{
"title": "Senior Python Engineer",
"company": "MongoDB",
"datePosted": "2026-03-31", // from the employer's ATS, not a board's refreshed label
"days_open": 166,
"ghost_score": 0.61, // pure f(relist_count, datePosted) — frozen by a test
"apply_channel":"https://boards.greenhouse.io/…", // straight to the employer
"verified_at": "2026-09-02T09:47:10Z"
}
Assistant: This one has been open 166 days with a ghost_score of 0.61 — I'd deprioritise it. Here are four posted in the last three weeks instead…
ghost_score measures how long a posting has been open, not whether the employer still intends
to hire. A long-open role can equally mean "hard to fill". Treat it as a reason to ask, not a verdict.
An MCP server that turns any MCP-speaking assistant — Claude, 豆包 Doubao, DeepSeek (through an MCP client such as Cherry Studio or Chatbox), Cursor, 腾讯 WorkBuddy, TRAE, Windsurf, Cline, ChatGPT via connectors — into a private radar for AI / Infra, autonomous-driving and embodied-AI jobs — pulled straight from 143 employers' own career sites and public ATS APIs (Greenhouse / Lever / Ashby / 北森 Beisen / Moka, plus first-party employer career sites such as Li Auto's), across the US, Europe and China (Waymo, Figure, Zoox — and Unitree, XPeng, UBTECH, Mech-Mind…). No account. No signup. No résumé upload. Ever.
Three things a job board won't do for you:
- Surfaces how long each role has really been open. Every listing carries a
ghost_scoreaged off the employer's real posting date where the employer's system reports one (otherwise the day this index first saw it, flaggeddate_signal): the "2 days ago" a board shows you can be 300 days old in the ATS. - Structural privacy, not a pinky-promise. There is no résumé field in the protocol; a CI test fails the build if anyone adds one. Matching runs on your machine — only an anonymous fingerprint reaches the server.
- Ranking you can't buy. Order is a locked pure function of (match, freshness). No sponsored slots, no bidding — the signature is frozen by a test.
This is the 「哨兵 / Sentinel」 reference implementation — see
design_handoff_openhire_v01/README.md for the full protocol spec.
Quickstart — under a minute
Nothing to install, and no crawl to sit through. Add this to your MCP client's config:
{ "mcpServers": { "openhire": { "command": "uvx", "args": ["openhire@latest", "serve"] } } }
Then ask your assistant for a job. That is the whole setup. The server downloads the ~30 MB public index by itself in the background on first start, so searches fill in within a couple of minutes while you are already talking to it. No account, no signup, no résumé upload.
The one prerequisite is uv (it provides uvx). Without it the
config above fails with nothing but "server failed to start", so install it first:
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
irm https://astral.sh/uv/install.ps1 | iex # Windows PowerShell
On Claude Desktop you can skip even that — download
openhire-0.8.6.mcpb and
double-click it. No terminal, no Python, no uv.
On Cursor, one click (it still needs uv on your PATH):
Per-client config paths and the trade-offs of uvx vs a one-time install are in
Works with below.
pipx install openhire # keeps it isolated and puts `ohp` on your PATH
ohp bootstrap # 143 employers · ~17k live postings · no account
ohp search --required-skills rust,k8s --remote --role-family engineering
ohp search --currency CNY --role-family engineering # e.g. CN 智驾 / robotics roles
ohp bootstrap downloads the public snapshot (~30 MB, no account) and then runs one
incremental crawl to refresh verified_at and catch delistings. The crawl is the slow
part — a line per employer, 20+ minutes on a cold index — and you can stop it once the
snapshot is in; the index is already usable, just verified as of the last weekly refresh
rather than today. The MCP path above needs none of this: serve fetches the snapshot by
itself in the background.
Works with
All clients use the same MCP entry. The config below works in every MCP client and pulls the package on demand — but it does need uv present first.
New to MCP? Two shortcuts before the config below. Claude Desktop: download
openhire-0.8.6.mcpband double-click it. No terminal, no Python. Cursor —(needs
uvinstalled). 腾讯 WorkBuddy / Cursor / Claude Code / TRAE — or paste this to your agent: "Install the MCP server at github.com/gzchenhao/openhire. Installuvfirst if it is missing, then adduvx openhire@latest serveto my MCP config and tell me which file you changed." 豆包(豆包工作) — its custom connectors take an HTTP address, not a command: runohp serve --transport streamable-http --port 8000on your machine, then addhttp://127.0.0.1:8000/mcpas a 自定义连接器 (see the 豆包 entry under Works with). DeepSeek — the DeepSeek app has no MCP slot; use DeepSeek inside an MCP client (Cherry Studio, Chatbox, Cline, WorkBuddy, TRAE) and give that client the config below.
Prerequisite: uvx ships with uv. Without it the config
below fails with nothing but "server failed to start" in your client — install uv first:
curl -LsSf https://astral.sh/uv/install.sh | sh # macOS / Linux
irm https://astral.sh/uv/install.ps1 | iex # Windows PowerShell
{ "mcpServers": { "openhire": { "command": "uvx", "args": ["openhire@latest", "serve"] } } }
First start downloads a ~30 MB index in the background; searches fill in within a few minutes.
Stuck? Run
ohp doctor. It checks the three things that all look identical from the chat window —uvmissing, no index yet, server configured but not enabled — and reads every client config it can find. It runs in your terminal, which matters: if the client never started our server, nothing we wrote inside it can reach you.Editing the config may not be the last step. Several clients require you to enable or trust a newly added server before its tools load — the config is saved, the server never starts, and the only symptom is that your assistant does not seem to know about the tools. If a search does nothing, open your client's MCP/connectors panel and check that openhire is listed and switched on. (Claude Desktop needs a full quit and reopen; Cursor and Windsurf pick it up on reload; some clients show a per-server toggle.) 改完配置不一定就完事:部分客户端需要你在设置里手动「信任 / 启用」这个 server, 工具才会加载。症状是配置明明在、助手却完全不知道有这些工具。
What uvx costs you, every time. uvx resolves the package on each invocation — measured
at 7–8 s per call even with a warm cache. That is paid on every MCP session start and every
CLI command. It buys you never having to manage an install. If you would rather pay once:
pipx install openhire # then use "command": "ohp", "args": ["serve"] — process-start latency
@latest also means your tool surface can change under you without warning. Pin it when that
matters: "args": ["openhire==0.8.6", "serve"].
The server auto-downloads the public job snapshot on first run if the index is empty, so
ohp bootstrap is optional. If you ran pipx install openhire, "command": "ohp" works too.
Claude Desktop — %APPDATA%\Claude\claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/); quit & reopen after editing:
{ "mcpServers": { "openhire": { "command": "ohp", "args": ["serve"] } } }
Cursor — ~/.cursor/mcp.json (or a project `.cursor/mc
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
96.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
75.1kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
CowAgent
47.4kOpen-source personal AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Scrapling
87.0k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
