返回目录

recruiting-copilot

编辑精选维护状态: 活跃

viy1204/recruiting-copilot

给 HR / 猎头的 AI 招聘工作流:岗位标准梳理、Boss直聘 + 猎聘双通道寻源初筛、市场人才盘点、简历评估、约面试、候选人台账与日报。可装成 Claude Code 插件或 DeepSeek Harness (dsh) 插件——后者自带可直接上手操作的「招聘浏览器」面板;也能配合任意读 AGENTS.md 的 AI 编程助手使用。

安装

dsh 没有统一的安装命令——把该插件 README(见下方)中的配置行加入你的 profile/patch 配置,然后重启即可。

了解安装方式

41

星标

13

Fork

JavaScript

语言

MIT

许可证

2026-07-09

创建于

2026-08-20

最近推送

README

recruiting-copilot —— AI 招聘副驾

给 HR / 猎头用的一套 AI 招聘工作流:逼问式梳理岗位真实要求 → Boss直聘 + 猎聘双通道每日寻源初筛 → 打招呼 → 约面试 → 候选人台账 → 日报。 另有市场人才盘点、简历评估,以及从飞书邮箱按需收取猎聘 / BOSS 的简历附件。

配合任意 AI 编程助手使用:Claude Code、Codex、workbuddy、qoderwork、MiniMax Code、Z code 等—— 只要你的工具能读工作区里的 AGENTS.md,就能跑这套流程。

⚠️ 账号安全须知(2026-08-19 更新,务必读)

两条规则:不要给 BOSS 开无头;日常招聘动作走 CLI 命令,别在「招聘浏览器」面板里手动点操作。

关于无头BOSS 现在默认有头(真窗口,启动时会抢一次键盘焦点),猎聘仍默认无头。 两家按证据分别定,不强求一致:

  • BOSS 之前默认无头,2026-08-19 改回来了——一个账号被 限制 web 端登录 24 小时,页面文案 写明「检测到您的账号存在使用第三方招聘管理系统、插件、外挂、软件等辅助工具」;另一个团队 用上游版(默认有头)长期无事,他们的 AI 擅自改走无头之后当天封号。无头 Chrome 的 UA 自报 HeadlessChrome,而 Client Hints 仍说 Google Chrome,这个自相矛盾是零误报的信号。
  • 猎聘的风控形态一次都没观测过,没有证据支持翻它的默认,而不抢焦点是实打实的好处。

别设 RECRUIT_BROWSER_HIDDEN=true——它是统一覆盖开关,会把 BOSS 一起拖进无头。 抢焦点是体验问题,被限 web 端登录是业务问题。

顺便:被限期间只有 web 端受限,BOSS直聘 APP 和 PC 客户端照常能用,不必停工。

原因:boss-cli 的反检测保护(拦风控 SDK、把上报端点用 204 假装成功、注入页面守卫等四层) 全部挂在 CLI 进程自己的 CDP session 上,进程一退出就全部失效。已实测确认。所以浏览器 跨命令常驻期间是完全裸奔的,面板操作和面板发起的导航都在这个裸奔时段里,不受任何保护。

同一个测试账号在 2026-08-18 被限制两次:一次是排查时并挂第二个 host 加反复切贴合(页面秒级 反复 resize),限制几小时;一次是点面板的有头/无头切换(同一会话内 UA 在 HeadlessChromeChrome 之间突变),限制 24 小时

本版本已做的加固:

  • 摘掉有头/无头切换按钮——默认已经是有头,正常不需要切模式;同一会话内切模式会造成 UA 突变,那正是第二次被限的原因。
  • 面板默认折叠、默认只读,且折叠状态持久化。展开会让 host 持续订阅画面并开启崩溃自愈; 要手动操作需按工具栏 🔒 显式打开。
  • 风控页熔断:一旦页面落到 403 / verify / security-check,host 立刻停掉自愈重启、停掉 贴合重发、拒绝一切导航与启动,面板顶部显示红色提示条,需人工确认后才解除。 (被限期间继续访问会把恢复时间一路延长。)

如果你之前装过旧版本并在面板里手动操作过,建议 git pull 更新后重启 DSH 会话。 细节与后续计划见 #33

