BOSS 直聘招聘助手 V1
通用工作流
岗位判断(入口分流)
- 执行过的岗位(MEMORY.md 有画像):跳过 JD 读取,直接进入筛选触达
- 未执行过的岗位(无画像):先读 JD → 提取要求 → 用户确认 → 入画像 → 再筛选
单岗位流程
- 导航推荐牛人页 → 切岗位 filter
- 逐卡读取候选人详情,按画像打分
- 满足画像 ≥60-70% 或满足全部必须项 → 直接触达,不等待批量确认
- 边筛边触达(页面刷新后候选人会变化,延迟触达可能导致流失)
- 当前页面匹配人选不足时:触达完现有 → 刷新/滚动扩大范围 → 继续筛选
- 每触达一个即验证 → 汇报
筛选标准
- 绝对标准:基于 JD + 画像的固定衡量,非当前页内相对排名
- 非前 X 名逻辑:不因当前页候选质量差而降级选取
- 不足则扩:当前页合格者少 → 触达完毕后刷新扩池继续寻访
- 达成即停:触达目标人数后停止该岗位
多岗位流程
- 依次完成:岗位A 筛完即触达 → 岗位B 筛完即触达 → ...
- 不可:全部扫描完毕再统一触达(推荐页刷新会丢候选人)
- 切换岗位时检查上一岗位回复状态
技术路径
页面导航
- 优先从聊天页(
/web/chat/index)通过左侧菜单点击「推荐牛人」进入 - 备用:直接导航推荐页 iframe URL
- 切岗位:点击左侧岗位 filter 的
.job-item,确认 URL 含正确jobid
候选人数据提取
document.querySelectorAll(".candidate-card-wrap")
// 提取姓名/年龄/经验/薪资/学历/优势描述/期望城市
打招呼(触达)
- 使用 web-access 的
clickAt方法触发 - 点击后按钮文案不会变化(始终显示「打招呼」),不以按钮状态判断成功
- 禁止使用 Vue 方法(
greeingHandleV2等)替代
验证触达结果
- 回到聊天页(
/web/chat/index) - 确认候选人旁出现
[送达]或[已读]标签即成功 - 推荐页按钮文案不会变化,不作为判断依据
检查候选人回复
- 回聊天页扫
.geek-item列表 - 对比上轮状态找变更(送达→已读→回复→附件简历请求)
触达规则
| 规则 | 详情 | |------|------| | 触达阈值 | 满足画像 ≥60-70% 或满足全部必须项 → 直接触达,无需批量确认 | | 触达上限 | 不设固定人数上限,符合条件即触达;当前页不足则扩池继续找 | | 筛选基准 | 基于 JD+画像的绝对标准,非当前页内相对排名 | | 间隔 | 每位候选人 clickAt 之间 ≥3s(防封),批量验证统一跳页 | | 读卡频率 | 每次 2-3s,避免高频 | | 权益 | VIP 200次/日,非权益耗尽排查其他原因 | | 简历请求 | 不自动处理(同意/拒绝),汇报后等用户操作 | | 阶段切换 | 切换岗位前检查已沟通者回复,有回复索要简历 | | 去重规则 | 14天内查看过简历不触达;30天内与同事交换过简历不触达 | | 复遇规则 | 之前通过未触达者再遇直触,不计名额 | | 已有沟通者 | 聊天列表已有沟通记录(含简历PDF)者不触达 |
批处理脚本模式
长时间操作(sleep + curl)使用 exec 工具 background 模式,通过 process 轮询结果。
JD 分析 → 筛选标准范式
硬性: 学历最低线 + 经验年限 + 行业关键词(区分硬件/软件)
高优: 客户资源 + 核心能力匹配 + 学历加分
加分: 年龄偏好 + 厂商/运营商背景 + 区域覆盖
排除: 期望城市不符 / 岗位方向偏离 / 纯硬件无软件 / 简历已查看/已交换
汇报模板
每轮触达后
附完整汇总表:岗位+目标+结果+状态
定时汇报
- 15 分钟间隔(cron
everyMs: 900000) - 按岗位分组:已回复/简历已收/待收/无回复
- 新增变化高亮
- 完成后询问是否继续
注意事项
- BOSS 推荐页每次刷新随机候选池,目标候选不在当前页需多次刷新
- 用户手动操作聊天时 Agent 不干预
- 触达失败须排查根因而非直接判定权益耗尽
CDP Proxy 故障自修
连接 Chrome 失败时按顺序排查:
DevToolsActivePort文件可能存过期端口 → 检查/更新为当前实际端口- 重新运行
check-deps.mjs启动 proxy - Chrome 新版本 WS URL 需含 browser UUID → 确认 proxy 版本兼容
- 兜底方案:Python websocket-client 直连 CDP(绕过 proxy)
Scan to join WeChat group