Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Jobs with the employer's real posting date, from employers' own ATS. HR family. Résumé stays local.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
OPENHIRE_DATABASE_URLYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"openhire": {
"command": "uvx",
"args": [
"openhire",
"serve"
],
"env": {
"OPENHIRE_DATABASE_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add openhire --env OPENHIRE_DATABASE_URL=your-value -- uvx openhire serveFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"openhire": {
"command": "uvx",
"args": [
"openhire",
"serve"
],
"env": {
"OPENHIRE_DATABASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"openhire": {
"type": "stdio",
"command": "uvx",
"args": [
"openhire",
"serve"
],
"env": {
"OPENHIRE_DATABASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
OPENHIRE_DATABASE_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account gzchenhao, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.8.62) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Master CSS
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Inspect Master CSS classes, generated CSS, and project stylesheets from your AI client.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Companies screen you with AI. Screen them back. 已读不回?先看岗位还在不在。
Let your AI assistant find jobs straight from employers' own systems, with your résumé never leaving your computer. Is the job still open? Is the company real? Check both before you apply.
让 AI 助手直接从雇主自己的系统里替你找工作,简历不出你的电脑。岗位还在不在,公司真不真,投之前先查一遍。
投了没回音,该等还是该走? 对你的 AI 助手说一句「我投的这 12 个岗位,哪些已经下架、不用再等?」,它从雇主自己的招聘系统里答(2026-10-26 索引上真跑的结果,节选): Applied and heard nothing? Ask your assistant "which of the 12 postings I applied to have closed?" and it answers from the employers' own systems (a real run on the 2026-10-26 index, trimmed):
你记下的 12 个岗位里:4 个已从雇主系统下架,1 个 30 天没再出现,7 个还在架。下架和长期不出现的,不用再等回复了。
closed Torc Robotics Software Engineer II - Device Drivers 已从雇主系统下架(索引在 2026-10-26 发现),不用再等这一个了。 closed Figure Lead, Data Operations Global Expansion 已从雇主系统下架(索引在 2026-10-12 发现),不用再等这一个了。 closed 越疆 Dobot 具身智能项目经理(J10310) 已从雇主系统下架(索引在 2026-10-26 发现),不用再等这一个了。 stale ClickHouse Core Software Engineer (C++) - Remote 雇主系统 30 天内没有再返回这个岗位,多半已不在招,但我们没法确认。 open Waymo Senior Business Intelligence Analyst 还在雇主系统上(已在架 149 天)。还在架不代表会回复,只说明岗位没撤。 open Physical Intelligence Mechanical Design Engineer 还在雇主系统上(已在架 503 天)。还在架不代表会回复,只说明岗位没撤。
It tells you whether the posting is still there, never whether the employer read you: no index can see an inbox. 只说岗位在不在,不说雇主看没看:谁也看不到雇主的收件箱。投的时候也不交简历给任何服务器。
In Claude Code, the plugin is a whole local job-search workflow: find postings, check the company, tailor your CV, build interview stories, follow what you applied to. Your CV stays in your own folder (cv.md) and is read by your own assistant; OpenHire tools only ever get a job id. /plugin marketplace add gzchenhao/openhire, then /plugin install openhire@openhire. 在 Claude Code 里装上插件,就是一套完整的本机求职工作流:找岗、查公司、改简历、备面试故事、盯投递,简历留在你自己的文件夹里,OpenHire 的工具只拿到岗位编号。
Real terminal output — install from PyPI, download the public index, search. No account, no signup.
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) ·
我们引用的每个数字都能核:岗位在架时长月报 ·
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.
贵公司被收录了、而且不是贵公司提交的?点这里认领,免费,
可以用自己的话解释,也可以直接要求我们移除。
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 extra resume argument is refused, and CI pins it.还有一条不在这三条里,但同样锁死:排序买不到,它是(匹配度,新鲜度)的纯函数,见下文三条隐私红线。 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.
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 (through the hosted endpoint below) — into a private radar for AI / Infra, autonomous-driving and embodied-AI jobs — pulled straight from 216 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:
ghost_score aged off the employer's real posting date where the employer's system reports one (otherwise the day this index first saw it, flagged date_signal): the "2 days ago" a board shows you can be 300 days old in the ATS.This is the 「哨兵 / Sentinel」 reference implementation — see design_handoff_openhire_v01/README.md for the full protocol spec.
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.
Not sure which of these steps are yours? The connect guide (国内:openhire-vlny.onrender.com/connect) asks which assistant you use (ChatGPT, Claude, 豆包, DeepSeek, Cursor, 腾讯 WorkBuddy, VS Code) and shows only that one's steps, with the one block to paste. 选你用的助手,只看那一种的步骤。
Or paste this one block and let the assistant do the install and the first search (the check in the middle matters: an assistant that has just added a server usually cannot use it until it restarts, and left alone it will fake the result with a web search):
帮我装一个 MCP 服务:名字 openhire,启动命令 uvx openhire@latest serve。如果电脑上没有 uv,先帮我装 uv。
装好后检查:你现在能不能调用 openhire 的工具(比如 search_jobs)?
找工作任务:我的情况:[目标城市],想做[岗位方向,例如 AI 产品经理 / 感知算法 / 机器人运营],[几年]经验,会[3 到 5 个技能],不考虑[不要的方向]。
我的简历只留在我电脑上,不要发给任何服务器。投递由我自己点链接去做。
Install an MCP server for me: name openhire, command uvx openhire@latest serve. If uv is missing on this machine, install uv first.
Then check: can you call openhire's tools right now (search_jobs, for example)?
Job-search task. About me: [city], looking for [role, e.g. AI product manager / perception / robotics operations], [N] years, skills [3 to 5], not interested in [what to exclude].
My résumé stays on my machine; never send it to any server. I apply by clicking the links myself.
What to say to it. No tool names needed; plain sentences work. Paste any of these:
帮我找上海的感知算法岗,列出原始发布日期和在架天数
盯住 OKX 的招聘页,有新岗告诉我 把 https://jobs.lever.co/<公司> 加进我的索引,以后每周帮我刷新 哪些具身公司的岗位在飞书上?把它们的招聘页给我 查一下这家公司靠不靠谱:<公司名> 投之前帮我查一遍这个岗位:<公司名> <岗位名> 我是 2027 届应届生,帮我找具身公司收应届的岗位,写清学历要求 别让我海投:帮我挑 10 个值得认真投的智驾岗,剔掉的说明原因 我投过的那几个岗位,哪些已经下架了,不用再等? 智驾和具身公司现在在招哪些 HR 和招聘岗?列出公司、城市和发布日期
Find perception roles in Shanghai with their original posting dates Watch OKX's careers page and tell me when something new appears Which embodied-AI employers post on Feishu? Give me their careers pages Before I apply, check this posting: I graduate in 2027; find robotics roles open to new grads and say what degree each asks for Which of the postings I applied to have closed, so I can stop waiting?
Clients that show MCP prompts (Claude Desktop's "+" menu, a slash command in Claude Code or VS Code) also list twelve ready-made ones: 求职清单 · Job-search checklist, 找工作雷达 · Job radar, 盯一家公司 · Track one employer, 查这家公司靠不靠谱 · Check an employer, 投之前查一遍 · Check before you apply, 海投改精投 · Shortlist, don't mass-apply, 评估这个岗位 · How a posting fits me, 按岗位改简历 · Tailor my CV, 面试故事库 · Interview story bank, 打招呼草稿 · Outreach draft, 看看我的雷达 · What's new on my radar, and 本周新岗 · New this week. Each one renders in Chinese when you type Chinese into it.
New graduates (应届生) start here. Say what year you graduate and which sector; the assistant passes entry_level: true, which keeps o
Only the beginning is shown; read the rest in the repo