它帮你做什么

  • 岗位梳理:一次一问的访谈,把「我要一个厉害的 XX」问成一份可执行的初筛标准——硬门槛、命脉技能、排除信号、目标公司、搜索词。同时产出对外 JD 与对内寻源笔记。
  • 每日招聘:说一句「处理今天的招聘」,AI 就去查两个平台的未读、按你的标准主动搜人、初筛、经你确认后打招呼,然后补台账、出日报。
  • 市场盘点:某个岗到底好不好招?一次深度调研说清市场供给、薪资水位、目标公司的人挖不挖得动,并附可推进名单。
  • 简历收取与评估:直接丢本地简历,或让 AI 去飞书邮箱翻近期的猎聘 / BOSS 简历邮件,去重下载附件后走同一套 review、台账与面试档案流程。
  • 约面试:查面试官忙闲、建带视频会议链接的日历日程、拉面试官进会、生成候选人邀约话术,面试档案自动同步。
  • 越用越准:每轮从命中的真实简历反向提取搜索词,回填关键词迭代表,下一轮搜索更准。
  • 安全红线:对外不可逆的动作(打招呼、点「不合适」、通知候选人)默认先经你确认,绝不自动拒人。

前置条件(所有工具通用)

  1. Node.js ≥ 20,本机装有 Chrome。
  2. 运行下方「安装与使用」里的依赖安装脚本。脚本装的 Boss CLI 是 Viy1204/boss-cli 维护版——它跟着 Boss 前端改版走, 带着当前的兼容与安全基线。macOS 上如果 npm 全局命令不在 PATH,脚本会幂等地改一次当前 shell 的配置文件(zsh 写 ~/.zprofile,bash 写 ~/.bash_profile)。
  3. 两个平台各扫码登录一次(登录态存在浏览器的 user-data-dir 里,一次能管很久):
    boss login
    liepin login
    
    login 一定是可见窗口(扫码必须看得见)。BOSS 平时跑的也是有头窗口;猎聘平时无头, liepin login 会先关掉无头实例再以有头拉起,登录态不会丢。
  4. 可选:飞书用户装 lark-cli 并配置凭证 → 日报出飞书云文档、约面试直接建日历日程和视频会议, 还能从飞书邮箱收取猎聘 / BOSS 简历附件;不装则日报输出本地 Markdown、约面试给你一份手动建会清单、 简历需本地提供。寻源、本地简历 review 和台账功能都不受影响。

安装与使用

方式一:通用(Codex / workbuddy / qoderwork / MiniMax Code / Z code / 任何 agent 工具)

git clone <本仓库地址>
cd recruiting-copilot
sh skills/recruit-init/scripts/install-dependencies.sh

用你的 AI 工具打开这个目录,说:「帮我初始化招聘工作区」。 AI 会检查依赖、在你指定的位置建好工作区、注册各工具认得的项目级 skill, 然后逐个岗位跟你梳理招聘要求。

补充:用 ~/.agents/skills 约定的工具,也可以 npx skills add Viy1204/recruiting-copilot 把这套 skill 装成全局。不装也没关系——工作区里已经带了一份。

之后每天:用 AI 工具打开你自己的工作区目录,说 「处理今天的招聘」。 任何时候不确定该干什么,说一句 「这套工具怎么用」,AI 会按总目录带你走。

方式二:Claude Code 插件(额外获得 slash 命令与自动触发)

claude plugin marketplace add <本仓库地址>
claude plugin install recruiting-copilot

然后:

  • /recruit-init —— 初始化工作区(首次一次)
  • /recruit-grill <岗位> —— 梳理某个岗位的要求
  • /recruit-daily —— 处理今天的招聘(日常也可以直接说「处理今天的招聘」)
  • /recruit-mapping <岗位> —— 深度盘点某岗的市场人才
  • /resume-review —— 评估本地简历,或收取飞书邮箱的猎聘 / BOSS 简历附件后评估
  • /interview-schedule —— 约面试:日历 + 视频会议 + 拉面试官,档案台账同步
  • /ask-viy —— 不知道该用哪个?问它

方式三:DeepSeek Harness 插件(任意工作区都能用这套招聘 skill)

DeepSeek Harnessdsh)用户, 在任意目录执行:

dsh plugin --profile web add git+https://github.com/Viy1204/recruiting-copilot.git

web 是 Web 界面 profile;headless 等其他 profile 同理,把 web 换成名字即可。)

安装后重启 DSH 会话,本仓库 skills/ 下的 7 个 skill 就会出现在任意工作区的 skill 目录里(不必把仓库克隆成工作区): ask-viyrecruit-initrecruit-grillrecruit-dailyresume-reviewinterview-schedulemarket-talent-mapping

