@reconcrap/boss-recommend-mcp 2.0.47 → 2.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/boss-recommend-mcp.js +4 -4
- package/config/screening-config.example.json +27 -27
- package/package.json +1 -1
- package/scripts/postinstall.cjs +44 -44
- package/skills/boss-chat/README.md +39 -39
- package/skills/boss-chat/SKILL.md +93 -93
- package/skills/boss-recommend-pipeline/README.md +12 -12
- package/skills/boss-recommend-pipeline/SKILL.md +180 -180
- package/skills/boss-recruit-pipeline/README.md +17 -17
- package/skills/boss-recruit-pipeline/SKILL.md +58 -58
- package/src/chat-mcp.js +1780 -1780
- package/src/chat-runtime-config.js +749 -749
- package/src/cli.js +3054 -3054
- package/src/core/boss-cards/index.js +199 -199
- package/src/core/browser/index.js +1586 -1453
- package/src/core/capture/index.js +1201 -1201
- package/src/core/cv-acquisition/index.js +238 -238
- package/src/core/cv-capture-target/index.js +299 -299
- package/src/core/greet-quota/index.js +54 -54
- package/src/core/infinite-list/index.js +1326 -1326
- package/src/core/reporting/legacy-csv.js +341 -341
- package/src/core/run/timing.js +33 -33
- package/src/core/self-heal/index.js +973 -973
- package/src/core/self-heal/viewport.js +564 -564
- package/src/domains/chat/cards.js +137 -137
- package/src/domains/chat/constants.js +221 -221
- package/src/domains/chat/detail.js +1668 -1668
- package/src/domains/chat/index.js +7 -7
- package/src/domains/chat/jobs.js +592 -592
- package/src/domains/chat/page-guard.js +98 -98
- package/src/domains/chat/roots.js +56 -56
- package/src/domains/chat/run-service.js +1977 -1977
- package/src/domains/recommend/actions.js +457 -457
- package/src/domains/recommend/cards.js +243 -243
- package/src/domains/recommend/constants.js +165 -165
- package/src/domains/recommend/filters.js +610 -610
- package/src/domains/recommend/index.js +10 -10
- package/src/domains/recommend/jobs.js +316 -316
- package/src/domains/recommend/refresh.js +472 -472
- package/src/domains/recommend/roots.js +80 -80
- package/src/domains/recommend/scopes.js +246 -246
- package/src/domains/recruit/actions.js +277 -277
- package/src/domains/recruit/cards.js +74 -74
- package/src/domains/recruit/constants.js +167 -167
- package/src/domains/recruit/detail.js +461 -461
- package/src/domains/recruit/index.js +9 -9
- package/src/domains/recruit/instruction-parser.js +451 -451
- package/src/domains/recruit/refresh.js +44 -44
- package/src/domains/recruit/roots.js +68 -68
- package/src/domains/recruit/run-service.js +1207 -1207
- package/src/domains/recruit/search.js +1202 -1202
- package/src/recommend-mcp.js +22 -22
- package/src/recruit-mcp.js +1338 -1338
|
@@ -1,180 +1,180 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "boss-recommend-pipeline"
|
|
3
|
-
description: "Use when users want Boss recommend-page filtering/screening via boss-recommend-mcp. Confirm required params first, then run in two-stage confirmation with strict recommend routing."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Boss Recommend Pipeline Skill
|
|
7
|
-
|
|
8
|
-
## Goal
|
|
9
|
-
|
|
10
|
-
当用户要在 Boss 推荐页筛人时,必须走 `start_recommend_pipeline_run`,并按“两阶段确认 -> 页面就绪 -> 岗位确认 -> 最终确认 -> 执行”的顺序完成。2.0 CDP-only 路径不再支持 legacy recommend -> chat 自动衔接;若用户要聊天页筛选或求简历,必须在推荐页任务完成后显式改用 `boss-chat` 工具。
|
|
11
|
-
|
|
12
|
-
## Hard Rules (Must Follow)
|
|
13
|
-
|
|
14
|
-
- **路由**
|
|
15
|
-
- 语义是推荐页(`recommend/推荐页/recommend page//web/chat/recommend`)时,只能走本 skill。
|
|
16
|
-
- 语义是“推荐页找人 + 结束后沟通/聊天”时,先完成 recommend run;不得配置 `follow_up.chat`,后续聊天任务必须显式交给 `boss-chat`。
|
|
17
|
-
- 只有用户**明确**说搜索页(`search/搜索页//web/chat/search`)时,才可转 `boss-recruit-pipeline`。
|
|
18
|
-
- recommend 失败时(如 `JOB_TRIGGER_NOT_FOUND/NO_RECOMMEND_IFRAME/BOSS_LOGIN_REQUIRED`)禁止降级到 recruit;先修 recommend 页面就绪/登录态。
|
|
19
|
-
|
|
20
|
-
- **确认不可代填(强制)**
|
|
21
|
-
- 禁止 agent 自行“设置合理参数”并代替用户确认。
|
|
22
|
-
- 禁止在用户未明确回复前,把任意 `*_confirmed` 字段设为 `true`。
|
|
23
|
-
- 禁止在用户未明确回复前,自行填充 `page_scope/school_tag/degree/gender/recent_not_view/criteria/target_count/post_action/max_greet_count/job`。
|
|
24
|
-
- 若工具返回 `pending_questions`,必须逐项向用户提问并等待用户回复;不得跳过提问直接执行。
|
|
25
|
-
|
|
26
|
-
- **岗位确认时机**
|
|
27
|
-
- 页面未就绪前,禁止询问 `job`。
|
|
28
|
-
- 仅当工具返回 `job_options` 后,才允许问 `job`,且必须展示全部选项。
|
|
29
|
-
|
|
30
|
-
- **参数确认**
|
|
31
|
-
- `criteria` 必须是用户开放式自然语言;禁止“严格/宽松执行”等预设替代。
|
|
32
|
-
- `post_action=greet` 时,必须确认 `max_greet_count`;禁止自动默认为 `target_count`。
|
|
33
|
-
- 正式执行前必须 `final_confirmed=true`。
|
|
34
|
-
- 真实筛选禁止传 `detail_limit: 0`;recommend 默认必须打开候选人详情/CV。只有用户明确要求“卡片-only 调试”时,才允许同时传 `detail_limit: 0` 和 `allow_card_only_screening: true`。
|
|
35
|
-
|
|
36
|
-
- **Instruction 原文锁定**
|
|
37
|
-
- 首次用户需求原文锁定为 `locked_instruction_raw`。
|
|
38
|
-
- 后续所有调用复用原文,禁止改写/翻译/摘要。
|
|
39
|
-
- 最终执行前逐字回显将提交的 `instruction`;若与锁定值不一致,先修正再执行。
|
|
40
|
-
- 禁止在中途把用户意图拆成“recommend 已默认确认 + chat 单独执行”两条链路。
|
|
41
|
-
|
|
42
|
-
## Two-Stage Confirmation
|
|
43
|
-
|
|
44
|
-
### Stage A (页面就绪前,禁止问岗位)
|
|
45
|
-
|
|
46
|
-
必须确认:
|
|
47
|
-
|
|
48
|
-
- `page_scope`:`recommend|latest|featured`
|
|
49
|
-
- `school_tag`(多选)
|
|
50
|
-
- `degree`(多选)
|
|
51
|
-
- `gender`
|
|
52
|
-
- `recent_not_view`
|
|
53
|
-
- `criteria`(开放文本)
|
|
54
|
-
- `target_count`(可空)
|
|
55
|
-
- `post_action`:`favorite|greet|none`
|
|
56
|
-
- `max_greet_count`(仅当 `post_action=greet`)
|
|
57
|
-
|
|
58
|
-
### Stage B (页面就绪后)
|
|
59
|
-
|
|
60
|
-
必须确认:
|
|
61
|
-
|
|
62
|
-
- `job`(来自 `job_options`,必须全量展示)
|
|
63
|
-
- `final_review`(岗位 + 全参数总确认)
|
|
64
|
-
|
|
65
|
-
## Chat Handoff
|
|
66
|
-
|
|
67
|
-
当用户要求“推荐页跑完后继续聊天页任务”时:
|
|
68
|
-
|
|
69
|
-
- 本次 recommend run 只提交 recommend 参数,不要写 `follow_up.chat`。
|
|
70
|
-
- recommend 完成并由用户确认要继续后,切换到 `boss-chat` skill。
|
|
71
|
-
- `boss-chat` 会重新调用 `prepare_boss_chat_run` 获取聊天页岗位列表,并显式确认 `job/start_from/target_count/criteria`。
|
|
72
|
-
- 不得在 recommend run 尚未完成时并行启动 `start_boss_chat_run`。
|
|
73
|
-
|
|
74
|
-
## Closed vs Open Questions
|
|
75
|
-
|
|
76
|
-
- 封闭式字段(除 `criteria/target_count/max_greet_count/job`)必须提供完整可选项,不让用户盲填。
|
|
77
|
-
- 若工具已返回 `pending_questions[].options`,优先原样使用。
|
|
78
|
-
- 若未返回,则按下列枚举展示:
|
|
79
|
-
- `page_scope`: `recommend/latest/featured`
|
|
80
|
-
- `school_tag`: `不限/985/211/双一流院校/留学/国内外名校/公办本科`
|
|
81
|
-
- `degree`: `不限/初中及以下/中专/中技/高中/大专/本科/硕士/博士`
|
|
82
|
-
- `gender`: `不限/男/女`
|
|
83
|
-
- `recent_not_view`: `不限/近14天没有`
|
|
84
|
-
- `post_action`: `favorite/greet/none`
|
|
85
|
-
|
|
86
|
-
## Tool Usage
|
|
87
|
-
|
|
88
|
-
- 岗位发现工具:`list_recommend_jobs`
|
|
89
|
-
- 用途:当用户需要为 cron / 一次性自动任务提前填写完整参数时,先用它读取推荐页岗位下拉框的全部可用岗位名。
|
|
90
|
-
- 输出:优先把 `job_names` 里的值作为后续 `overrides.job` / `confirmation.job_value`。
|
|
91
|
-
- 限制:只读岗位列表,不启动筛选任务;仍然必须在正式 `start_recommend_pipeline_run` 前完成岗位与最终确认。
|
|
92
|
-
- 主工具:`start_recommend_pipeline_run`
|
|
93
|
-
- 必填:`instruction`
|
|
94
|
-
- 关键输入:
|
|
95
|
-
- `confirmation`:`page_confirmed/page_value/filters_confirmed/school_tag_confirmed.../job_confirmed/job_value/final_confirmed`
|
|
96
|
-
- `overrides`:`page_scope/school_tag/degree/gender/recent_not_view/criteria/job/target_count/post_action/max_greet_count`
|
|
97
|
-
- 不要传 `follow_up.chat`;该路径属于 legacy-only 行为
|
|
98
|
-
|
|
99
|
-
最小策略:
|
|
100
|
-
|
|
101
|
-
- 若返回 `NEED_INPUT` 或 `NEED_CONFIRMATION`:只追问 `pending_questions`。
|
|
102
|
-
- 已确认值不重复问;仅补缺口。
|
|
103
|
-
- 拿到 `ACCEPTED + run_id` 后默认停止本轮,不自动轮询。
|
|
104
|
-
- 在拿到 `ACCEPTED + run_id` 之前,禁止以“我已帮你确认参数”为由越过必填确认阶段。
|
|
105
|
-
|
|
106
|
-
## Async Run Policy
|
|
107
|
-
|
|
108
|
-
- 用户未明确要求“持续跟进”时,不自动 `sleep + get_recommend_pipeline_run`。
|
|
109
|
-
- 用户要求查进度时,再用 `get_recommend_pipeline_run`。
|
|
110
|
-
- **长任务轮询节奏(强制)**:
|
|
111
|
-
- 推荐任务可能运行数小时,禁止高频轮询。
|
|
112
|
-
- 默认最小轮询间隔为 **30 分钟**(除非用户明确要求更频繁)。
|
|
113
|
-
- 若刚启动 run(拿到 `ACCEPTED + run_id`),不得立即进入连续轮询。
|
|
114
|
-
- `pause/resume/cancel` 必须复用同一 `run_id`,不要重复 `start`。
|
|
115
|
-
- **完成后衔接(强制)**:若用户手动触发 `get_recommend_pipeline_run` 且发现 recommend 已完成、而当前会话目标是“继续聊天沟通”且尚未启动 chat:切换到 `boss-chat` 并重新走 chat-only 参数确认。
|
|
116
|
-
|
|
117
|
-
## Preflight and Recovery
|
|
118
|
-
|
|
119
|
-
- 执行前必须通过:
|
|
120
|
-
- `screening-config.json` 可用且非占位值(`baseUrl/apiKey/model`)
|
|
121
|
-
- 工具可连接或自动启动本机 Chrome DevTools 端口(默认 `127.0.0.1:9222`)
|
|
122
|
-
- Boss 已登录;若当前没有 9222 Chrome,工具会自动打开 Chrome 并导航到 `https://www.zhipin.com/web/chat/recommend`
|
|
123
|
-
- 只有工具返回 `BOSS_LOGIN_REQUIRED` / `requires_login=true` 时,才要求用户人工登录 Boss 后重试
|
|
124
|
-
|
|
125
|
-
- 不要在运行前要求用户手动打开 9222 Chrome。只有这些情况需要人工介入:
|
|
126
|
-
- 工具明确报告 `BOSS_LOGIN_REQUIRED`
|
|
127
|
-
- 本机找不到 Chrome 可执行文件,并提示设置 `BOSS_MCP_CHROME_PATH` 或 `BOSS_RECOMMEND_CHROME_PATH`
|
|
128
|
-
- 用户配置的是非本机 debug host,工具无法安全自动启动
|
|
129
|
-
|
|
130
|
-
- `PIPELINE_PREFLIGHT_FAILED` 处理顺序:
|
|
131
|
-
1. 若 `screen_config` 失败:让用户提供真实 `baseUrl/apiKey/model`,并在 `guidance.config_path` 修改后明确回复“已修改完成”。
|
|
132
|
-
2. 若有 `diagnostics.auto_repair`:优先按其结果继续。
|
|
133
|
-
3. 否则使用 `diagnostics.recovery.agent_prompt`。
|
|
134
|
-
4. 若无 `agent_prompt`:按顺序修复 `node_cli -> npm_dep_*`,每步后重跑 doctor。
|
|
135
|
-
|
|
136
|
-
## Featured / Latest Notes
|
|
137
|
-
|
|
138
|
-
- `featured`:必须 `search -> 切换精选 tab(data-status=3) -> screen`。
|
|
139
|
-
- `featured` 且缺少校准文件:先 `boss-recommend-mcp calibrate`。
|
|
140
|
-
- `latest`:流程同 `recommend`,但使用最新 tab 结构(`data-status=1`)。
|
|
141
|
-
|
|
142
|
-
## QClaw / Shell-Only Fallback
|
|
143
|
-
|
|
144
|
-
当 QClaw/OpenClaw 变体只暴露 shell、没有原生 MCP tool list 时,禁止停在“请使用 `start_recommend_pipeline_run` 工具”。必须用 shell 继续启动。
|
|
145
|
-
|
|
146
|
-
推荐做法:
|
|
147
|
-
|
|
148
|
-
1. 将锁定的用户原文写入 instruction 文件,将已确认参数写入 `overrides` 与 `confirmation` JSON 文件。
|
|
149
|
-
2. 用 detached CLI 启动,让父命令返回启动证据,子进程继续持有 CDP 会话:
|
|
150
|
-
|
|
151
|
-
```powershell
|
|
152
|
-
npx -y @reconcrap/boss-recommend-mcp@latest run --detached --instruction-file .\boss-recommend-instruction.txt --overrides-file .\boss-recommend-overrides.json --confirmation-file .\boss-recommend-confirmation.json --slow-live --port 9222
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
3. 若返回 `ACCEPTED + run_id`,即任务已启动;记录 `run_id/stdout_path/stderr_path`。若返回 `NEED_INPUT` 或 `NEED_CONFIRMATION`,只补 `pending_questions`,不要重写已锁定的用户原文。
|
|
156
|
-
|
|
157
|
-
兼容路径:
|
|
158
|
-
|
|
159
|
-
- 若 `--detached` 不可用,或返回 `RECOMMEND_CLI_RUN_UNSUPPORTED_CDP_ONLY`,说明 npm/QClaw 仍在使用旧包;先运行 `npx -y @reconcrap/boss-recommend-mcp@latest install --agent qclaw` 并重启 QClaw。
|
|
160
|
-
- 在包更新未生效时,可以使用已验证过的直接 MCP stdio JSON-RPC 方式调用 `start_recommend_pipeline_run`;该方式等价于原生 MCP tool 调用,不能改用 recruit/search 路径。
|
|
161
|
-
|
|
162
|
-
普通 MCP 可用时:
|
|
163
|
-
|
|
164
|
-
`start_recommend_pipeline_run` 仍是首选。
|
|
165
|
-
|
|
166
|
-
禁止错误回退:
|
|
167
|
-
|
|
168
|
-
- 不得切到 `boss-recruit-mcp` 或 `run_recruit_pipeline`。
|
|
169
|
-
- 不得用 `boss-recruit-mcp doctor` 检查 recommend 流程。
|
|
170
|
-
|
|
171
|
-
## Response Style
|
|
172
|
-
|
|
173
|
-
- 用结构化中文。
|
|
174
|
-
- 第一轮确认卡片不出现 `job`。
|
|
175
|
-
- 仅在 `job_options` 出现后给岗位确认卡片,且岗位选项必须全量。
|
|
176
|
-
- 封闭式问题必须带完整标签选项;开放式问题(如 `criteria`)保持自由输入。
|
|
177
|
-
- 页面就绪失败提示必须包含 `debug_port`、recommend URL、以及登录 URL(若未登录):
|
|
178
|
-
- `https://www.zhipin.com/web/chat/recommend`
|
|
179
|
-
- `https://www.zhipin.com/web/user/?ka=bticket`
|
|
180
|
-
- 若错误是 `BOSS_LOGIN_REQUIRED`,提示用户在自动打开的 Chrome 窗口完成登录,然后原参数重试;不要改用 search/recruit 路径。
|
|
1
|
+
---
|
|
2
|
+
name: "boss-recommend-pipeline"
|
|
3
|
+
description: "Use when users want Boss recommend-page filtering/screening via boss-recommend-mcp. Confirm required params first, then run in two-stage confirmation with strict recommend routing."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Boss Recommend Pipeline Skill
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
当用户要在 Boss 推荐页筛人时,必须走 `start_recommend_pipeline_run`,并按“两阶段确认 -> 页面就绪 -> 岗位确认 -> 最终确认 -> 执行”的顺序完成。2.0 CDP-only 路径不再支持 legacy recommend -> chat 自动衔接;若用户要聊天页筛选或求简历,必须在推荐页任务完成后显式改用 `boss-chat` 工具。
|
|
11
|
+
|
|
12
|
+
## Hard Rules (Must Follow)
|
|
13
|
+
|
|
14
|
+
- **路由**
|
|
15
|
+
- 语义是推荐页(`recommend/推荐页/recommend page//web/chat/recommend`)时,只能走本 skill。
|
|
16
|
+
- 语义是“推荐页找人 + 结束后沟通/聊天”时,先完成 recommend run;不得配置 `follow_up.chat`,后续聊天任务必须显式交给 `boss-chat`。
|
|
17
|
+
- 只有用户**明确**说搜索页(`search/搜索页//web/chat/search`)时,才可转 `boss-recruit-pipeline`。
|
|
18
|
+
- recommend 失败时(如 `JOB_TRIGGER_NOT_FOUND/NO_RECOMMEND_IFRAME/BOSS_LOGIN_REQUIRED`)禁止降级到 recruit;先修 recommend 页面就绪/登录态。
|
|
19
|
+
|
|
20
|
+
- **确认不可代填(强制)**
|
|
21
|
+
- 禁止 agent 自行“设置合理参数”并代替用户确认。
|
|
22
|
+
- 禁止在用户未明确回复前,把任意 `*_confirmed` 字段设为 `true`。
|
|
23
|
+
- 禁止在用户未明确回复前,自行填充 `page_scope/school_tag/degree/gender/recent_not_view/criteria/target_count/post_action/max_greet_count/job`。
|
|
24
|
+
- 若工具返回 `pending_questions`,必须逐项向用户提问并等待用户回复;不得跳过提问直接执行。
|
|
25
|
+
|
|
26
|
+
- **岗位确认时机**
|
|
27
|
+
- 页面未就绪前,禁止询问 `job`。
|
|
28
|
+
- 仅当工具返回 `job_options` 后,才允许问 `job`,且必须展示全部选项。
|
|
29
|
+
|
|
30
|
+
- **参数确认**
|
|
31
|
+
- `criteria` 必须是用户开放式自然语言;禁止“严格/宽松执行”等预设替代。
|
|
32
|
+
- `post_action=greet` 时,必须确认 `max_greet_count`;禁止自动默认为 `target_count`。
|
|
33
|
+
- 正式执行前必须 `final_confirmed=true`。
|
|
34
|
+
- 真实筛选禁止传 `detail_limit: 0`;recommend 默认必须打开候选人详情/CV。只有用户明确要求“卡片-only 调试”时,才允许同时传 `detail_limit: 0` 和 `allow_card_only_screening: true`。
|
|
35
|
+
|
|
36
|
+
- **Instruction 原文锁定**
|
|
37
|
+
- 首次用户需求原文锁定为 `locked_instruction_raw`。
|
|
38
|
+
- 后续所有调用复用原文,禁止改写/翻译/摘要。
|
|
39
|
+
- 最终执行前逐字回显将提交的 `instruction`;若与锁定值不一致,先修正再执行。
|
|
40
|
+
- 禁止在中途把用户意图拆成“recommend 已默认确认 + chat 单独执行”两条链路。
|
|
41
|
+
|
|
42
|
+
## Two-Stage Confirmation
|
|
43
|
+
|
|
44
|
+
### Stage A (页面就绪前,禁止问岗位)
|
|
45
|
+
|
|
46
|
+
必须确认:
|
|
47
|
+
|
|
48
|
+
- `page_scope`:`recommend|latest|featured`
|
|
49
|
+
- `school_tag`(多选)
|
|
50
|
+
- `degree`(多选)
|
|
51
|
+
- `gender`
|
|
52
|
+
- `recent_not_view`
|
|
53
|
+
- `criteria`(开放文本)
|
|
54
|
+
- `target_count`(可空)
|
|
55
|
+
- `post_action`:`favorite|greet|none`
|
|
56
|
+
- `max_greet_count`(仅当 `post_action=greet`)
|
|
57
|
+
|
|
58
|
+
### Stage B (页面就绪后)
|
|
59
|
+
|
|
60
|
+
必须确认:
|
|
61
|
+
|
|
62
|
+
- `job`(来自 `job_options`,必须全量展示)
|
|
63
|
+
- `final_review`(岗位 + 全参数总确认)
|
|
64
|
+
|
|
65
|
+
## Chat Handoff
|
|
66
|
+
|
|
67
|
+
当用户要求“推荐页跑完后继续聊天页任务”时:
|
|
68
|
+
|
|
69
|
+
- 本次 recommend run 只提交 recommend 参数,不要写 `follow_up.chat`。
|
|
70
|
+
- recommend 完成并由用户确认要继续后,切换到 `boss-chat` skill。
|
|
71
|
+
- `boss-chat` 会重新调用 `prepare_boss_chat_run` 获取聊天页岗位列表,并显式确认 `job/start_from/target_count/criteria`。
|
|
72
|
+
- 不得在 recommend run 尚未完成时并行启动 `start_boss_chat_run`。
|
|
73
|
+
|
|
74
|
+
## Closed vs Open Questions
|
|
75
|
+
|
|
76
|
+
- 封闭式字段(除 `criteria/target_count/max_greet_count/job`)必须提供完整可选项,不让用户盲填。
|
|
77
|
+
- 若工具已返回 `pending_questions[].options`,优先原样使用。
|
|
78
|
+
- 若未返回,则按下列枚举展示:
|
|
79
|
+
- `page_scope`: `recommend/latest/featured`
|
|
80
|
+
- `school_tag`: `不限/985/211/双一流院校/留学/国内外名校/公办本科`
|
|
81
|
+
- `degree`: `不限/初中及以下/中专/中技/高中/大专/本科/硕士/博士`
|
|
82
|
+
- `gender`: `不限/男/女`
|
|
83
|
+
- `recent_not_view`: `不限/近14天没有`
|
|
84
|
+
- `post_action`: `favorite/greet/none`
|
|
85
|
+
|
|
86
|
+
## Tool Usage
|
|
87
|
+
|
|
88
|
+
- 岗位发现工具:`list_recommend_jobs`
|
|
89
|
+
- 用途:当用户需要为 cron / 一次性自动任务提前填写完整参数时,先用它读取推荐页岗位下拉框的全部可用岗位名。
|
|
90
|
+
- 输出:优先把 `job_names` 里的值作为后续 `overrides.job` / `confirmation.job_value`。
|
|
91
|
+
- 限制:只读岗位列表,不启动筛选任务;仍然必须在正式 `start_recommend_pipeline_run` 前完成岗位与最终确认。
|
|
92
|
+
- 主工具:`start_recommend_pipeline_run`
|
|
93
|
+
- 必填:`instruction`
|
|
94
|
+
- 关键输入:
|
|
95
|
+
- `confirmation`:`page_confirmed/page_value/filters_confirmed/school_tag_confirmed.../job_confirmed/job_value/final_confirmed`
|
|
96
|
+
- `overrides`:`page_scope/school_tag/degree/gender/recent_not_view/criteria/job/target_count/post_action/max_greet_count`
|
|
97
|
+
- 不要传 `follow_up.chat`;该路径属于 legacy-only 行为
|
|
98
|
+
|
|
99
|
+
最小策略:
|
|
100
|
+
|
|
101
|
+
- 若返回 `NEED_INPUT` 或 `NEED_CONFIRMATION`:只追问 `pending_questions`。
|
|
102
|
+
- 已确认值不重复问;仅补缺口。
|
|
103
|
+
- 拿到 `ACCEPTED + run_id` 后默认停止本轮,不自动轮询。
|
|
104
|
+
- 在拿到 `ACCEPTED + run_id` 之前,禁止以“我已帮你确认参数”为由越过必填确认阶段。
|
|
105
|
+
|
|
106
|
+
## Async Run Policy
|
|
107
|
+
|
|
108
|
+
- 用户未明确要求“持续跟进”时,不自动 `sleep + get_recommend_pipeline_run`。
|
|
109
|
+
- 用户要求查进度时,再用 `get_recommend_pipeline_run`。
|
|
110
|
+
- **长任务轮询节奏(强制)**:
|
|
111
|
+
- 推荐任务可能运行数小时,禁止高频轮询。
|
|
112
|
+
- 默认最小轮询间隔为 **30 分钟**(除非用户明确要求更频繁)。
|
|
113
|
+
- 若刚启动 run(拿到 `ACCEPTED + run_id`),不得立即进入连续轮询。
|
|
114
|
+
- `pause/resume/cancel` 必须复用同一 `run_id`,不要重复 `start`。
|
|
115
|
+
- **完成后衔接(强制)**:若用户手动触发 `get_recommend_pipeline_run` 且发现 recommend 已完成、而当前会话目标是“继续聊天沟通”且尚未启动 chat:切换到 `boss-chat` 并重新走 chat-only 参数确认。
|
|
116
|
+
|
|
117
|
+
## Preflight and Recovery
|
|
118
|
+
|
|
119
|
+
- 执行前必须通过:
|
|
120
|
+
- `screening-config.json` 可用且非占位值(`baseUrl/apiKey/model`)
|
|
121
|
+
- 工具可连接或自动启动本机 Chrome DevTools 端口(默认 `127.0.0.1:9222`)
|
|
122
|
+
- Boss 已登录;若当前没有 9222 Chrome,工具会自动打开 Chrome 并导航到 `https://www.zhipin.com/web/chat/recommend`
|
|
123
|
+
- 只有工具返回 `BOSS_LOGIN_REQUIRED` / `requires_login=true` 时,才要求用户人工登录 Boss 后重试
|
|
124
|
+
|
|
125
|
+
- 不要在运行前要求用户手动打开 9222 Chrome。只有这些情况需要人工介入:
|
|
126
|
+
- 工具明确报告 `BOSS_LOGIN_REQUIRED`
|
|
127
|
+
- 本机找不到 Chrome 可执行文件,并提示设置 `BOSS_MCP_CHROME_PATH` 或 `BOSS_RECOMMEND_CHROME_PATH`
|
|
128
|
+
- 用户配置的是非本机 debug host,工具无法安全自动启动
|
|
129
|
+
|
|
130
|
+
- `PIPELINE_PREFLIGHT_FAILED` 处理顺序:
|
|
131
|
+
1. 若 `screen_config` 失败:让用户提供真实 `baseUrl/apiKey/model`,并在 `guidance.config_path` 修改后明确回复“已修改完成”。
|
|
132
|
+
2. 若有 `diagnostics.auto_repair`:优先按其结果继续。
|
|
133
|
+
3. 否则使用 `diagnostics.recovery.agent_prompt`。
|
|
134
|
+
4. 若无 `agent_prompt`:按顺序修复 `node_cli -> npm_dep_*`,每步后重跑 doctor。
|
|
135
|
+
|
|
136
|
+
## Featured / Latest Notes
|
|
137
|
+
|
|
138
|
+
- `featured`:必须 `search -> 切换精选 tab(data-status=3) -> screen`。
|
|
139
|
+
- `featured` 且缺少校准文件:先 `boss-recommend-mcp calibrate`。
|
|
140
|
+
- `latest`:流程同 `recommend`,但使用最新 tab 结构(`data-status=1`)。
|
|
141
|
+
|
|
142
|
+
## QClaw / Shell-Only Fallback
|
|
143
|
+
|
|
144
|
+
当 QClaw/OpenClaw 变体只暴露 shell、没有原生 MCP tool list 时,禁止停在“请使用 `start_recommend_pipeline_run` 工具”。必须用 shell 继续启动。
|
|
145
|
+
|
|
146
|
+
推荐做法:
|
|
147
|
+
|
|
148
|
+
1. 将锁定的用户原文写入 instruction 文件,将已确认参数写入 `overrides` 与 `confirmation` JSON 文件。
|
|
149
|
+
2. 用 detached CLI 启动,让父命令返回启动证据,子进程继续持有 CDP 会话:
|
|
150
|
+
|
|
151
|
+
```powershell
|
|
152
|
+
npx -y @reconcrap/boss-recommend-mcp@latest run --detached --instruction-file .\boss-recommend-instruction.txt --overrides-file .\boss-recommend-overrides.json --confirmation-file .\boss-recommend-confirmation.json --slow-live --port 9222
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
3. 若返回 `ACCEPTED + run_id`,即任务已启动;记录 `run_id/stdout_path/stderr_path`。若返回 `NEED_INPUT` 或 `NEED_CONFIRMATION`,只补 `pending_questions`,不要重写已锁定的用户原文。
|
|
156
|
+
|
|
157
|
+
兼容路径:
|
|
158
|
+
|
|
159
|
+
- 若 `--detached` 不可用,或返回 `RECOMMEND_CLI_RUN_UNSUPPORTED_CDP_ONLY`,说明 npm/QClaw 仍在使用旧包;先运行 `npx -y @reconcrap/boss-recommend-mcp@latest install --agent qclaw` 并重启 QClaw。
|
|
160
|
+
- 在包更新未生效时,可以使用已验证过的直接 MCP stdio JSON-RPC 方式调用 `start_recommend_pipeline_run`;该方式等价于原生 MCP tool 调用,不能改用 recruit/search 路径。
|
|
161
|
+
|
|
162
|
+
普通 MCP 可用时:
|
|
163
|
+
|
|
164
|
+
`start_recommend_pipeline_run` 仍是首选。
|
|
165
|
+
|
|
166
|
+
禁止错误回退:
|
|
167
|
+
|
|
168
|
+
- 不得切到 `boss-recruit-mcp` 或 `run_recruit_pipeline`。
|
|
169
|
+
- 不得用 `boss-recruit-mcp doctor` 检查 recommend 流程。
|
|
170
|
+
|
|
171
|
+
## Response Style
|
|
172
|
+
|
|
173
|
+
- 用结构化中文。
|
|
174
|
+
- 第一轮确认卡片不出现 `job`。
|
|
175
|
+
- 仅在 `job_options` 出现后给岗位确认卡片,且岗位选项必须全量。
|
|
176
|
+
- 封闭式问题必须带完整标签选项;开放式问题(如 `criteria`)保持自由输入。
|
|
177
|
+
- 页面就绪失败提示必须包含 `debug_port`、recommend URL、以及登录 URL(若未登录):
|
|
178
|
+
- `https://www.zhipin.com/web/chat/recommend`
|
|
179
|
+
- `https://www.zhipin.com/web/user/?ka=bticket`
|
|
180
|
+
- 若错误是 `BOSS_LOGIN_REQUIRED`,提示用户在自动打开的 Chrome 窗口完成登录,然后原参数重试;不要改用 search/recruit 路径。
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
# boss-recruit-pipeline
|
|
2
|
-
|
|
3
|
-
Bundled search/recruit-page automation skill shipped with `boss-recommend-mcp` 2.x.
|
|
4
|
-
|
|
5
|
-
Package: `@reconcrap/boss-recommend-mcp` (npm)
|
|
6
|
-
Source: `https://github.com/reconcrap-cpu/boss-recommend-mcp`
|
|
7
|
-
|
|
8
|
-
This skill intentionally replaces legacy `boss-recruit-mcp` skill installs. It routes Boss search/recruit tasks to the unified CDP-only MCP tools:
|
|
9
|
-
|
|
10
|
-
- `run_recruit_pipeline`
|
|
11
|
-
- `start_recruit_pipeline_run`
|
|
12
|
-
- `get_recruit_pipeline_run`
|
|
13
|
-
- `pause_recruit_pipeline_run`
|
|
14
|
-
- `resume_recruit_pipeline_run`
|
|
15
|
-
- `cancel_recruit_pipeline_run`
|
|
16
|
-
|
|
17
|
-
Do not call the old `@reconcrap/boss-recruit-mcp` package from this skill.
|
|
1
|
+
# boss-recruit-pipeline
|
|
2
|
+
|
|
3
|
+
Bundled search/recruit-page automation skill shipped with `boss-recommend-mcp` 2.x.
|
|
4
|
+
|
|
5
|
+
Package: `@reconcrap/boss-recommend-mcp` (npm)
|
|
6
|
+
Source: `https://github.com/reconcrap-cpu/boss-recommend-mcp`
|
|
7
|
+
|
|
8
|
+
This skill intentionally replaces legacy `boss-recruit-mcp` skill installs. It routes Boss search/recruit tasks to the unified CDP-only MCP tools:
|
|
9
|
+
|
|
10
|
+
- `run_recruit_pipeline`
|
|
11
|
+
- `start_recruit_pipeline_run`
|
|
12
|
+
- `get_recruit_pipeline_run`
|
|
13
|
+
- `pause_recruit_pipeline_run`
|
|
14
|
+
- `resume_recruit_pipeline_run`
|
|
15
|
+
- `cancel_recruit_pipeline_run`
|
|
16
|
+
|
|
17
|
+
Do not call the old `@reconcrap/boss-recruit-mcp` package from this skill.
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "boss-recruit-pipeline"
|
|
3
|
-
description: "Use when users want Boss search/recruit-page screening via the unified boss-recommend-mcp package. Replaces the legacy boss-recruit-mcp skill."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Boss Recruit Pipeline Skill
|
|
7
|
-
|
|
8
|
-
## Goal
|
|
9
|
-
|
|
10
|
-
当用户要在 Boss 搜索页 / 招聘搜索页筛人时,必须走 `@reconcrap/boss-recommend-mcp` 2.x 内置的 recruit/search MCP 工具,不要安装或调用旧的 `@reconcrap/boss-recruit-mcp`。
|
|
11
|
-
|
|
12
|
-
## Tool Routing
|
|
13
|
-
|
|
14
|
-
- 同步启动:`run_recruit_pipeline`
|
|
15
|
-
- 异步启动:`start_recruit_pipeline_run`
|
|
16
|
-
- 查询进度:`get_recruit_pipeline_run`
|
|
17
|
-
- 暂停:`pause_recruit_pipeline_run`
|
|
18
|
-
- 继续:`resume_recruit_pipeline_run`
|
|
19
|
-
- 取消:`cancel_recruit_pipeline_run`
|
|
20
|
-
|
|
21
|
-
## Hard Rules
|
|
22
|
-
|
|
23
|
-
- 只在用户明确说搜索页、search、recruit、招聘搜索、`/web/chat/search` 时使用本 skill。
|
|
24
|
-
- 如果用户说推荐页、recommend、`/web/chat/recommend`,必须交给 `boss-recommend-pipeline`。
|
|
25
|
-
- 如果用户说聊天页、未读、全部聊天、求简历,必须交给 `boss-chat`。
|
|
26
|
-
- 禁止调用旧包:`@reconcrap/boss-recruit-mcp`、`boss-recruit-mcp`、旧本地 recruit repo、旧 vendor 脚本。
|
|
27
|
-
- 浏览器自动化必须走 CDP-only 2.x MCP 工具;不得要求用户启用 legacy page-JS 或 `Runtime.evaluate` 路径。
|
|
28
|
-
- 启动 search/recruit run 时,若本机默认 `127.0.0.1:9222` Chrome DevTools 端口不可连,工具会自动打开 Chrome 并导航到 `https://www.zhipin.com/web/chat/search`。
|
|
29
|
-
- 只有工具返回 `BOSS_LOGIN_REQUIRED` / `requires_login=true` 时,才要求用户在自动打开的 Chrome 窗口人工登录 Boss 后重试;不要把“没开 9222 Chrome”当作缺参。
|
|
30
|
-
- 若本机找不到 Chrome,可提示用户设置 `BOSS_MCP_CHROME_PATH` 或 `BOSS_RECOMMEND_CHROME_PATH`;非本机 debug host 不自动启动。
|
|
31
|
-
- 若用户未提供岗位,必须先询问岗位。搜索页岗位选择在关键词输入框旁边;不要猜测默认岗位。
|
|
32
|
-
- 若用户提供城市、学历、学校、关键词、过滤已看、人选目标数、筛选条件、post action、max greet 等参数,必须逐项传入或确认。
|
|
33
|
-
- `post_action=greet` 时必须确认 `max_greet_count`;不要默认等于 `target_count`。
|
|
34
|
-
- 搜索页和推荐页一样支持多选筛选条件;不要把多选降级成单选。
|
|
35
|
-
|
|
36
|
-
## Required Inputs
|
|
37
|
-
|
|
38
|
-
- `job`
|
|
39
|
-
- `keyword` 或用户明确的搜索意图
|
|
40
|
-
- `criteria`
|
|
41
|
-
- `target_count`
|
|
42
|
-
|
|
43
|
-
常用可选项:
|
|
44
|
-
|
|
45
|
-
- `city`
|
|
46
|
-
- `degree`
|
|
47
|
-
- `school_tag`
|
|
48
|
-
- `recent_not_view`
|
|
49
|
-
- `post_action`
|
|
50
|
-
- `max_greet_count`
|
|
51
|
-
- `port`
|
|
52
|
-
|
|
53
|
-
## Response Style
|
|
54
|
-
|
|
55
|
-
- 用结构化中文确认参数。
|
|
56
|
-
- 缺参时只补缺口,不要改写用户的筛选条件。
|
|
57
|
-
- 拿到 `ACCEPTED + run_id` 后默认停止本轮,不主动高频轮询。
|
|
58
|
-
- 查询、暂停、恢复、取消时必须复用同一个 `run_id`。
|
|
1
|
+
---
|
|
2
|
+
name: "boss-recruit-pipeline"
|
|
3
|
+
description: "Use when users want Boss search/recruit-page screening via the unified boss-recommend-mcp package. Replaces the legacy boss-recruit-mcp skill."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Boss Recruit Pipeline Skill
|
|
7
|
+
|
|
8
|
+
## Goal
|
|
9
|
+
|
|
10
|
+
当用户要在 Boss 搜索页 / 招聘搜索页筛人时,必须走 `@reconcrap/boss-recommend-mcp` 2.x 内置的 recruit/search MCP 工具,不要安装或调用旧的 `@reconcrap/boss-recruit-mcp`。
|
|
11
|
+
|
|
12
|
+
## Tool Routing
|
|
13
|
+
|
|
14
|
+
- 同步启动:`run_recruit_pipeline`
|
|
15
|
+
- 异步启动:`start_recruit_pipeline_run`
|
|
16
|
+
- 查询进度:`get_recruit_pipeline_run`
|
|
17
|
+
- 暂停:`pause_recruit_pipeline_run`
|
|
18
|
+
- 继续:`resume_recruit_pipeline_run`
|
|
19
|
+
- 取消:`cancel_recruit_pipeline_run`
|
|
20
|
+
|
|
21
|
+
## Hard Rules
|
|
22
|
+
|
|
23
|
+
- 只在用户明确说搜索页、search、recruit、招聘搜索、`/web/chat/search` 时使用本 skill。
|
|
24
|
+
- 如果用户说推荐页、recommend、`/web/chat/recommend`,必须交给 `boss-recommend-pipeline`。
|
|
25
|
+
- 如果用户说聊天页、未读、全部聊天、求简历,必须交给 `boss-chat`。
|
|
26
|
+
- 禁止调用旧包:`@reconcrap/boss-recruit-mcp`、`boss-recruit-mcp`、旧本地 recruit repo、旧 vendor 脚本。
|
|
27
|
+
- 浏览器自动化必须走 CDP-only 2.x MCP 工具;不得要求用户启用 legacy page-JS 或 `Runtime.evaluate` 路径。
|
|
28
|
+
- 启动 search/recruit run 时,若本机默认 `127.0.0.1:9222` Chrome DevTools 端口不可连,工具会自动打开 Chrome 并导航到 `https://www.zhipin.com/web/chat/search`。
|
|
29
|
+
- 只有工具返回 `BOSS_LOGIN_REQUIRED` / `requires_login=true` 时,才要求用户在自动打开的 Chrome 窗口人工登录 Boss 后重试;不要把“没开 9222 Chrome”当作缺参。
|
|
30
|
+
- 若本机找不到 Chrome,可提示用户设置 `BOSS_MCP_CHROME_PATH` 或 `BOSS_RECOMMEND_CHROME_PATH`;非本机 debug host 不自动启动。
|
|
31
|
+
- 若用户未提供岗位,必须先询问岗位。搜索页岗位选择在关键词输入框旁边;不要猜测默认岗位。
|
|
32
|
+
- 若用户提供城市、学历、学校、关键词、过滤已看、人选目标数、筛选条件、post action、max greet 等参数,必须逐项传入或确认。
|
|
33
|
+
- `post_action=greet` 时必须确认 `max_greet_count`;不要默认等于 `target_count`。
|
|
34
|
+
- 搜索页和推荐页一样支持多选筛选条件;不要把多选降级成单选。
|
|
35
|
+
|
|
36
|
+
## Required Inputs
|
|
37
|
+
|
|
38
|
+
- `job`
|
|
39
|
+
- `keyword` 或用户明确的搜索意图
|
|
40
|
+
- `criteria`
|
|
41
|
+
- `target_count`
|
|
42
|
+
|
|
43
|
+
常用可选项:
|
|
44
|
+
|
|
45
|
+
- `city`
|
|
46
|
+
- `degree`
|
|
47
|
+
- `school_tag`
|
|
48
|
+
- `recent_not_view`
|
|
49
|
+
- `post_action`
|
|
50
|
+
- `max_greet_count`
|
|
51
|
+
- `port`
|
|
52
|
+
|
|
53
|
+
## Response Style
|
|
54
|
+
|
|
55
|
+
- 用结构化中文确认参数。
|
|
56
|
+
- 缺参时只补缺口,不要改写用户的筛选条件。
|
|
57
|
+
- 拿到 `ACCEPTED + run_id` 后默认停止本轮,不主动高频轮询。
|
|
58
|
+
- 查询、暂停、恢复、取消时必须复用同一个 `run_id`。
|