DSH 招聘 bundle:7 个 skill 串起岗位梳理、Boss+猎聘双通道寻源打招呼、简历评估与约面试,Web 右侧内置可远程操作招聘站的浏览器面板。
$ dsh plugin --profile web add github:Viy1204/recruiting-copilotRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
这是给 HR / 猎头用的 AI 招聘副驾:把岗位梳理、Boss直聘+猎聘双通道每日寻源初筛打招呼、简历评估、约面试、候选人台账与日报串成一套 AI 工作流,并在 DSH Web 界面右侧内置一只可以直接上手操作的招聘浏览器面板。
fetch / WebSocket / child_process(lib/index.js:29-32);宿主 @deepseek-ai/dsh-skill-filesystem 与 dsh-host-webserver;外部 CLI boss-cli(Viy1204 fork)dsh/cordis.patch.yml 启用宿主 skill-filesystem 行并把 skills/ 注册为全局自定义 skill 根),也是 cordis 插件 + 客户端模块对(lib/index.js 挂载 /plugins/recruiting-view/* 路由,client.js 注册进 shell.overlay 插槽)lib/index.js(host 插件,导出 apply(ctx, rawConfig))/ client.js(浏览器端面板)/ dsh/cordis.patch.yml(profile patch 层)每天要处理大量 Boss / 猎聘沟通与候选人建档的 HR 或猎头,希望 AI 帮忙按既定标准搜索、初筛、生成打招呼话术并同步台账,同时在 DSH 界面里直接看到招聘站画面而无需切换窗口。也可用于一次性深度摸底某岗的市场人才结构,或在飞书邮箱里批量评估刚收到的简历。
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 未声明 | 依赖宿主 dsh-skill-filesystem 与 dsh-host-webserver;web profile 才会出现右侧浏览器面板,headless 等无 webServer 的 profile 只注册 skill |
| Node.js | >=22 | package.json 的 engines.node;安装脚本最低要求 >=20,但 lib/index.js 使用了 Node 22+ 的内置 fetch/WebSocket |
| Chrome / Edge | 本机已装 | 用于面板驱动真实浏览器;找不到时可用 CHROME_PATH 或 PUPPETEER_EXECUTABLE_PATH 指定 |
| boss-cli (fork) | >=0.7.0 | 由 skills/recruit-init/scripts/install-dependencies.sh 自动装 git+https://github.com/Viy1204/boss-cli.git#main,旧版用随机端口面板连不上 |
| liepin-cli | >=0.2.0 | 同样由安装脚本装 @viyzhu/liepin-cli,旧版随机端口时面板空态会明确提示 |
| lark-cli | 可选 | 不装则日报输出本地 Markdown、约面试给手动建会清单、简历需本地提供;寻源与本地简历评估不受影响 |
| 平台 | 跨平台 | macOS / Windows / Linux;启动参数从 process.platform 判断,三平台都覆盖 |
dsh plugin --profile web add github:Viy1204/recruiting-copilot
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
sources | 数组 | 招聘浏览器面板要镜像哪些源(boss / liepin),每条配 name / port / match / homeUrl / userDataDir / defaultHidden;patch 里只写差异,其余从内置默认补 | [boss:53470, liepin:53471] |
frameIntervalMs / watchdogIntervalMs | 数字 | 帧间隔(毫秒),过小增加带宽、过大增加延迟;受 200~30000 范围钳制 | 700 |
jpegQuality | 数字 | MJPEG 推帧的 JPEG 质量,受 10~100 范围钳制 | 80 |
maxFrameWidth | 数字 | 单帧最大宽度,受 320~4096 范围钳制 | 1800 |
RECRUIT_BROWSER_HIDDEN 环境变量 | 字符串 | 三方共读的统一覆盖开关:设 true 强制无头、false 强制有头,不设时按各源自己的 defaultHidden(BOSS 有头、猎聘无头) | 未设置 |
BOSS_BROWSER_REMOTE_DEBUGGING_PORT / LIEPIN_BROWSER_REMOTE_DEBUGGING_PORT 环境变量 | 数字 | 覆盖 boss-cli / liepin-cli 的固定 CDP 调试端口;改了环境变量,patch 里 sources[].port 也要跟着改 | 53470 / 53471 |
CHROME_PATH / PUPPETEER_EXECUTABLE_PATH 环境变量 | 路径 | 找不到本机 Chrome/Edge 时,手动指定可执行文件路径 | 自动探测 |
BOSS_CLI_SOURCE / LIEPIN_CLI_SOURCE 环境变量 | URL/包名 | 安装 boss-cli / liepin-cli 的来源(脚本读取) | git+https://github.com/Viy1204/boss-cli.git#main / @viyzhu/liepin-cli |
Q: 安装后还需要做什么?
A: 需要本机装 Node ≥20、Chrome/Edge,并跑一次 skills/recruit-init/scripts/install-dependencies.sh 来装 boss-cli(Viy1204 fork)和 liepin-cli,再各扫码登录一次保存登录态。可选装 lark-cli 让日报出飞书云文档、约面试自动建日历。
Q: 招聘浏览器面板里 BOSS 提示「账号受限」怎么办?
A: 通常是触发了 BOSS 的风控——页面文案会写「检测到您的账号存在使用第三方招聘管理系统、插件、外挂、软件等辅助工具」。插件已经按源区分默认(BOSS 有头、猎聘无头),不要把 RECRUIT_BROWSER_HIDDEN 设成 true,那会把 BOSS 也拖进无头。被限期间只有 web 端受限,BOSS直聘 APP 和 PC 客户端照常可用。
Q: 不装 lark-cli 会不会影响核心功能?
A: 不会。lark-cli 只影响日报出飞书云文档、约面试建日历、从飞书邮箱收简历这三个可选场景;寻源、本地简历评估、台账、面板都不受影响,会以本地 Markdown 输出或手动操作清单替代。
Q: 怎么卸载或回滚?
A: 用 dsh plugin --profile web remove recruiting-copilot 卸载,用 update 子命令拉最新提交。如果之前在面板里手动操作过旧版本,重启 DSH 会话即可让新版加固生效——面板默认折叠、默认只读,有头/无头切换按钮已摘掉。
Q: 面板空态提示「请更新 liepin-cli」是什么意思?
A: 旧版 liepin-cli 用 puppeteer.launch() 分配随机 CDP 端口,面板按固定端口 53471 探测不到。需升级到 @viyzhu/liepin-cli ≥0.2.0,boss-cli 也要求 fork 版 ≥0.7.0,否则面板连不上那只浏览器。
Q: 自动操作会不会被招聘平台风控?
A: 打招呼、点「不合适」、通知候选人这类对外不可逆动作默认先经用户确认,AI 不自动拒人。插件内置风控熔断:页面落到 403/verify/security-check 时停掉所有自动动作并在面板顶部出红色提示,需人工确认后才能解除。
进阶 — 需要先理解 DSH profile bundle 的双层身份(patch 启用 skill + host 插件接管浏览器),并且要在工作区里跑一次初始化流程;面板模式相关的环境变量(RECRUIT_BROWSER_HIDDEN / 端口覆盖)有平台经验门槛,但日常使用只需说一句「处理今天的招聘」。
RECRUIT_BROWSER_HIDDEN=true:会把 BOSS 也拖进无头,是已观测到的事故路径(README.md:22-23)HeadlessChrome 与 Chrome 之间突变 = 24h 封号;host 的 setMode 实现保留但无 UI 入口(dsh/README.md:140-142)@viyzhu/liepin-cli ≥0.2.0、@viyzhu/boss-cli-fork ≥0.7.0(README.md:144-146)RECRUIT_BROWSER_HIDDEN 不生效:要重启得先 boss shutdown / liepin quit 关掉那只(README.md:142-143)localStorage 持久化(dsh/README.md:144-146)state.error(lib/index.js:185-191)RISK_URL_RE(403 / verify / security-check 形态)后停掉自愈重启、贴合重发与一切控制动作(除 watch / clear-risk / set-target),需人点提示条解除(lib/index.js:165-174)about:blank:那是新标签初始态,纳入会把面板自己锁死(lib/index.js:159-163)