附带功能——Web UI 右侧「招聘浏览器」面板:DSH Web 界面右侧是一只能直接上手操作的浏览器, 鼠标、滚轮、键盘、中文输入法、粘贴全都直通。BOSS 和猎聘都是可用的源,面板顶部一键切换; 浏览器没起时在面板里点一下就能拉起——用的是两个 CLI 各自的 user-data-dir 和固定调试端口, 登录态通用,之后跑 boss / liepin 命令会直连同一只,不会另开一只。

两个源的默认模式不同:BOSS 有头(真窗口,抢一次键盘焦点),猎聘无头。 不要为了不被打扰把 BOSS 改成无头——无头的 HeadlessChrome UA 已实测招来 web 端登录限制, 见开头的安全须知。面板的价值在于不用切窗口就能看到页面:它默认开着「贴合」,把页面视口固定成 按源写死的尺寸(BOSS 958×1149、猎聘 1440×1149),所以面板里的文字是原生大小, 而不是整页缩小后的糊图。

RECRUIT_BROWSER_HIDDEN统一覆盖开关(本插件 / boss-cli / liepin-cli 三方共读): 不设时两边各用自己的默认,显式设了才拉平两家——所以 =true 会把 BOSS 一起拖进无头,别这么用。 端口上已经有实例在跑时改这个变量不生效(那只会被直接复用),得先 boss shutdown / liepin quit 关掉它。

面板接管需要 @viyzhu/boss-cli-fork ≥ 0.7.0、@viyzhu/liepin-cli ≥ 0.2.0:更早的版本要么用随机调试端口, 要么命令跑完就关浏览器,面板连不上。装旧版时面板的空态文案会直接告诉你是版本问题。

更新 / 卸载:

dsh plugin --profile web update recruiting-copilot   # 拉到最新提交
dsh plugin --profile web remove recruiting-copilot   # 卸载

原理与本地验证见 dsh/README.md:仓库根 package.json 声明 dsh.bundle,装好后作为 profile 的 patch 层,启用宿主 skill-filesystem 并把本仓库 skills/ 注册为全局自定义 skill 根;同一个包还带 host 插件(CDP 抓帧) 与客户端模块(右侧面板)。

工作区长什么样

初始化后你会得到一个自足的招聘工作区(换任何 AI 工具打开都能接着干活):

你的工作区/
├── CONTEXT.md            ← 唯一事实源:初筛硬规则、在招岗位与优先级、术语表、决策记录
├── AGENTS.md             ← 告诉 AI 工具在这里怎么干活(路由 + 红线)
├── skills/               ← 工作流文档的唯一内容源(随工作区走)
├── .agents/skills/       ← Codex / Agent Skills 项目级自动发现入口
├── .claude/skills/       ← Claude Code 项目级自动发现入口
├── .qoder/skills/        ← Qoder 项目级自动发现入口
├── 01-jd/                ← 对外 JD + _internal/ 对内寻源笔记(不外发)
├── 02-sourcing/          ← dedup-ledger.csv 候选人台账(唯一事实源)+ shortlist
├── 03-interview/         ← 面试档案(一人一文件)
├── 04-offer/  05-onboarding/
├── _shared/templates/    ← 新岗位/新面试的模板
└── runtime/
    ├── reports/          ← 本地日报与 review 汇总
    └── resumes/          ← 邮件简历附件 + 导入去重索引

三个隐藏目录里只放指向 skills/ 的链接,不会复制出三套内容。其他工具即使没有自己的 skill 注册目录,也能从根目录 AGENTS.md 路由到同一套流程。ZCode 可以直接读 AGENTS.md; 想让技能出现在 ZCode 面板里,可在 Settings → Skills 中从 Codex 或 Claude Code 来源导入到当前 Project。

设计原则(为什么长这样)

  • 本地文件是唯一事实源:台账、JD、面试档案都是你目录里的纯文本。AI 换了、工具换了,数据都还在。
  • 标准与执行分离:筛选标准全在 CONTEXT.md(你的),工作流文档不写死任何数字(通用的)——改标准只改一处。
  • 对内对外分离:寻源策略、排除信号、薪资带宽放 _internal/ 不外发;对外 JD 干净到可以直接发布。
  • 不可逆动作必经确认:AI 可以帮你筛一千份简历,但拒绝一个人、联系一个人,默认由你拍板。
  • 邮箱只是输入渠道:只读收取,不标已读、不移动 / 删除、不回复 / 转发;风险邮件和不可信附件不自动下载。

想了解这些取舍背后的原因,读 设计思路与理念

绝活日资料包

绝活日分享资料包

DSH Plugins 是独立的 DeepSeek Harness 插件市场,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。