Borrowing it
Nothing to install: this file belongs to gzchenhao/openhire. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/gzchenhao/openhire/main/CLAUDE.mdgit clone --depth 1 https://github.com/gzchenhao/openhireWrote 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/instructions/gzchenhao/openhire/claude-md)<a href="https://agentmods.dev/instructions/gzchenhao/openhire/claude-md"><img src="https://agentmods.dev/badge/instructions/gzchenhao/openhire/claude-md/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/instructions/gzchenhao/openhire/claude-md"><img src="https://agentmods.dev/badge/instructions/gzchenhao/openhire/claude-md.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.31239 | $0.31239 |
| Opus 5.5 | $0.12496 | $0.12496 |
| Sonnet 5.5 | $0.06248 | $0.06248 |
| Haiku 4.5 | $0.03124 | $0.03124 |
Grade A, and why
openhire CLAUDE.md scanned grade A with 1 finding 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 yesterday.
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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
**发版自检:PyPI、Release(run 38511414445)、mcpb 都好;Registry 工作流第三次误报,这次查到了真因**:列表接口每页 30 条、最旧在前,0.8.8 是第 31 个版本,第一页 0.1.1 到 0.8.7 里没有任何 isLatest,旧核对把它判「失败」,重跑又被 Registry 以 `duplicate version` 拒绝(即已发布)。核对改成 `scripts/registry_st How it starts
The opening of the file, as written. The whole thing — 394 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md — OpenHire 工作约定(每个会话必读)
新会话恢复指引(开工前先做这三步)
- 先读
README.md— 了解产品定位、五个协议字段、三条隐私红线、安装与工具(公开版 README)。 - 再读
PROGRESS.md— 了解已完成到哪一步、关键决策与理由、下一步、待用户确认事项。 - 禁止重做已完成的工作。 M1–M4 已全部完成,v0.1 已公开发布(见下方发布状态、PROGRESS.md 验收证据)。除非用户明确要求返工,不要重建已完成的里程碑。
发布状态(最新 v0.8.61 · 2026-11-05;v0.1 首发 2026-07-15)
- GitHub: https://github.com/gzchenhao/openhire (owner
gzchenhao,main,最新 tag v0.8.4 由 Actions 建) - v0.8.61(2026-11-05,云端会话,
reports/140): 领导「都做」:第 14 个工具manage_watch(list / update / delete,update 换新编号、新基线,坏条件不动旧盯岗,只认原指纹);search_jobs(envelope=true)返回 matched / has_more / next_offset / headline,默认形状不变。服务器指令同步。服务器现在 14 个工具、12 个提示词。 模拟求职者每晚改--repeat 2 --budget-usd 10.5 --total-cap 92,把赠送额度花完。1146 tests。 - v0.8.60(2026-11-05,云端会话,
reports/139): 模拟求职者 11-04 夜(US$6.32,累计 38.29,53 条:high 1、medium 21):每条岗位带seniority_basis(title / description / none)与seniority_quote(high:助手为标 manager 编理由);manager_title_unclear提示;marketing 标题不算 HR;盯岗 unknown 说明改准;fingerprint_notice说明指纹不是 watch_id;精简行去空值;ingest 每次抓取都更新雇主系统的 remote / hybrid / onsite(0.8.59 读取器修正才进得了旧行);缓存现读文案;北森校招链接channel_note。请领导定:update_watch / delete_watch、非空搜索结果外层。1142 tests。 - v0.8.59(2026-11-04,云端会话,
reports/138): 模拟求职者 11-03 夜(US$6.54,累计 31.97,62 条)核对后修 15 条 medium 含两条 high:薪资写了但读不出来报salary_unclear并带salary_raw(原来说「没写薪资」);职级seniority_for(title, description):policy / compliance / strategy 等「管事不管人」的 Manager 不算管理岗,标题没级别、正文明写带人(负责团队管理 / direct reports)才标 manager,门店「专家」不算 senior,应届生筛选(只含 intern / junior / unknown)排除正文要求 3 年以上的无级别行;title_exclude(搜索、盯岗、CLI);check_watches 首次拉取改为baseline_postings/baseline_count、new_matches只数增量、行用COMPACT_KEYS精简;filters_applied全回显(remote_scope 等);空结果relax逐项计数(seniority 另报标题没级别的条数);地区词 APAC 当地点报 unknown_location;盯岗登记说明 unknown 与无城市行不计入;dates_in_words 加「保存不等于改动」;校招标题挂 /social/ 提示;read_board days_open 日历日、_iso_to_dt转 UTC 存;Greenhouse 地点 Remote 优先于元数据;check_employer 禁止按 ATS 账号猜域名。不改:ghost 字段名(10-31 裁定)、match_quality 加权(排序函数另议)、结果默认精简 / 统一外层(协议形状,先改说明);请领导定:update_watch / delete_watch 第 14 个工具。Glama 报 0.8.58 Build failed,本地复现正常,日志要登录(本机待办 38)。1135 tests。 - v0.8.58(2026-11-03,云端会话,
reports/137): 比亚迪、小米汽车本机原样连通(200,页面标题核到;云端连不上是网络不是拦截),门户目录改成「自建招聘站,还没有读取器」。本机同日投了 11-02 周表两条知乎回答(待办 36)。1121 tests。 - v0.8.57(2026-11-03,云端会话,
reports/136): Mentee Robotics 进种子表(Comeet,键取自公开招聘页明文,11 条,无发布日期只有time_updated,具身智能);122 号「Mentee 的 Comeet 页 404」作废,正确地址经 Mobileye 招聘页找到。1121 tests。 - v0.8.56(2026-11-03,云端会话,
reports/135): 12 家大雇主逐家评估(Default 环境子会话只读查,守红线):Lever 欧洲站读取器修复(租户键eu.<site>,原来一律调美国站 404);种子表 +3:NVIDIA(Workday,列表 2,000 封顶)、Gatik、Mobileye;门户目录 +9:特斯拉(403 停)、百度 Apollo、华为、滴滴、美团(自建脚本站)、小鹏汽车(飞书)、比亚迪与小米汽车(连不上,未评估)、DeepMind(Google Careers)。1121 tests。 - v0.8.55(2026-11-03,云端会话,
reports/134): 页头照 EarlyTip 每日简报:语言切换按钮进顶部导航条右端(house_style.nav(key, switch=True)),标题上方灰色日期行(静态页取apply_house_style.PAGE_DATE,改文字时一起改;门户取核对日;托管首页取数据日期),小标题链接同色。查公司页不动。1118 tests。 - v0.8.54(2026-11-03,云端会话,
reports/133): 全站文字照查公司页改短(领导:行文风格也要向 EarlyTip 查公司看齐):一句一个动作、命令句、同一件事一个词、条件写「如果:1. 2. 停下!」(.if/.c/.stop进公共 CSS)、裸网址改名称链接、表格改分步列表(p.lead小标题 + 灰字「谁做」);连接向导、求职清单、给雇主、两个首页、门户目录中英都改;提问代码块不动;查公司页不动。往后新写页面文字照这套写法。 1118 tests。 - v0.8.53(2026-11-03,云端会话,
reports/132): 全站正文排法照查公司页(领导:连接向导等要与 EarlyTip 查公司版式统一,手机电脑都统一):小节自动红色 01 02 编号、小标题 13px 砖红加 3px 竖线、标题下说明 13px 灰字加细线、列表细线分隔无圆点、补充说明 12px 灰字加 2px 竖线、去掉卡片与阴影;给雇主与求职清单的手写编号去掉。查公司页不动。1118 tests。 - v0.8.52(2026-11-03,云端会话,
reports/131): 全站中英切换(领导:门户、给雇主、首页没有切换按钮):house_style.SWITCH / NOSCRIPT / lang_script一份,github.io 首页、给雇主、门户目录、托管首页加英文整块,localStorage 键与清单共用;查公司页不动。模拟求职者 11-02 两条 high 修(年限中间夹长领域名、正文写只招美国时锁 US),单写「主管」算 lead。1118 tests。 - v0.8.51(2026-11-01,云端会话,
reports/130): 全站统一 EarlyTip 版式(领导:「同一个基因,要改就一起改」):src/openhire/house_style.py一份样式 + 共同顶部导航条,六个页面(两个首页、连接向导、求职清单、门户目录、给雇主)全套上;改样式只改 house_style.py,再跑scripts/apply_house_style.py,tests/test_house_style.py防走样。查公司页按 EarlyTip 条件保留自己的导航条。1109 tests。 - v0.8.50(2026-11-01,云端会话,
reports/129): 查公司页只改 CSS(领导九条对照):步骤小标题改 13px 砖红加 3px 竖线、补充说明行高 1.7、「停下!」13px 砖红;订阅 sha256 不变(3bc8aa76…)。1102 tests。 - v0.8.49(2026-11-01,云端会话,
reports/128补): 查公司页再贴近每日简报:吸顶导航条(只写「查公司」)、小节标题用红色 01 02 03 编号、去掉「一二三」和红竖线。1102 tests。 - v0.8.48(2026-11-01,云端会话,
reports/128): 查公司页照 EarlyTip 版面样式规范(领导转来):变量、系统中文字体 15px、860px、页头、.cc-body正文样式原样套用,砖红只用在小节竖线,条件与「看:」用灰色小字加细竖线,去掉卡片和深色模式;内容不变。往后改查公司页的样式照这份规范(规范只管我们自己的页面,EarlyTip 栏目由它自己的模板渲染)。1102 tests。 - v0.8.47(2026-10-31,云端会话,
reports/127): 查公司页条件写成「如果:1. 2. 3. 停下!」(编号在文字里,订阅白名单不含 ol);裸网址全改成机构名称链接,链接蓝色、条件红色。1102 tests。 - v0.8.46(2026-10-31,云端会话,
reports/126): 查公司页文字按 ASD-STE100 的写作规则改短(一句一个动作、命令句、同一件事一个词、不写解释):可见文字 1,963 → 1,308 字,订阅 html 为原来的 80%,过 EarlyTip 两道关;网址全保留。1102 tests。 - v0.8.45(2026-10-31,云端会话,
reports/125): 查公司页改版(领导太太:EarlyTip 上太难看、手机挤成一列):表格全去掉,改成标题 + 段落 + 列表(订阅文件只用 h2/p/ul/li/a,schema 不变);自家页照 EarlyTip 每日简报的样子重排(米白底、红竖条小节、一步一卡片、手机单独调);内容不变。查公司页往后不用表格:EarlyTip 模板不给表格样式。1102 tests。 - v0.8.44(2026-10-31,云端会话,
reports/124): 签证一项(领导「直接做」,起因赵杭铨的 ChatGPT 截图):extract.visa_sponsorship_from_text只读启事原文,offered / not_offered(含要求美国公民、U.S. person、安全许可)/ null,带原话visa_quote(后接 However/But 的转折一起带);requirements多两项,check_before_apply多一项(英文启事没写才提示 not_stated,中文启事不提示);服务器指令禁止替雇主猜签证。10-26 快照:能办 939、不办 363、英文没写 14,531。红线测试禁止源码出现 sponsored 一词,不放宽,写法绕开。 1102 tests。 - v0.8.43(2026-10-31,云端会话,
reports/123): 模拟求职者 10-30 夜(US$6.25,累计 17.85,62 条发现)修 7 条:管理年限不算岗位年限(high);「校招运营专家」不是校招轨;junior 标题 entry_level 写 true;光写 Remote 改报 unknown 不报 worldwide;中文名比 OFAC 没命中改 not_applicable;域名说明中性化;隐私说明按实际发送。ghost 字段名属协议不改。1087 tests。 - v0.8.42(2026-10-31,云端会话,
reports/122): Comeet 读取器(career-ops 移植,MIT):键<slug>/<uid>/<token>,uid 与 token 取自雇主招聘页明文;time_updated存为更新时间、不当发布日;Imagry 进种子表(7 条),候选 214 家。Dover 不读(robots.txt 禁/api/),Weave、Scythe 进门户目录;Innoviz 全站人机验证,停下进门户目录;Mentee 的 Comeet 页 404。1081 tests。 - v0.8.41(2026-10-30,云端会话,
reports/121): Rippling 与 Personio 读取器(从 career-ops 移植,MIT):Rippling 列表不给发布日(not_reported_by_ats),Personio XML 带createdAt;6 家进种子表(Forterra 自动驾驶;Foundation Robotics、Mytra、Bonsai Robotics、Wandelbots、Franka Robotics 具身),Default 环境现读 146 条全通。候选 213 家。下一步 Comeet、Dover。1079 tests。 - v0.8.40(2026-10-30,云端会话,
reports/120): 第 13 个工具salary_benchmark:只用雇主自己公开标的薪资范围,币种必填不混算,下限与上限分开报 p25 / 中位 / p75,不足 20 条只报数,宽到 2 倍以上单独计,按标题级别 + 启事年限分档(不按公司职级),月薪 ×12 不加第 13、14 薪,说明禁止「低于市场别投」;numbers.json加live_postings_with_employer_published_pay(10-26 快照 10,568,人民币 676)。服务器现在 13 个工具、12 个提示词。 1076 tests。 - v0.8.39(2026-10-30,云端会话,
reports/116–119): 飞书按规矩重新评估(Default 环境,智元 / 加速进化 / Momenta):我们自己的 UA、无签名请求列表接口一律 405,career-ops 靠伪装苹果 Chrome 过 UA 规则,属特征探测,维持不读。 大扫描 99 家:31 家进种子表(Anduril、Applied Intuition、Skydio、Boston Dynamics、追觅等,现读合计 6,023 条;种子表首次有_WORKDAY:Boston Dynamics、AutoStore),候选 207 家;被拦 21 家不交本机换 IP 复查(红线),连不上 4 家交本机待办 35;还读不了的系统排名:自建 9、Rippling 4、Comeet 3、Personio 2、Dover 2。本机求职工作流:插件技能skills/openhire-job-search+ 四个提示词(evaluate_fit / tailor_cv / story_bank / outreach_draft,共 12 个),简历只在用户本机cv.md、工具只收 job_id、提示词参数只许 job / focus。117 career-ops 能力吸纳、118 薪资模块(雇主自标范围为主,Levels.fyi / 对标网只放链接、不收 Offer)领导已批。1073 tests。 - v0.8.38(2026-10-30,云端会话,
reports/114、115): 114 号知乎 20 题手读(375 条):「投了没回音」一簇约 317 万浏览、AI 面试只有 1,137,于是中文钩子句改成「已读不回?先看岗位还在不在。」(英文钩子句保留);posted_within_days筛选(1 到 365,按雇主发布日,search / 盯岗 /--posted-within-days);get_company_info加hiring_trend(近 30 天新发、前 30 天新发、近 30 天下架,只报数不预测);README 第一屏放check_applications真跑结果。知乎回答稿两题(本机待办 34),career-ops issue 稿待领导看(私库)。1052 tests。 - v0.8.37(2026-10-30,云端会话,
reports/112、113): 领导批 112 第三节 1 至 3:① 钩子句「公司用 AI 筛你,你也用 AI 筛公司。」("Companies screen you with AI. Screen them back.")放在主句前(README、两个首页、连接向导、求职清单、pyproject 492 字符;server.json 没放;GitHub 仓库描述待本机gh repo edit);② 第 12 个工具check_applications(投递追踪:add_job_ids/remove_job_ids,按雇主系统报 closed / not_verified_recently / open,存成applications里authorized=False、delivered_via=user_tracked,永不算授权,只说岗位在不在、不说雇主无视或已招满);③ 第八个提示词shortlist(海投改精投)。服务器现在是 12 个工具、8 个提示词。 1045 tests。 - v0.8.36(2026-10-30,云端会话,
reports/111): 领导定第二句定位「岗位还在不在,公司真不真,投之前先查一遍。」(README、托管首页、连接向导、求职清单、github.io 首页、pyproject;server.json 已 99 字符没放)。110 第三节四件:① 每条结果带requirements(extract.requirements_from_text:最低要求学历、最少年限、校招 / 实习轨,同分句写「优先」的不算要求,null = 启事没写),筛选entry_level(search / 盯岗键 /--entry-level,启事明说年限或标题 lead/manager/director/staff 的排除,什么都没写的不留);② 第七个提示词before_apply(岗位还在不在 + check_employer + 外包字样 + 投递链接,三行收尾不下结论),服务器指令同步;③ohp numbers加new_postings_by_sector_30d(按雇主发布日、窗口终点取索引最新核验日)与live_postings_open_to_new_grads(10-26 快照 671);④ README 与/connect加应届生段。1035 tests。 - v0.8.35(2026-10-30,云端会话,
reports/109): 领导批四件:行业筛选seed/sectors.py(176 家各一个行业:智驾 29、具身 42、AI 基础设施 55、其他 50;新种子不标行业测试就红),search_jobs(sector=)、盯岗键sector、每行带sector;查公司页加「不开会员,五分钟查一家公司」与外包派遣一段,订阅文件已重建(EarlyTip 两道关过,变长不用通知);check_employer(message_text=)本机扫私信骗局说法,托管端点拒收(ERR_LOCAL_ONLY,私信可能带用户个人信息);任何文字多一项outsourcing_words(只列字样不下结论)。1017 tests。 - v0.8.34(2026-10-30,云端会话,
reports/107、108): 模拟求职者第一晚(10 人设、US$7.70)两条 high 修:中英混写标题判级别(测试Leader);read_board摘要从岗位职责截、ats_job_id取全文;地点 China / Bay Area 展开、空结果unknown_location与filters_applied全回显。108 号知乎痛点地图(433 条手读,12 类)。 - v0.8.33(2026-10-29,云端会话,
reports/105、106): 模拟求职者夜测(领导的 Claude API 赠送额度 US$96,11-11 过期):scripts/persona_test.py10 个人设,Opus 5.5 当助手、Sonnet 5.5 当求职者、Opus 5.5 按十条承诺评分;默认--backend local在本机内存里起 OpenHire、用索引临时副本(托管端点经 MCP connector 五次只通一次);key 名OPENHIRE_PERSONA_API_KEY(不与精抽混用),累计上限 US$80;本机待办 29 每晚跑到 11-10,云端定时任务「模拟求职者测试日读」每天 10:37 核结果并修。首轮修四处:refresh_index 结果带delisted与counts_note;盯岗文案的定时提醒改成 check_watches;长指纹重复登记不再说撞了别人;无雇主日期行的 ghost_reason 标「至少」;search_jobs 说明写清ic含哪些级别、不知道级别先问。给领导的 PowerShell 命令不许重写.env(Set-Content在 5.1 按 GBK 存,10-29 把.env弄成 python-dotenv 读不了,已转回 UTF-8)。1009 tests。 - v0.8.32(2026-10-29,云端会话,
reports/102): 连接向导两处(本机验收发现):页脚 PRIVACY.md 改绝对链接(托管端点无 docs 目录,原 404);剪贴板被拒时复制按钮给提示。同日种子表:ClickHouse、Wayve、Amplitude、Carbon Robotics 从 Greenhouse 搬到 Ashby(本机核实,公司 id 不变,下周快照自动下架旧行)。本机 10-28 精抽约 ¥18、快照已上传;EarlyTip 栏目核对逐段一致。995 tests。 - v0.8.31(2026-10-28,云端会话,
reports/101): 在架口径变严(领导批):没下架且雇主系统 30 天内返回过才算在架,30 天从索引里最新一次核验往回算(不按日历,旧索引不会被清空)。service.verified_cutoff/live_clause一处定义:搜索、盯岗、get_company_info(新增unverified_over_30d)、live_employer_count、ohp numbers(新增postings_unverified_over_30d)都用它;全部过期的雇主空结果status: not_verified_recently。抓取器照旧不动抓不到的板的行。10-26 快照新口径:172 家、20,019 条、过期 177(ClickHouse),Wayve / Amplitude 239 条 11-02 起超期。numbers.json与 README 已改。994 tests。 - v0.8.30(2026-10-28,云端会话,
reports/100): 098 方案领导批「全部都做」,当天落地。①seniority(pipeline/extract.seniority_from_title,标题免费规则,读取时算,不改快照):intern / junior / senior / staff / lead / manager / director / unknown,别名ic与management;search_jobs(seniority=…)、watch_intent的seniority、ohp search/watch --seniority;产品 / 项目 / 客户经理这类不带人的先去掉再判,中文「经理」单独不算信号,没写级别就 unknown;硬过滤,排序函数不动;60 个真实标题的表格测试。② 每条岗位带date_source、dates_in_words(中英各一句)、check_before_apply(code + 中英,只从量到的事实生成);read_board结果也带。③index_status:下载中四个读数据的工具返回 preparing(check_watches不动标记),失败 unavailable;空结果带status+ 固定headline(service.EMPTY_HEADLINES五种);_do_bootstrap改preserve_user_state=True(下载期间登记的盯岗不丢)。④watch_intent返回matching_now+what_happens_next,check_watches带summary(首次是基线)。⑤ 服务器指令与提示词:开搜前问 IC / 管理与年限,第一轮 5 条六栏,日期用 dates_in_words 原句,首次拉取不说成新岗。⑥ 连接向导docs/connect.html= 托管/connect(测试钉住一字不差;两段 prompt 与 README 一字不差;两个首页和求职清单第 1 步都链过去);README 加 VS Code(Copilot).vscode/mcp.json与一键链接;网页搜索入口不做,等 12 月律师意见。tests/test_prompts.py的NOT_TOOLS白名单收结果字段名。988 tests。 - v0.8.29(2026-10-28,云端会话,
reports/098): 首发盯岗缺陷(用户赵杭铨 10-28 六条反馈里的一条):首次启动先 init_db 再由后台线程整文件换成公开快照,快照只有 companies / jobs,于是第一个会话里watch_intent/authorize_application报no such table: watches,重启才好;托管端点每次冷启动都重下快照,所以它上面的盯岗从来没成功过,而体检只查 initialize / tools/list。修:_do_bootstrap装完快照立刻init_db();tests/test_first_run_watch.py(撤掉修复即红);scripts/hosted_mcp_check.py加 watch_intent / check_watches 往返(部署与每日体检都跑)。其余五条的方案在 098(字段翻译成人话、seniority 过滤、index_status、盯岗说明、五条六栏清单,进 0.8.30 待领导点头;网页搜索入口建议不做、等 12 月律师意见,先做连接向导页)。回信稿私库reply-to-zhao-hangquan-2026-10-28.md。893 tests。 - v0.8.28(2026-10-27,云端会话,
reports/095): 「查公司」订阅文件(领导:EarlyTip 上的查公司要像「顶会归档」一样单独开栏目、跟我们实时同步、不用另行通知)。docs/check-company.json(schema 1,src/openhire/check_company_feed.py从页面按白名单重新生成html,带sha256)同时发在 github.io、托管端点/check-company.json、CNB 镜像;EarlyTip 定时拉、sha256 变了才换、拉不到留旧份(任务书私库earlytip-check-company-column-brief-2026-10-27.md,领导转达)。改查公司页:改 docs 与包里两份 → 跑scripts/build_check_company_feed.py→ 测试绿 → 推 main,忘了跑脚本测试就红;查公司页的官方网址必须都在求职清单里(清单改网址、查公司页不跟着改也红)。换订阅地址或格式要升 schema、提前告知 EarlyTip、旧的留 30 天。892 tests。10-28 EarlyTip 栏目上线 https://earlytip.com/check-company.html (每 6 小时拉,10-29 起顺序 onrender → CNB → github.io;页脚「点评由 AI 生成」那句只在这页去掉;EarlyTip 说上线后不再另行通知,有问题走反馈入口,此事关闭;reports/099、103)。EarlyTip 另有两道关(可见文字含 求职 / 招聘 / 岗位 / mcp / 安装 / OpenHire 任一即拒;新内容短于上一份一半即拒),已照抄进check_company_feed.earlytip_gate、测试与生成脚本:改查公司页先想这两道关,缩到一半以下要先经领导告知 EarlyTip、再带--allow-shrink生成,词关永远不放行。 - v0.8.27(2026-10-22,云端会话,
reports/092): DeepSeek 全价时段代码锁(领导:「这个要锁定以后必须是闲时跑,价格相差一倍的,请替我省点」)。起因:本机 10-22 上午北京时间 11:11 到 11:24 跑岗位族精抽(8,195 条、¥12.50),技能精抽 11:24 起也在全价时段,规则 9 写了但只靠会话记得。pipeline/pricing.py:工作日北京时间 08:30 到 12:30、13:30 到 18:30 拒绝(DeepSeek 全价时段前后各加 30 分钟,本机时钟偏慢;节假日按工作日算,宁可等);DeepSeekExtractor._call发请求前查,所以每一次 DeepSeek 调用都被锁住,extract()退回免费启发式并如实盖 heuristic 章,GLM 不受影响;两条付费精抽每批之前查,全价时段一条不跑、跨进全价时段在批次边界停、进度已存;extract-rebuild/extract-role-family/extract-sample/bootstrap --deepseek报ERR_DEEPSEEK_FULL_PRICE、说几点再来、退出码 1。没有开关(测试钉住 pricing.py 不读环境变量、_call先查再发);DeepSeek 改时段就改常量发版。conftest 把测试时钟钉在周六。882 tests。部署工作流同日修一处:「有更新版本就让位」原来把 PyPI 缓存里的旧版本也当成更新、没部署就退出(0.8.27 首次部署 run 39740258981 因此红),改为只有严格更新才让位(sort -V),重跑 run 39740682988 全绿。 - v0.8.26(2026-10-22,云端会话,
reports/091): 本机 10-22 上午补跑暴露的问题。① 抓取并发锁跨事件循环:Moka、北森、理想三个适配器的模块级asyncio.Semaphore会绑定第一次排队时的事件循环,ohp ingest --seed(校验与抓取各一个asyncio.run())抓香港 15 家时崩溃;ats/base.py新增PerLoopSemaphore(每个循环一把锁),三家改用,tests/test_per_loop_semaphore.py6 条(含用旧写法复现原错误、全包禁止模块级 asyncio 锁、三家 Moka 两次抓取端到端)。规矩:模块里不许再有模块级 asyncio 锁,测试会红。 ② Windows 上test_bootstrap_reopens_the_index_after_installing标为非 Windows 才跑(那是 POSIX 才有的读旧文件情形,Windows 替换开着的文件直接报错)。③ 门户目录:禾赛浏览器核过(飞书,160 岗,有 JD 无日期);地平线是大易 wecruit(hotjob.cn),不是 Wintalent,281 岗、无日期,接口未评估前不读。④ CNB 镜像实测可匿名下载、与 GitHub 原件同字节,README 加直链与OPENHIRE_SNAPSHOT_URL用法(原「等 CNB 跑通再写」那条了结)。⑤hosted/Dockerfile安装重试 15 分钟;scripts/backup_drafts.py调 git 时去掉GITHUB_TOKEN/GH_TOKEN(本机环境里那个只读公开仓库的 token 是外联系统profiler/github_http.py读的,压过 gh 登录态让私库同步失败)。853 tests。报告编号: 090 是本机写的(10-22 上午补跑),云端这次用 091。 - v0.8.25(2026-10-21,云端会话,
reports/089): 求职清单中英双语(领导:「不是一行中文一行英文那种,是用户可以选择页面语言那种」):同一个docs/checklist.html里中文整块在前、英文整块在后,右上角「中文 / English」切换;默认按?lang=→ 上次选择(localStorage)→ 浏览器语言;无 JS 两块都显示。Chromium 实测六种组合全对。改清单要中英两块一起改,测试钉住两块都在、中文在前。页脚反馈链接改成议题模板checklist_feedback.yml(标签checklist,不收个人信息);新增月度工作流check-links.yml(scripts/check_page_links.py打开两页所有外链,404 / 410 才红,超时只报不红:12333.gov.cn 与 labour.gov.hk 对数据中心地址拒答)。用户反馈闭环:邮箱日检定时任务的提示词加一条,checklist标签议题与本机知乎日检上报的清单意见一律当天改页、记更新记录、发版。宣传稿(知乎专文 + 投稿 + X 英文帖 + 领英)在私库,本机待办第 16 条。847 tests。 - v0.8.24(2026-10-21,云端会话): 领导要求求职清单页也带雇主认领那句(与托管首页、github.io 首页一致),
tests/test_hosted.py钉住。 - v0.8.23(2026-10-21,云端会话): 领导发现两个首页不一样(github.io 项目主页有雇主认领那句,Render 说明页没有)。托管首页补齐:求职清单、查公司、门户目录(新路由
/portals,由登记表渲染,测试钉住与docs/portals.html相同)、雇主页、隐私、源码与 CNB 镜像的链接,页脚同一句雇主认领。规矩:两个首页列的页面和页脚那句要一致,tests/test_hosted.py钉住。847 tests。 - v0.8.22(2026-10-21,云端会话,
reports/088): 「查公司」独立页 https://openhire-vlny.onrender.com/check-company (docs/check-company.html与src/openhire/pages/check-company.html一字不差)。起因:领导想在 earlytip.com(个人备案,登记在领导名下)加入口指向求职清单,EarlyTip 项目经理会话复核后要求目标页只含「核公司去哪些官方网站」和「识别骗局」,不出现求职流程、岗位、安装引导、/mcp、产品名,不出现「求职」「招聘」「岗位」字样,标题「查公司」,页脚只留反馈链接,永远免费无注册;退出条件:收费、页面出现岗位或安装引导、域名不可达超过一周,任一发生入口当天撤。这些条件钉在tests/test_hosted.py,改坏了发不出去;要变先告知 EarlyTip 线。?from=earlytip接受不记录(主机无访问日志)。EarlyTip 另提的「OpenHire 面向国内是否落入网络招聘服务」进 12 月律师清单。0.8.20 是误发的空版本(脚本中途失败、只 bump 了版本号),0.8.21 是求职清单加「值得收藏的原因」与更新记录。847 tests。 - v0.8.19(2026-10-21,云端会话): 领导问「中国用户能打开求职清单吗」(github.io 国内不稳),当场加:托管端点多一个
/checklist(src/openhire/pages/checklist.html随包发布,测试钉住与docs/checklist.html一字不差,改一处要同步另一处),国内地址 https://openhire-vlny.onrender.com/checklist 写进页面顶部、README、check_employer.checklist_url_cn、提示词、服务器指令。部署工作流改成两轮「请求部署 + 等 15 分钟」(0.8.18 第一轮 Render 接受了却停在旧版 20 分钟,CDN 还没拿到新包)。 - v0.8.18(2026-10-21,云端会话,
reports/087): 领导第二批裁定。① 求职清单docs/checklist.html(七步,每步写明「OpenHire 做」还是「你自己做、去哪里」,官方网址给全,含反诈骗三步;天眼查只指它自己的免费服务,代查不做);第六个提示词job_checklist;check_employer带checklist_url;服务器指令让助手对新手主动给这页。②authorize_application幂等:同指纹同岗位第二次返回第一条回执(already_authorized),不写新记录,idempotentHint真;9 月三件旧议题全关。③ 带货 prompt 一律用「装机加提问」合并版(本机任务书cloud-brief-2026-10-21-merged-prompt.md,领导定):README 中英、docs、私库install-copy-blocks.md定稿、两篇知乎稿、周表定时任务模板;旧稿「重启你自己」是错的。④ 所有描述(pyproject、server.json ≤100 字符、四份插件清单、README、docs 首页)加 HR 岗位族、国内镜像(文案句:国内网络不用代理,GitHub 打不开也能拿到索引,同一份数据)、求职清单;托管地址各处统一为https://openhire-vlny.onrender.com/mcp(README、PRIVACY、hosted.py 默认值、部署工作流默认值原来都写预定地址)。GitHub 仓库描述那一行要本机gh repo edit(本机待办 13)。845 tests。 - v0.8.17(2026-10-21,云端会话,
reports/086): 领导 10-21 一批裁定的落地。①hr岗位族(吸引 HR 留意):分类表、DeepSeek 提示词、免费标题规则(extract.is_hr_title,10-19 快照实测 414 / 18,158 在架,「机器人事业部」里的人事、校招标题里的「招聘」都不算);ohp reclassify-hr免费幂等,每周快照工作流跑;role_family认 recruiting / people / 招聘 等别名;未分类行按标题规则判(43% 在架行还没分类,否则 hr 筛选会混进工程师);标题搜「人事」不再命中机器人事业部;两个付费抽取默认跳过已下架(--include-delisted才算)。② 国内镜像:.cnb.yml第二条流水线把快照搬到 CNB Releasesnapshot(只用 CNB 自带令牌,GitHub 零密钥;ETag 没变就不下载;匿名复核),tests/cnb_mirror在本地 mock 上 16 项全过,CNB 上的第一次真跑排在本机待办第 6 条;客户端默认地址失败自动换镜像(config.SNAPSHOT_MIRRORS),用户自设地址不换;README 加 PyPI 镜像和代码镜像,镜像下载直链等 CNB 跑通再写进 README。③ 香港 15 家进种子表(176 家候选):AIFT、UiPath、Lynx Analytics;Atoms(板名 ATOMS Careers page)、科大讯飞;壁仞、黑芝麻、天数智芯、昆仑芯、思谋、埃斯顿、第四范式;Outsight、Eka、General Robotics;香港地点认 HKG 和区名(简体九龙、沙田、大埔不算:重庆、东莞、梅州也有);门户目录加禾赛(飞书)、地平线(Wintalent,未评估),浏览器核实排在本机待办第 7 条。④ 天眼查客户端按天眼查自己的 CLI 修三处:300000 是查无(not_verified / no_record),余额不足是 300006,日期按北京时间读(以前早一天)。天眼查「代查」没做:天眼查用户协议禁止把数据提供给第三方、要求数据只在境内(香港可以)存储使用、不支持境外 IP、禁止经云服务商网络访问,Render 在美国,四条都撞;要做得先拿天眼查书面许可并换香港主机,等领导定(reports/086第四节)。840 tests。 - v0.8.16(2026-10-21,云端会话,
reports/086): **托管端点能用了:https://openhire-vlny.onrender.com/mcp**(Render 免费档,HOSTED_URL变量已设)。0.8.15 的/mcp一律 421:FastMCP 在构造时按默认 127.0.0.1 开了只认 localhost 的 Host 校验,绑 0.0.0.0 后没重算;configure_http()按实际绑定地址重算(本机回环照旧防 DNS rebinding)。首次下载快照后/healthz一直报空库:下载期间有读者占着旧连接,装完再dispose_engine()一次。部署工作流加scripts/hosted_mcp_check.py(发版后与每日都向/mcp发 initialize 和 tools/list);调 Render 部署钩子必须带ref=<提交号>(不带时 Render 部署它上次拉到的旧提交,0.8.16、0.8.17 首次部署都停在旧版 20 分钟;带了之后不认识的提交回 404,工作流每 30 秒重试),0.8.17 运行 39531602040 一分钟上线。证据:run 39528918270,/healthz报 0.8.16、155 家、32,360 条,/mcp答 initialize 与 tools/list(11 个工具)。服务器是 11 个工具、5 个提示词(本机会话 10-20 核出,CLAUDE.md 原写 12 是错的)。Render 免费档没有持久磁盘,每次休眠唤醒都重下快照,约 10 秒。 - v0.8.15(2026-10-20,云端会话,
reports/084): 领导 10-20 确认红线继续坚守,并要求 083 的四点落地。① 六家新雇主进种子表(本机从官网核实、云端现读):Moka 的星尘 astribot/144861、魔视 motovis/38410、嬴彻 inceptio-ai/150619、DeepSeek high-flyer/140576(租户名是幻方),北森的魔法原子 magiclab、摩尔线程 mthreads;云端能直接连 Moka 和北森(ohp read-board现读成功),不必等本机。读板认 Moka 新网址/social-recruitment/、/campus-recruitment/;Moka 校招门户(智源)我们的读法打不开,待研究。新增只读工作流probe-boards.yml(workflow_dispatch,云端触发、看日志)。 ② 门户目录 27 家:加非夕、百川(飞书)、灵初(只链 BOSS)、因时、灵心巧手、光轮(官网文字)、无问芯穹(空壳)、珞石(钉钉招聘,新系统,评估前不读)、智源(Moka 校招);公开页加一句可复制给有浏览器的助手的话。③ 每周本周新发:new_postings_window.py --list,第一期(10-19 快照)国内 14、海外 35,稿在私库weekly/;定时任务「具身本周新发周表」每周一 14:51 UTC 自动出表写稿。numbers.json 按 10-19 快照:152 家、18,158 条。785 tests。 「本机待办」直连本机(领导 10-20:最好不经他复制粘贴): 私库local-inbox.md,云端写日常活,本机每晚定时任务先做它再做知乎和 GitHub 日检;要领导在场的活不进队列。备忘录 私库memo-for-howard.md(飞书 HR 授权、飞书合作两件领导的事),定时任务「领导备忘录周四提醒」每周四 08:50 香港时间。Render 注册领导授权由本机做:Gmail 邮箱、名字 OpenHire、到密码框停下等领导(任务书local-session-prompt-2026-10-20.md)。EarlyTip 10-16 审核本机已跑:原 83 个 id 全在、现 122 条、问题 0。 - v0.8.14(2026-10-19,云端会话,
reports/082): 回答领导 10-15 三问。① 不用背咒语:add_employer早已封装,0.8.14 的服务器指令让助手主动提「加进索引并盯住」和门户链接;五个内置 MCP 提示词(src/openhire/prompts.py:job_radar、track_employer、vet_employer、radar_check、new_this_week,参数有中文出中文版,老 SDK 不支持 title 时照样注册);README Quickstart 加「What to say to it」可粘贴句子,带货稿从这里取。 ② 门户目录:list_portals工具(第 11 个工具,验收测试钉住;10-21 前这里误写成第 12 个)、ohp portals、公开页docs/portals.html(由seed/not_indexed.py生成,测试保证一致;登记表加 sector、last_checked、不登录能看到什么)。星动纪元在索引里(Moka)又有飞书门户:单列SECOND_PORTALS,get_company_info带also_posts_on。岗位级飞书链接不做(要执行签名脚本批量读列表,越 2026-09 的访问控制线)。 ③ Workday 翻页修(第二页起total报 0,旧代码停在 40);快照换文件 Windows 重试 + 报占用者 + 失败放回旧库,测试连接全关;org-events-audit --fresh留旧副本作基线,--baseline / --expect-at-least / --must-include按 event_id 比对。781 tests(3.13、3.11)。 收录: mcp.so 10-16 收录(#3845、#4473),Awesome-MCP-ZH #602 10-15 合并。知乎承诺兑现:scripts/new_postings_window.py出「近 30 天新发」表(082 第三节),本机贴。Xbotics 许可 issue 交本机发。 - v0.8.13(2026-10-15 夜,云端会话,
reports/081): 盲区扫除第一步(领导:「我要全垒打」)。①add_employer(url)/ohp add-employer:任何适配器读得了的板贴网址就进本机索引并当场抓一次,之后 search / watch / refresh / ghost_score 全有;companies.user_added标记(模型、schema.sql、migrate 都加了列),永不进公开快照(build_snapshot跳过、install拒收),每周刷新时carry_over_user_state连 companies / jobs 一起搬;remove_employer移除;read_board结果带add_to_my_index和预填 issue 链接suggest_for_public_index。 ② Workday 适配器(ats/workday.py,租户键<account>.<wdN>/<site>,列表 POST/wday/cxs/.../jobs每页 20 条 + 详情startDate为发布日,先 GET 页面拿 cookie,CSRF 头可选);myworkdayjobs.com从封闭门户清单删掉;云端连不上,按已知形状写,本机实测通过前不进种子表(队列里排了 NVIDIA / 宏利 / Intel 三条 read-board)。③ Windowsfile://路径修(url2pathname)。743 tests。 飞书系怎么绕(待领导定): 社区清单(Xbotics 471 条公众号链接,要先问许可;Lumina CC BY-NC)当发现层、公众号文章当一手源;read_board --browser本机浏览器渲染读公开页(不登录、守 robots、被拦即停)要领导裁定是否触碰 2026-09 的 CLOSED 判定。 - v0.8.12(2026-10-15 夜,云端会话,
reports/079第八节): 托管端点改走 Render 免费档。 Hugging Face 2026 年起个人免费账号只能建静态 Space,Docker / Gradio 要 PRO(本机会话触发部署时402 Payment Required,run 38672012354;领导的 HF 账号与HF_TOKEN已建,留着备用)。render.yamlBlueprint(free、oregon、hosted/Dockerfile、autoDeploy 关、健康检查/livez);hosted.py认RENDER_EXTERNAL_URL、加/livez;deploy-hosted.yml按 secret 选主机(RENDER_DEPLOY_HOOK走 Render,HF_TOKEN走 HF),地址用仓库变量HOSTED_URL(默认https://openhire.onrender.com),每日体检 03:17 UTC 和每 10 分钟 keep-alive(免费实例 15 分钟没流量会睡)都只在HOSTED_URL设了才跑。 本机会话负责:Render 用领导 GitHub 登录 → Blueprint 建服务 →gh variable set HOSTED_URL+ 剪贴板gh secret set RENDER_DEPLOY_HOOK→ 手动跑工作流 →/healthz报 0.8.12 → 改知乎 ChatGPT 句。Render 若要卡做 1 美元验证,停下报告领导。715 tests。 - v0.8.11(2026-10-15,云端会话,
reports/079): 托管端点,给 ChatGPT 这类只收网址的客户端(领导裁定「那我们就挂吧,你来操作」)。src/openhire/hosted.py,OPENHIRE_HOSTED=1时随ohp serve --transport streamable-http启动:首页/与/healthz、instructions 加托管披露句、每地址 300 / 全站 3,000 每分钟限流、无状态 HTTP、不记访问日志、快照刷新线程(每 6 小时 HEAD 公开快照,变了就下载到openhire.db.staged并 SIGTERM 自己,hosted/entrypoint.sh循环拉起,serve()启动时先换文件再开库)。 换快照不丢 watches / applications(snapshot.stage_snapshot / activate_staged / carry_over_user_state,ohp bootstrap --force也保留了,0.8.4 路线图项关闭)。SSRF 防线:verify/checks._get取用户给的域名 / 页面前先解析地址,私网、回环、链路本地、云元数据、localhost/.internal、非 80 / 443 端口一律不发,重定向手动跟最多 5 跳逐跳检查。 部署目标 Hugging Face Space(Docker,免费):hosted/Dockerfile(装 PyPI 的openhire==X,版本号第十二处 sed)、hosted/README.md(Space front matter)、.github/workflows/deploy-hosted.yml(Release 成功后推hosted/到 Space、等 PyPI 有版本、等/healthz报版本;每天 03:17 UTC 健康检查)。仓库 secretHF_TOKEN由领导自己放(HF 账号 → Write token → GitHub Settings → Secrets → Actions),没有 secret 部署步骤只打 notice。 预定地址https://gzchenhao-openhire.hf.space/mcp(README、PRIVACY §3、首页、instructions 四处口径一致:主机只见工具参数、不记查询、盯岗记录按指纹存在它的索引里、本机安装仍是推荐)。云端连不上 huggingface.co,没有真机实测,等 token 放好后由工作流验证;上线后改知乎文章那句 ChatGPT 括号。714 tests。 - 知乎文章稿(2026-10-14 夜,不发版,
reports/078): 具身雇主 JD 信号扫描scripts/jd_signal_scan.py(37 家、1,864 条在架、快照 10-13):论文提及 6%(研究岗 25%;国内研究岗 76% 写成优先,海外 22%)、名校 1%、研究岗写年限 44% 对其他岗 69%、按年份看论文提及率持平。文章 10-14 13:58 UTC 已由本机发出:https://zhuanlan.zhihu.com/p/2093821857900257514 (基线阅读 1,stars 10;稿在私库zhihu-embodied-jd-signals-2026-10-14.md,10-15 按领导三条意见修订:带货段给可复制的 prompt、点名 ChatGPT、发完投稿到相关问题,见文案规矩第 7 条)。本机时钟比知乎服务端慢十几分钟,本机记时间以服务端为准。文案里的分析数字一律出自带日期的测量报告(078 这类)加numbers.json,脚本进仓库让人重跑。 - v0.8.10(2026-10-14,云端会话,
reports/077第九节): EarlyTip 首版的读者侧审计本机跑完:83 / 83,problem_count 0(18 键、id 与 key 重算、黑窗、D10、撤回、待核实标记全过);event_date10 条、amount46 条、related20 条;不放链接域名命中 8 条。匹配实测高通(对外M&A,另一方 PickNik Robotics)、Boston Dynamics(高管流动,另一方 亚马逊)都命中,理想汽车 no_record。 提给生产侧两条(经领导转达):D18Tesla与特斯拉两个规范名按 D4 合并;D19庞伯特Pongbot中英粘连,改庞伯特+ 别名。读者侧同日修:导出里的公司 / 别名 / 另一方名按中英半边各算一次键(events_for),「庞伯特」「Pongbot」都能命中。本机队列已清空。 - v0.8.9(2026-10-14,云端会话,
reports/077第八节): 领导两条裁定落地。① 律师过目域名清单 12 月再议(12 月清单再加一问:OpenHire 面向国内用户是否落入《网络招聘服务管理规定》的网络招聘服务,EarlyTip 线 10-21 提出,reports/088)(六个域名不放链接、其余普通链接的处理已够)。②org_events每条加amount(EarlyTip 从自家标题 / 推荐理由原样抄录、过了 D3 的金额,取不到 null),note 里融资类带「(数亿元)」,出处句改成「只转事件类型、日期、金额、来源域名和链接,不转标题」。十二处版本号到 0.8.9。 - v0.8.8(2026-10-14,云端会话,
reports/077): EarlyTip 事件导出接入check_employer(新项org_events)。EarlyTip 首版导出 10-14 上线(earlytip.com/data/org_events.json,schema 1,83 条回填,日常追加未启用),OpenHire 只做消费侧: 整份公开文件一天一读到OPENHIRE_HOME/earlytip/、本机比对,服务器看不到查谁;company_key按规格二.1 复刻(verify/org_events.py);只给类型 / 日期 / 域名 / 普通链接,不转标题、推荐理由、金额; 六个域名不放链接(cs.com.cn、bloomberg.com、reuters.com、sina.com.cn、chinastarmarket.cn、cls.cn,含子域,比生产侧通知的三个多三个,是 OpenHire 自己的规矩);撤回过滤、company空跳过、unverified透传;无记录 =unavailable+no_record。 维护者审计ohp org-events-audit(--file/--fresh/--json)从读者侧核规格,本机任务队列ALLOWED加了它。云端连不上 earlytip.com(403),首版真实审计排在本机队列,结果回来再出 D 条目;提前于 10-12 预案的「满 90 天」接入,律师过目改为接入后补做(待领导定)。670 tests。 发版自检:PyPI、Release(run 38511414445)、mcpb 都好;Registry 工作流第三次误报,这次查到了真因:列表接口每页 30 条、最旧在前,0.8.8 是第 31 个版本,第一页 0.1.1 到 0.8.7 里没有任何 isLatest,旧核对把它判「失败」,重跑又被 Registry 以duplicate version拒绝(即已发布)。核对改成scripts/registry_state.py(limit=100并跟metadata.nextCursor翻页;退出码 0 已标 latest / 2 在库里没翻标 / 1 不在 / 3 读不到):在库里就算发布成功,没翻标或整段时间读不到只告警,只有「答了且不在」才红;「已发布?」一步按同一脚本判,Publish 一步把duplicate version当已发布,重跑不会再红。另外/v0/servers?search=这个接口 10-14 对 runner 常常 20 秒超时(validate 与 publish 秒回),脚本 curl 优先、urllib 兜底。不发版。 - v0.8.7(2026-10-12,云端会话,
reports/076): 两家系统首批六家雇主入种子表(Workable:Robotec.ai、Flexion Robotics、Andromeda Robotics、Agile Robots;SmartRecruiters:AeroVect、PAL Robotics),每家 10-12 本机真实读通后才进;Workable 接口把岗位按城市重复给出(同 shortcode 两条),解析层按 shortcode 合并、城市用分号连起,一岗一主键;索引来源说明三处加上两家。博世不入库(4,947 条多为客服技工)。656 tests。快照重跑后ohp numbers重生成(10-13 02:54 UTC):employers_with_live_postings 154、live_postings 18,145,README 四处 143 已改 154。 10-12 的定时快照实际 15:13 UTC 才起跑(GitHub cron 常延迟数小时),没带上这六家;10-13 01:46 UTC 用 GitHub MCP 的actions_run_trigger手动触发了refresh-snapshot.yml(云端会话能触发 workflow_dispatch,「触发不了工作流」只指 REST 建 tag 的 403)。 - v0.8.6(2026-10-12,云端会话,
reports/075): Workable 与 SmartRecruiters 适配器(073 做市商结论的落地:一个供应商写一次,长尾雇主边际成本为零)。Workable 走 Widget API(apply.workable.com/api/v1/widget/accounts/<sub>?details=true,published_on裸日期存 UTC 零点); SmartRecruiters 分页列表 + 每条详情(6 并发,单条失败不影响整批)。两家接进read_board/ 板 watch /ohp seed;ATS_APPLY_HOSTS加apply.workable.com、jobs.smartrecruiters.com。 云端连不上两家、文档站也打不开,适配器按文档写、18 条测试钉住;10-12 夜本机实测两家都通(Robotec.ai 6 条,发布日 ats_reported;博世 4,947 条、德国 738 条,详情合并成功,reports/075第五节);索引来源说明没改,种子表还没有这两家的雇主。654 tests。 本机任务脚本修了一处编码缺陷(main60055b5,不发版):本机ohp --json在 PowerShell 管道里按 GBK 输出,脚本按 UTF-8 读,6/8 任务记成「退出码 0 无输出」;现强制子进程 UTF-8、解不出的字节替换不报错。 - v0.8.5(2026-10-12,云端会话,
reports/072): 领导四条指示的落地。① 装机文案点名五个助手(README 主句与 Works with、docs/employers.html):Claude、豆包、DeepSeek、Cursor、腾讯 WorkBuddy; 豆包走本机ohp serve --transport streamable-http --port 8000+ 自定义连接器http://127.0.0.1:8000/mcp(领导 10-12 在豆包工作里实测通过);DeepSeek 经 Cherry Studio / Chatbox 这类客户端。文案规矩第 7 条。 ② 「深科技」不再用,一律英文 deep tech(CLAUDE.md 人设条、私库 15 份稿件已改;公开 reports 历史不动)。③ 封闭门户给浏览器提示:boards.py的BROWSER_HINT接在飞书 / Lark / Workday / SuccessFactors / Taleo / iCIMS 的拒绝理由后,known_not_indexed_hint对有门户地址的雇主加一句「有浏览器工具的助手可以自己打开读,OpenHire 不入库、不标日期、不盯」;招聘网站(LinkedIn / JobsDB / BOSS)不加。回答领导「WorkBuddy 能读飞书而我们不能会不会尴尬」: 谁都读不了飞书的列表接口(要签名;WorkBuddy 也没有雇主授权),能读的只是浏览器里渲染出来的那一页,和人一样;OpenHire 的价值在索引、日期、在架天数和盯岗,不在替人看一页。 ④ Registry 工作流核对步骤加重试(6 次 × 10 秒):0.8.2 与 0.8.3 都是发布成功后立刻核对、搜索索引还没更新而「失败」。⑤ Gmail 托管:见下方「每次开工要主动查的四个入口」第 2 条,RoutineOpenHire 邮箱日检(trig_014FzhejmdLSWLn9mimarsMu)。636 tests。 - v0.8.4(2026-10-11,云端会话,
reports/070): ①check_employer加sanctions_screen:OFAC SDN 与综合名单(公开 CSV,无 key)下载到OPENHIRE_HOME/sanctions/每日一次, 公司名本机比对(只剥法律形式后缀,不剥 group / holdings;双语名各试),命中报条目不报判决,拿不到名单报reason;云端连不上 treasury.gov,要本机跑。 ② 板也能盯:watch_intent收board_url(只配 location / title),check_watches现读板报new_matches与closed_since_last,板不答复不标关闭;read_board仍不入库(原因见 070 第二节)。ohp bootstrap整文件覆盖会清 watches / applications,进路线图。③ 本机任务队列:云端写私库local-tasks.json(只收check-company/read-board), 本机.venv\Scripts\python.exe scripts\run_local_tasks.py --sync跑完回传drafts/local-results/;两条命令新增--json。634 tests。 - v0.8.3(2026-10-11,云端会话,
reports/069): 领导的真实求职场景要的雇主范围比索引三个行业大得多(求职者侧材料一律放私库openhire-private/job-search-*.md,公开报告只留产品侧),于是加read_board(CLIohp read-board <url>): 贴招聘页 URL 现读雇主自己的板(Greenhouse / Lever / Ashby / Moka / 北森,任何行业,索引内外都行),板自己的日期与在架天数、雇主租户上的投递链接、location/title过滤; 不入库、无 skills / ghost_score / 重挂 / watch;封闭门户(飞书、Workday、SuccessFactors、Taleo、iCIMS、LinkedIn、JobsDB、BOSS)ERR_UNSUPPORTED_BOARD加原因,不找别的路; 每进程每板 15 分钟一次现读;板不答复不缓存、不说成雇主的问题。URL 解析在ats/boards.py,网络调用在pipeline/crawler.fetch_board(有事件循环时自动换工作线程),service.py仍不许出现 httpx(tests/test_three_nos.py)。隐私说明 §3 加了对应一条。622 tests。 实测:UiPath 3 条港岗、Airwallex 18、Lalamove 51、OKX 13、Animoca 3;猜错租户名的板如实报 404。下一步:按官网找板、公司註冊處开放接口(本机验证)、read_board 加 watch、Workable / SmartRecruiters。 - v0.8.2(2026-10-11,云端会话,
reports/068): 用 OpenHire 替领导找香港工作的实战修订:check_employer(job_id=...)(CLI--job,雇主与红线词筛查取自索引里那条岗位);unavailable项带reason(network= 这次没连上来源,说明的是网络不是雇主;no_record/http_status= 来源答了);pending_user加香港与境外免费核验路径(公司註冊處 e-Services、 警务处防騙視伏器、OpenCorporates);红线词表补繁体写法与香港警方骗局特征。602 tests。推 main 即自动发版(PyPI 可信发布、tag、mcpb、Release、Registry),发完curl -s https://pypi.org/pypi/openhire/json核对。 云端容器出网白名单不含 rdap.org / web.archive.org / 雇主官网,check_employer的域名三项在云端一律reason: network,要本机跑。求职者视角打分 76 / 100,路线图见 068 第二节第 4 条。 - v0.8.1(2026-10-10,云端会话首次发版,
reports/067): 只改说明和版本号:check_employer工具说明加一句「助手已有天眼查工具或连接器(如腾讯 WorkBuddy 内置的) 就直接用它补registry_record,不要让用户去申请 key」,tests/test_employer_check.py钉住。提交5bd4298在 main,全量 599 通过。 云端会话推不了 tag 也触发不了工作流(git 代理只放行分支推送,REST API 建 tag 403,上报不绕)。0.8.1 由本机推 tag、手动跑release.yml发出: PyPI 可信发布首发成功(wheel + sdist)、mcpb 挂 Release、Registry 重跑成功。随后release.yml改为 main 上pyproject.toml版本号变了就自动发: 先跑全量测试,绿了才发 PyPI,再由 Actions 自己建 tag 和 Release;版本号没变的推送直接跳过。Registry 改为在 Release 成功后跑(workflow_run),已是最新则跳过。 openpyxl 进了 dev extra(uv lock已重生成),云端pip install -e ".[dev]"就是 599 全绿。 - v0.8.0(2026-10-08,同日第三版,
reports/065): 求职者一键企业背景查证check_employer(CLIohp check-company)。返回查证清单不是分数: 每项五种状态(verified / not_verified / unavailable / not_applicable / pending_user)带来源与时间,结尾写明「不是判断」。免费项:索引里的在架数 / 中位在架天数 / 发布日来源 / 认领、 或「已知未收录 + 原因」、或「已停止运营」;RDAP 域名注册日期;档案馆首次抓取;首页备案号;JD 红线词。付费项工商登记走天眼查 OpenAPI,用求职者自己的TIANYANCHA_API_KEY(放在他机器上,我们看不到 key 也看不到他查谁), 没 key 标 pending_user 并给三条路(设 key / 助手已有的天眼查 MCP / 爱企查与公示系统手动)。代码在src/openhire/verify/(维护者脚本与求职者工具共用同一套检查)。 天眼查客户端没有真 key 实测,领导有开放平台账号就给一个放.env。「token 批发中心」没做:天眼查数据许可不许转售、代查会让我们服务端看到求职者查谁和付钱、收钱要营业主体;等领导定。 隐私说明 §3 加了这个工具向谁发什么(公司名 / 域名,从不发用户信息)。 - v0.7.0(2026-10-08,同日第二版,
reports/062): 雇主自报岗位表(ats/self_reported.py,来源employer_self_reported)。 领导要「傻瓜式」:HR 填一张六列 Excel(docs/openhire-岗位表.xlsx)用企业邮箱发来,我核实身份后scripts/import_employer_roster.py转成employers/<slug>.json并在SELF_REPORTED_EMPLOYERS登记,适配器像读别家接口一样读它(raw.githubusercontent.com)。四个条件写死在代码和测试里:只收企业身份核实过的雇主; 每行source=employer_self_reported+date_signal=self_reported(雇主自己填的日期,不是系统时钟),get_company_info带date_source; 发布日 / 续期日起 90 天自动下架,再发一次表才续;投递链接只信雇主自己域名的 https,否则送到我们核过的招聘页。排序、ghost_score、三条红线不动。 这是我当天早些时候说「不做自建发岗」的有条件撤回:有身份核验、有标记、有到期、无 UI 无排序无收费,它就不是岗位库。 雇主页 / 认领模板 / README 都把填表放第一条;对外一律「贵公司」不写「贵司」(领导 10-08 纠正,全仓库已改)。 身份核实阶梯(领导 10-08 问「怎么防缅北园区买域名冒充」,reports/064): 企业邮箱只是第一步。申请者自填「公司信息」页,scripts/verify_employer.py自动核 信用代码校验位 / 发件域名 / 首页 ICP 备案号 / RDAP 域名年龄(<180 天拒)/ 档案馆历史 / 公开电话在公司自己页面 / 足迹链接;人工只剩公示系统、工信部备案主办单位、回拨三件;import_employer_roster.py对骗局特征词(境外高薪、包机票、不限经验、打字员、电销……)整行拒绝、投递邮箱必须在公司域名、--verification必填;登记表verification字段非空才过测试。一有举报先下架再问。 发版细节同 0.6.9:pip install -e . --no-deps两次、mcpbnpx -y @anthropic-ai/mcpb pack、PYTHONUTF8=1 twine。 - v0.6.9(2026-10-08,
reports/060、reports/061): 「已知未收录」登记表从 11 家到 19 家:穹彻智能、众擎(飞书);云深处(只在 BOSS 直聘)、智平方、轻舟智航、鉴智、松延动力(官网无可读岗位列表:邮箱投递 / 飞书表单 / 纯 JS 壳 / robots 禁抓自家接口,我们遵守 robots); 毫末智行「已停止运营」(2025-11-29 停工通知,媒体报道;Moka 门户 2026-09-02 关停;haomo.ai 2026-10 跳无关站),不给 opt-in,提示句「告诉用户发生了什么,不要把人送去任何地方」。 认领表单(中英)加「贵司的岗位目前发布在哪里」下拉和三条只读进入路径(飞书两个只读 scope / 官网机器可读页 / 换可公开读取的 ATS),README 同段。 种子表加 5 家美国具身公司(Skild AI、Apptronik、Field AI、Dyna、Generalist,267 条),周一快照自动进库。SECURITY.md+ GitHub 私密漏洞报告;根目录uv.lock(第十二处版本,bump 后uv lock);docs/numbers.json改由公开快照生成。 抽样结论(060): 28 家目标行业小团队零家带 JobPosting JSON-LD,不做 JSON-LD 适配器;国内小团队的缺口是结构性的(飞书 / BOSS / 自建页),只能雇主 opt-in。 发版流水账:pip install -e . --no-deps两次后test_version_matches_pyproject才绿(元数据);mcpb 用npx -y @anthropic-ai/mcpb pack mcpb dist/openhire-X.mcpb,解包核对dependencies = ["openhire==X"]。 - v0.6.8(2026-09-28,
reports/055): 领导用 HR 人设(base 香港,智驾 / 具身的招聘岗)亲自跑了 Kimi 网页版和腾讯 WorkBuddy。 修:title过滤(岗位名里的词,任一命中;英文锚词首;HR 同义词组展开,因为分类表没有 HR 族、HR 岗归 ops); 未知role_family拒绝(recruiting原来静默返回全库);香港 / Hong Kong / HK 同一地,补一批只有一种写法的城市拼音; 快照下载续传 + 4 次重试(Kimi 国内沙箱 20 MB 处超时,原来一次读超时整份作废、零重试); 服务器自己没拉到快照时工具结果带bootstrap_error和出路;ghost_score措辞指引进工具说明(两个 agent 都把 1,616 天的岗叫「僵尸岗别投」); README 加 WorkBuddy(~/.workbuddy/mcp.json,重启才加载)和「GitHub 不通」一段;PyPI / Registry / mcpb 描述不再带雇主数。 供给侧事实(不是缺陷): 索引里地点含香港的在架岗 8 条、无 HR 岗;但 WorkBuddy 说的「国内具身公司零 HR 岗」是翻页翻漏了(国内 HR 岗 16 条)。 待领导定:国内镜像(魔搭要 token 进 Actions secret,打破零密钥;jsDelivr 切块不用密钥但国内可达性不稳;第三方 gh-proxy 不内置,镜像能篡改投递链接)。 twine 在 GBK 控制台打印「•」会崩,上传前加PYTHONUTF8=1。 - v0.6.7(2026-09-24,
reports/054): 用scripts/mcp_call.py(进程内起当前版本)把三个求职人设 + 一个 HR 人设在 0.6.6 上重跑, 十条修了九条半,又抓到 17 条当天修完:排序新鲜度锚回发布日期(0.6.3 锚在 updated_at 是错的,470 天被动过的岗压 3 天新岗); 感知别名扩到 detection / point cloud;城市别名(广州 ↔ 天河区等);watch 可带 location;truncated只在满页时为 true; 蔚来进已知未收录表;未声明参数(resume / cv / email …)直接拒绝(FastMCP 默认静默丢);claim 标题精确匹配写进 help。 测试防线: conftest 里的 session 级守卫,config.DATABASE_URL不是临时库就整个 session 失败。因为 9/23 夜里某次 agent 测试 把本机索引~/.openhire/openhire.db写成了 1 行(已从快照副本恢复,坏文件留作openhire.db.wrecked-20260924)。 规矩:agent 和 ad-hoc 脚本只准对临时库或备份副本跑;跑 agent 前先cp openhire.db openhire.db.bak-<日期>。 - v0.6.6(2026-09-23,同日第五版,
reports/053): 飞书雇主的合法路径。理想汽车第一方镜像适配器(vendorlixiang,api-web.lixiang.com普通 GET,772 条社招含完整 JD,无发布日期 → 行上带date_signal: not_reported_by_ats,get_company_info报posting_dates_reported);蔚来适配器写好并测过但停用(www.nio.cn的 EdgeOne 对我们的 httpx 回 567 安全策略拦截, 按 020 视为访问控制,seed 行注释掉,等蔚来加白或授权);已知未收录雇主登记表seed/not_indexed.py(Momenta、小马、智元等 10 家), 搜索和get_company_info回门户 URL + 原因 + 雇主可授权的飞书只读 scope;三个新 Moka 租户(银河通用 / 月之暗面 / 阶跃星辰)。 诚实修复:任何抽取器(启发式 / DeepSeek / GLM / Anthropic)不许从光秃秃的标题里抽技能;后续抓取拿不到 JD 时不覆盖已存的; 没 JD 时remote_policy不读标题;投递 URL 只信 https 且只信租户自己的 host。525 tests。 飞书本身:官网只服务端渲染<title>,列表接口要签名,无 feed / RSS / sitemap,判 CLOSED;唯一完整路径是雇主在飞书开放平台 授权hire:site_job_post:readonly(模板在drafts/feishu-employer-optin-template.md)。 - v0.6.5(2026-09-23,同日第四版): 体验测试剩下的六个小项当天清零(领导:今日事今日毕):
location过滤(中英文子串);limit<1报ERR_BAD_PAGE(负 offset 仍夹到 0,那是 v0.5 的有意设计且有测试);watch_intent回existing_watches并在指纹已被占用时提醒换长的; 示例指纹改成 12 位;min_salary/currency/require_stated_salary的语义和「薪资基本只有美国岗才标」写进工具说明;401 tests。 - v0.6.4(2026-09-23,同日第三版): 回答领导「还有无其他缺陷」时查出两条数据层缺陷(
reports/052): ① 共享技能词表的正则没加词边界,rust命中 trust、scala命中 scalable,2,930 条 rust 标签里 2,432 条(83%)JD 里没这个词; ②extraction_source记的是「问了谁」不是「谁答的」:LLM 抽取失败静默退回启发式、每周重抓在内容变化时用启发式覆盖 skills 但不动来源戳,3,098 条在架行(19%)顶着 deepseek/glm 的章、装的是启发式列表,且因此被月度精抽跳过(它只挑非 LLM 源)。 修法:词表全部加边界(_bounded,c\+\+保留尾部开放);ExtractionResult.extractor由抽取器自己签名、ingest 照签盖章;scripts/clean_skill_noise.py修存量(无证据的词表标签删掉;启发式列表冒 LLM 章的重打标签并如实盖 heuristic)。 教训进「血统不造假」那条:来源戳必须由产出结果的那个抽取器写,调用方不许按「计划用谁」盖章。 - v0.6.3(2026-09-23,同日第二版): 体验测试(三个小马智行感知工程师人设 + 复现者,只用 MCP 工具,
reports/051) 抓到的十条可复现缺陷全修:refresh_index崩溃(asyncio.run 在事件循环里 → 工作线程);排序 freshness 原来取verified_at(索引构建时间,每行相同),改成雇主自己的时钟(最后改动否则发布日,180 天线性);role_family=null的新岗不再被过滤掉;check_watches全量排序后取 100 条并报total_matching / truncated;中文技能别名表 (感知/占用网络/点云/多传感器融合/视觉/目标检测/定位/规控)+ 半命中结果报unknown_skills;remote_scope国家码按词边界匹配、读不出的回unknown不再假报worldwide;watch_intent拒绝未知键、支持company;get_company_info认名字;文远知行加中文名;xiaopeng租户改名「小鹏汇天 XPeng AeroHT」(它是飞行汽车 + 工厂, 不是小鹏汽车智驾)。改名要等快照刷新才进公开库(已手动触发 refresh-snapshot.yml)。 - v0.6.2(2026-09-23): 对外文案改成搜索优先(GitHub 描述 /
server.json/pyproject/ MCPinstructions, 搜索引擎已是第二大来源,Google+Bing+Baidu 14 天 11 人,比知乎的 4 多);MCPinstructions里加数据出处署名; 工具 docstring 里那个硬编码的 67% 删掉改指numbers.json;README 加 Cursor 一键安装按钮;mcpb 依赖钉到当前版本。 - v0.6.1(2026-09-22): 把 9/14 之后攒在 main 上的 44 个 commit 一次性发出去。
发版铁律新增第三条:修好不等于发好。 体验官 Round 5 抓到我们「修复速度是小时级、发布速度是周级,
用户拿到的是乘积,而这周乘积为零」:0.6.0 的首搜必崩修复在 main 上躺了 8 天,
GitHub Releases 还停在 v0.5.1(v0.6.0 连 Release 都没有),README 指的
.mcpb是 404, PyPI 页面挂的 mcpb 还是 0.5.1。 往后每次改动用户可见行为,当天就要走完:PyPI → 打 tag → 建 Release → 挂 mcpb → 文案版本号同步。 版本号一共五处:pyproject.toml、server.json(两处)、mcpb/manifest.json、mcpb/pyproject.toml、README.md。 2026-09-28 起再加四处插件清单:.claude-plugin/plugin.json、.claude-plugin/marketplace.json(plugins[0])、.cursor-plugin/plugin.json、根目录plugin.json(agent-plugins.org 标准)。 2026-10-08 起根目录.mcp.json和mcp.json也钉版本(uvx openhire==X serve):Anthropic 目录的检查把@latest判为阻塞项「Unpinned uvx launcher」。 2026-10-15 起hosted/Dockerfile也钉版本(pip install "openhire==X",托管端点装的就是它)。 发版时一条sed 's/0\.6\.x/0\.6\.y/g'把这十二个文件一起换;第十三处uv.lock不用 sed,bump 后跑uv lock重生成(目录 Verified 徽章要 pyproject + uv.lock;单文件上限 256 KiB,现约 240 KB);tests/test_release.py全部钉死。插件图标.claude-plugin/icon.png(512px,目录只在首次提交时采用)。 第五处是 2026-09-23 才发现的,而且是最要命的一处:.mcpb里跑的是uv run --directory <bundle> src/server.py, 真正装什么由mcpb/pyproject.toml的dependencies = ["openhire==X"]决定,manifest 里的版本号只是标签。 v0.6.1 的 mcpb 标签写 0.6.1、依赖钉 0.5.1,所有双击安装的用户一直在跑 0.5.1。tests/test_release.py现在把五处钉死到pyproject.toml,版本不一致测试就红。 - v0.6.0(2026-09-14): 雇主认领落地(
seed/claims.py+ SLA + 四类更正 +--unverify)、refresh_index工具(单雇主、6h 节流)、ohp numbers管道、ghost_reason、--company过滤、collapse。 - GitHub Pages(2026-09-15 开启): https://gzchenhao.github.io/openhire/ ,源 =
main分支/docs。 注意:docs/整个目录就是站点根,放进去即等于公开发布。 月报页因此被误发过一次,已撤到report-draft/。 - v0.5.0(2026-09-12):
role_group(同岗多城市共享的分组键,不折叠行)+offset分页, 两者都是给 client agent 省limit预算和 context 的;返回结构未变,老客户端不受影响。 - v0.4.1–0.4.3: auto-bootstrap 改为后台线程(托管市场探测不再超时)、版本号三处对齐
(包 /
ohp version/serverInfo.version,各有测试钉死)、幂等注解与实现对齐。 - v0.4.0(2026-09-11):
serve空索引自动拉快照(uvx openhire serve零配置)、--transport sse|streamable-http、五个工具带 annotations、Dockerfile、mcpb/(Claude Desktop 扩展,uv 运行时;Release v0.4.0 附openhire-0.4.0.mcpb)、docs/PRIVACY.md、docs/brand/图标。 - 上架进度(025/026): 魔搭 ✅ 已上线可部署 · Claude 扩展目录 ✅ 已提交 · Cline issue #2501 与 Docker PR #5055 审核中 · GitHub 精选 Registry 已申请排队。
腾讯云开发者 MCP 广场(056,2026-09-28): 页面无入口、文档写「第三方暂不上架」,但真正的提交仓库是 cnb.cool/codebuddy/mcp-market(issue 模板,微信登录),
有第三方提了被收的先例(DemoWay 70 天、有活 2026-06)。已提:issue #21(2026-09-28),邮件同日从领导 Gmail 发到
[email protected]。 材料在drafts/tencent-mcp-listing.md。10-12 前后用广场搜索接口查一次openhire有没有出现;issue 下不追问(无人回复)。 CNB 镜像:https://cnb.cool/gzchenhao/openhire (组织gzchenhao,领导实名认证后建的;openhire这个组织名被 CNB 按域名保护)。 同步靠仓库里的.cnb.yml(CNB 流水线每 6 小时从 GitHub 拉 main + 全部 tag,用流水线自带CNB_TOKEN强推,GitHub 侧零密钥) 和.cnb/web_trigger.yml(CNB 分支页…→ 执行 → 「从 GitHub 同步」按钮)。发版后想让镜像立刻跟上就点那个按钮。 CNB 的 Monaco 编辑器会把逐字输入和粘贴的 YAML 自动缩进成阶梯,内置浏览器的剪贴板也进不去;要在 CNB 网页上写.cnb.yml, 用单行 JSON(YAML 是 JSON 超集)。GitHub Actions 不读.cnb.yml,tests/也不管它。 - Release v0.1.0: https://github.com/gzchenhao/openhire/releases/tag/v0.1.0 (含快照资产
openhire-index.db.gz,URL 稳定不变) - PyPI: https://pypi.org/project/openhire/0.5.0/ (
pipx install openhire/uvx openhire@latest serve) - 官方 MCP Registry:
io.github.gzchenhao/openhire(registry.modelcontextprotocol.io)。推v*tag 即由.github/workflows/publish-mcp-registry.yml用 OIDC 自动发布(v0.3.1 起每次均如此),本地mcp-publisher只作备用。 从 Registry 自动收录的有 mcpservers.org、mcpmarket.com、Glama;mcp.so 2026-10-16 收录(主动提交的 #3845、#4473 由维护者关闭,页面 https://mcp.so/servers/openhire );PulseMCP 没有我们(2026-09-28 核实,此前写「自动同步」是错的)。中文清单 yzfly/Awesome-MCP-ZH PR #602 2026-10-15 合并。 - 上架渠道全景(057,2026-09-28): 仓库本身已是 Claude Code 插件市场(
.claude-plugin/,用户/plugin marketplace add gzchenhao/openhire+/plugin install openhire@openhire,端到端实测过)、 Cursor 插件(.cursor-plugin/plugin.json)和 Agent Plugins 标准包(根目录plugin.json+mcp.json)。已提:火山引擎volcengine/mcp-serverPR #437、mcp.so 目录chatmcp/mcpsoissue #4473。 README 有 TRAE 一键导入链接。Anthropic 目录已提交(2026-10-08,reports/058):插件页 https://claude.ai/directory/manage/plugins/1a281d9a-66a9-437d-a666-5635047cc35a (领导 Max 账号登录才能看),等待安全扫描 + 人工审核(三类保留项,答复在 058 第四节);审核邮件到领导 icloud 邮箱。 内置浏览器面板打不开 claude.ai,这类操作走 Chrome 扩展。接受目录条款那一勾每次都要领导在对话里明确说「可以」。push webhook 领导已装好(密钥不经我手),推 main 几分钟内目录就读到新版本。 仍要领导登录的:Cursor Marketplace、cursor.directory、Smithery、LobeHub、AIBase;清单在drafts/listing-handoff-2026-09-28.md。 SECURITY.md + GitHub 私密漏洞报告(2026-10-08 开启):目录条款要求漏洞报告机制;报告落在仓库 Security → Advisories,领导邮箱收通知,承诺 3 天确认、14 天评估。 不可:扣子 / 讯飞星辰 / 元器要公网托管端点(ChatGPT 连接器 0.8.11 起有托管端点可接,见上);百炼、千帆、华为云、豆包、TRAE 市场无第三方入口;Goose 停收,PulseMCP 停收,Continue 没了。 本机坑:~/.claude/plugins/known_marketplaces.json曾损坏成全零字节,任何claude plugin marketplace命令都报 JSON 错;已重置为{}(备份.corrupt-20260928)。 - Smithery: v0.1 放弃(无本地 stdio 网页入口,见
reports/010)。 - 推送用
gh(keyring);PyPI token 仅%USERPROFILE%\.pypirc;mcp-publisher二进制在.tools/mcp-publisher.exe(gitignored,v1.8.1),其 GitHub 登录令牌会过期,过期时.tools/mcp-publisher login github重登。三者均不进代码/git。 - 发版铁律:PyPI 发布必须先于快照刷新(老客户端会带旧代码读新数据)。
反过来同样会咬:新代码读老快照。 2026-09-15 v0.6.0 带着
companies的两个新列上了 PyPI, 而已发布快照还是加列之前建的,于是新用户uvx openhire@latest serve第一次搜索就no such column: companies.response_sla_days,每周快照工作流同时挂在ohp seed。 已从根上修掉:init_db()现在会跑前向迁移(db/migrate.py),打开任何数据库都先补列, 因为我们打开的库往往不是我们建的。加列之后不需要记第三条规矩,但要记得: 改了模型列就跑一次gh workflow run refresh-snapshot.yml,让公开快照带上新列。 ohp.exe文件锁(已咬三次,按这个来): Claude Desktop 跑着 openhire MCP 时会占住.venv\Scripts\ohp.exe,pip install -e .会在最后替换该文件时报WinError 32而中止, 于是包被卸载但没装回去,表现为ModuleNotFoundError: No module named 'openhire'+ 一片测试报错。Windows 连重命名运行中的 exe 也拒绝(Device or resource busy)。 正确顺序:改 venv 前先在 Claude Desktop 设置 → Developer 里停掉 openhire,或退出 Claude Desktop。 已经中招时:pip install -e . --no-deps通常能把包装回去(只有 exe 那步失败),旧 exe 是转发壳、 照样加载新包,那个 ERROR 是噪音不是故障 —— 但必须重跑一次 pytest 确认,不能靠推断。- 备份:代码/reports/style-reference/设计文档 push 到公开仓库即等于备份。 唯一不在公开仓库的工作内容是
drafts/(gitignored,宣传文案与任务书),它镜像在私有仓库 https://github.com/gzchenhao/openhire-private , 用.venv/Scripts/python.exe scripts/backup_drafts.py同步(幂等;检测到.env等密钥形态文件会拒绝执行)。 - 分工(领导 2026-10-10 定):写稿、查数据、改代码、发版全在云端会话做;本机会话只做知乎、即刻、X 的发布(要领导浏览器的登录态)。
2026-10-15 领导补:能让本机会话做的事,不让领导手工做。 凡是要登录态或本机操作的活(注册账号、取 token、放 GitHub secret、目录提交、知乎回复),云端写好 prompt 交本机会话,领导只负责把 prompt 贴过去。
2026-10-20 领导补:GitHub 上所有评论、关注和之后的互动归云端统筹,「千万别怠慢 github 的生态圈」。 SOP 在私库
github-ecosystem-routine.md:云端每天读 GitHub 通知邮件、起草回复写进它的「待发回复」,自己仓库的直接回;别人仓库里的评论云端发不了(权限只到gzchenhao/openhire,公开接口对外部仓库也是 403),由本机在每天知乎日检之后用gh发;真人关注回关,批量号不理,不做互关互赞与挂徽章换收录。 桌面版位置(官方文档 10-20 核实): 本机会话与定时任务都在桌面版 Code 标签页;定时任务在侧栏「Scheduled」→ 点任务 →「Review history」看每次运行(含跳过及原因);只在桌面版开着、电脑醒着时运行,睡眠错过只补跑一次,设置 → This computer → System →「Keep computer awake」可防跳过(领导 2026-10-23 已打开;此前 10-16、10-17、10-21、10-22 四晚漏跑,之后再漏就不是睡眠的原因)。实时直连要领导在本机 Code 会话里输/remote-control连上远程控制,云端→本机的消息文档只写了一半,需实测;无人值守的定时运行收不到跨会话消息,所以日常活一律走local-inbox.md。 2026-10-20 起云端交本机的日常活写进私库local-inbox.md(本机待办):本机每晚定时任务第一步同步私库、做完标「已办」,再做知乎和 GitHub 日检;领导只在要他本人在场的活(输密码、付款、授权第三方应用)才转贴任务书。 知乎的一切由云端全权定(领导 2026-10-21:「知乎的一切都交给你定不用问我了」):选题、发文、改稿、投稿、自荐券、回复都不再请示,执行仍由本机会话(要领导浏览器的登录态)。 领英一律不自动化(领导 2026-10-22:怕封号):领英发帖、私信、删帖只由领导本人手动;本机会话任何情况都不碰领英(内置浏览器、Chrome 扩展、脚本都不行),香港岗位改用 OpenHire 读雇主官网。起因:10-22 上午本机隔夜卡在权限确认,领导改成全部接受后它照昨晚的旧稿用领导 Chrome 的登录态发了一条领英帖,云端的更正晚到十几分钟。私库local-inbox.md规则因此加了四条:领英不碰;每条待办动手前重新同步并重读;付费精抽只在 DeepSeek 半价时段;内置浏览器没登录就标卡住,不自己换到领导的 Chrome。 宣传四条(领导 2026-10-29 批,reports/104): ① 知乎精力从文章挪到回答,每周新发改投高浏览老问题(浏览过万、回答少于 80),自荐券给回答,周表定时任务已改;② 带货回答的唯一链接指向连接向导/connect,本机日检每天记 GitHub 来源(link.zhihu.com)、14 天浏览、stars 和 PyPI 周数;③ X、即刻有事才发,脉脉停;④ 11-12 复盘 stars、PyPI 周下载、知乎近 7 天阅读三个数(已设一次性提醒)。 知乎评论与数据自 2026-10-15 起由本机每日定时任务处理(SOP 私库zhihu-daily-routine.md:分类规则、每日上限、只上报不回的五类、每天记阅读 / 赞同 / 收藏 / 评论进 growth-log);下方「四个入口」第 3 条云端不再每天看,只在本机日检上报时处理。 云端写稿交接: 云端会话同时选openhire和openhire-private两个仓库,稿子写在openhire-private根目录(它就是本机的drafts/),提交并推它的 main。 不要写进openhire/drafts/:那里被 gitignore,推不上去,会话结束就丢。本机发布前先跑上面那条同步命令把稿拉下来。 同步脚本 2026-10-10 起是双向三方合并(drafts/.sync-state.json记上次同步时每个文件的内容):只有一边改了就同步那边,两边都改了报 CONFLICT、不覆盖,人工合并后--resolved <文件>。 本机任务队列(2026-10-11 起,reports/070): 云端跑不了的查证(RDAP / 档案馆 / 雇主官网 / OFAC),云端写进私库根目录local-tasks.json,本机一条命令.venv\Scripts\python.exe scripts\run_local_tasks.py --sync拉任务、跑、推回drafts/local-results/;云端读私库的local-results/。要本机先git pull并重装包。 外部事实源的分工(2026-10-12 定): 外部事实源(私库*-org-events-decisions-*.md)的生产侧(规格、导出、回填、上传、验收)归对方项目经理;OpenHire 只管消费侧(怎么读、company_key 匹配、展示规矩),要求写成裁定条目经领导转达,不直接指挥对方的 agent 改对方仓库(10-12 夜越过一次,对方项目经理来函纠正)。.env/ API key 永不进任何仓库(含私有),存密码管理器。唯一例外(领导 2026-10-10 定,reports/066):DeepSeek key 可以存成 Claude Code 云端环境的「网络密钥」(会话看不到明文,只附到 api.deepseek.com),由领导自己粘贴;PyPI 改走.github/workflows/release.yml可信发布,token 不进云端。dist/、.tools/、本地 DB 均可重建,不必备份。 - 再发新版流程(2026-10-10 起,云端和本机一样):bump 十二处版本(含
uv lock)→ 全量测试 → 提交推 main。到此为止:Actions 的 Release 看到新版本号会自己测、发 PyPI(可信发布)、打 tag、挂 mcpb、建 Release,然后 Registry 自动跟上。不要手动推 tag(会和 Actions 建的 tag 冲突),不再 twine,READMEmcp-name保持不变。发完用curl -s https://pypi.org/pypi/openhire/json核对版本。
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.
- yesterday Changed · +2 lines · +376 tokens per session 8abfc0f8753b
- 2d ago Changed · +3 lines · +667 tokens per session f7b1f30ed057
- 3d ago Changed · +5 lines · +781 tokens per session 0301a1e0c2fd
- 5d ago Changed · +9 lines · +1,178 tokens per session 6a2481526b62
- 6d ago Changed · +9 lines · +1,976 tokens per session b323afcf11d8
- 8d ago Changed · +4 lines · +766 tokens per session c13921b0604a
- 9d ago Changed · +3 lines · +1,244 tokens per session fcbf3b6f5ba4
- 10d ago Changed · +1 lines · +311 tokens per session 3f03fae0dc4d
- 14d ago Changed · +5 lines · +1,441 tokens per session 8f69b9102650
- 16d ago First seen · 353 lines · 22,499 tokens per session scan A 6aad4aa41102
openhire CLAUDE.md is an instructions file published in the GitHub repository gzchenhao/openhire (14 stars, last pushed yesterday), licensed MIT. It adds 31,239 tokens to every session, about $0.1250 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
openhire CLAUDE.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| openhire CLAUDE.mdgzchenhao/openhire | Instructions file | 14 | yesterday | MIT | A | 31,239 | Claude Code |
| data-scientist copilot-instructions.mdrealnghon/data-scientist | Instructions file | 2 | 4mo ago | MIT | A | 373 | GitHub Copilot |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | yesterday | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |