@reconcrap/boss-recommend-mcp 2.1.23 → 2.1.25

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.
Files changed (67) hide show
  1. package/README.md +5 -0
  2. package/bin/boss-recommend-mcp.js +4 -4
  3. package/package.json +6 -1
  4. package/scripts/install-macos.sh +280 -280
  5. package/scripts/postinstall.cjs +44 -44
  6. package/skills/boss-chat/README.md +43 -42
  7. package/skills/boss-chat/SKILL.md +107 -106
  8. package/skills/boss-recommend-pipeline/README.md +13 -13
  9. package/skills/boss-recommend-pipeline/SKILL.md +47 -47
  10. package/skills/boss-recruit-pipeline/README.md +19 -19
  11. package/skills/boss-recruit-pipeline/SKILL.md +89 -89
  12. package/src/chat-mcp.js +301 -127
  13. package/src/chat-runtime-config.js +7 -5
  14. package/src/core/boss-cards/index.js +199 -199
  15. package/src/core/browser/index.js +302 -145
  16. package/src/core/capture/index.js +2930 -1201
  17. package/src/core/cv-acquisition/index.js +512 -238
  18. package/src/core/cv-capture-target/index.js +513 -299
  19. package/src/core/greet-quota/index.js +71 -71
  20. package/src/core/infinite-list/index.js +31 -31
  21. package/src/core/reporting/legacy-csv.js +12 -12
  22. package/src/core/run/detached-launcher.js +305 -0
  23. package/src/core/run/index.js +109 -55
  24. package/src/core/run/timing.js +33 -33
  25. package/src/core/run/windows-detached-worker.ps1 +106 -0
  26. package/src/core/screening/index.js +2400 -2135
  27. package/src/core/self-heal/index.js +989 -973
  28. package/src/core/self-heal/viewport.js +1505 -564
  29. package/src/detached-worker.js +99 -99
  30. package/src/domains/chat/action-journal.js +536 -0
  31. package/src/domains/chat/cards.js +137 -137
  32. package/src/domains/chat/constants.js +9 -9
  33. package/src/domains/chat/detail.js +1684 -401
  34. package/src/domains/chat/index.js +8 -7
  35. package/src/domains/chat/jobs.js +620 -620
  36. package/src/domains/chat/page-guard.js +157 -122
  37. package/src/domains/chat/roots.js +56 -56
  38. package/src/domains/chat/run-service.js +1801 -760
  39. package/src/domains/common/account-rights-panel.js +314 -314
  40. package/src/domains/common/recovery-settle.js +159 -159
  41. package/src/domains/recommend/actions.js +1219 -472
  42. package/src/domains/recommend/cards.js +243 -243
  43. package/src/domains/recommend/colleague-contact.js +1079 -333
  44. package/src/domains/recommend/constants.js +92 -92
  45. package/src/domains/recommend/detail.js +4037 -136
  46. package/src/domains/recommend/filters.js +608 -590
  47. package/src/domains/recommend/index.js +9 -9
  48. package/src/domains/recommend/jobs.js +571 -542
  49. package/src/domains/recommend/location.js +754 -707
  50. package/src/domains/recommend/refresh.js +677 -392
  51. package/src/domains/recommend/roots.js +80 -80
  52. package/src/domains/recommend/run-service.js +4048 -1447
  53. package/src/domains/recommend/scopes.js +246 -246
  54. package/src/domains/recruit/actions.js +277 -277
  55. package/src/domains/recruit/cards.js +74 -74
  56. package/src/domains/recruit/constants.js +236 -236
  57. package/src/domains/recruit/detail.js +588 -588
  58. package/src/domains/recruit/index.js +9 -9
  59. package/src/domains/recruit/instruction-parser.js +866 -866
  60. package/src/domains/recruit/refresh.js +45 -45
  61. package/src/domains/recruit/roots.js +68 -68
  62. package/src/domains/recruit/run-service.js +1817 -1620
  63. package/src/domains/recruit/search.js +3229 -3229
  64. package/src/index.js +16 -1
  65. package/src/parser.js +1296 -1296
  66. package/src/recommend-mcp.js +1061 -450
  67. package/src/recommend-scheduler.js +75 -75
@@ -1,89 +1,89 @@
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
- Trae/Trae-CN split-server config exposes these under the `boss-recruit` MCP server. Search/recruit tasks should call `boss-recruit/<tool>` when the host shows server-qualified tool names.
15
-
16
- - 同步启动:`run_recruit_pipeline`
17
- - 异步启动:`start_recruit_pipeline_run`
18
- - 查询进度:`get_recruit_pipeline_run`
19
- - 暂停:`pause_recruit_pipeline_run`
20
- - 继续:`resume_recruit_pipeline_run`
21
- - 取消:`cancel_recruit_pipeline_run`
22
-
23
- If the visible tool surface only offers `boss-recommend/*` for a search/recruit task, stop and report a tool-surface/config error. Do not call `boss-recommend/list_recommend_jobs`, `boss-recommend/run_recommend`, or `boss-recommend/start_recommend_pipeline_run` as a fallback for search.
24
-
25
- ## Hard Rules
26
-
27
- - 只在用户明确说搜索页、search、recruit、招聘搜索、`/web/chat/search` 时使用本 skill。
28
- - 如果用户说推荐页、recommend、`/web/chat/recommend`,必须交给 `boss-recommend-pipeline`。
29
- - 如果用户说聊天页、未读、全部聊天、求简历,必须交给 `boss-chat`。
30
- - 禁止调用旧包:`@reconcrap/boss-recruit-mcp`、`boss-recruit-mcp`、旧本地 recruit repo、旧 vendor 脚本。
31
- - 浏览器自动化必须走 CDP-only 2.x MCP 工具;不得要求用户启用 legacy page-JS 或 `Runtime.evaluate` 路径。
32
- - 启动 search/recruit run 时,若本机默认 `127.0.0.1:9222` Chrome DevTools 端口不可连,工具会自动打开 Chrome 并导航到 `https://www.zhipin.com/web/chat/search`。
33
- - 只有工具返回 `BOSS_LOGIN_REQUIRED` / `requires_login=true` 时,才要求用户在自动打开的 Chrome 窗口人工登录 Boss 后重试;不要把“没开 9222 Chrome”当作缺参。
34
- - 若本机找不到 Chrome,可提示用户设置 `BOSS_MCP_CHROME_PATH` 或 `BOSS_RECOMMEND_CHROME_PATH`;非本机 debug host 不自动启动。
35
- - 若用户未提供岗位,必须先询问岗位。搜索页岗位选择在关键词输入框旁边;不要猜测默认岗位。
36
- - 搜索页任务不要调用 `list_recommend_jobs` 获取岗位;推荐页岗位列表和搜索页岗位选择不是同一个工具面。用户已经给出岗位时直接传 `overrides.job`。
37
- - 若用户提供城市、学历、学校、关键词、过滤已看、人选目标数、筛选条件等参数,必须逐项传入或确认。
38
- - 搜索页和推荐页一样支持多选筛选条件;不要把多选降级成单选。
39
- - 每次 run 必须明确询问用户本次休息强度 `rest_level`:`low`(旧策略)/ `medium`(约 5 小时或 700 人累计休息 30 分钟)/ `high`(约 5 小时或 700 人累计休息 1 小时);不得默认使用配置文件里的值替用户决定。
40
- - 启动前展示一次包含岗位、关键词、城市、学历、学校标签、是否过滤已看、是否过滤近期同事触达、criteria、目标人数、后置动作和休息强度的总确认;用户确认后,`confirmation` 只需要 `{ "final_confirmed": true }`。
41
- - 不要让工具重写用户的 `criteria`。用户给出 `筛选条件` / `筛选标准` / `硬条件` 时,逐字写入 `overrides.criteria`;不要传系统简化版。
42
- - 用户说学校类型“不限”时,在 `overrides.school_tag` 显式传 `"不限"` 或在 `overrides.schools` 传 `[]`;不要因为 criteria 里出现 `985/211/双一流` 就把它们当作搜索页学校过滤器。
43
- - 用户说只看未查看“不限”时,在 `overrides.recent_not_view` 显式传 `"不限"` 或在 `overrides.filter_recent_viewed` 传 `false`。
44
- - “只看未查看/过滤已看”只控制 Boss 的“过滤近14天查看”筛选;“是否过滤近期同事触达”是单独输入,写入 `overrides.filter_recent_colleague_contacted` 或兼容字段 `overrides.skip_recent_colleague_contacted`。用户说近期同事触达“不限/不过滤”时传 `false`;用户说过滤近期同事触达/跳过同事已联系时传 `true`。
45
-
46
- ## Required Inputs
47
-
48
- - `job`
49
- - `keyword` 或用户明确的搜索意图
50
- - `criteria`
51
- - `target_count`
52
- - `rest_level`: `low|medium|high`
53
-
54
- 常用可选项:
55
-
56
- - `city`
57
- - `degree`
58
- - `school_tag`
59
- - `recent_not_view`
60
- - `filter_recent_colleague_contacted`
61
- - `port`
62
-
63
- ## Confirmation Flow
64
-
65
- 1. 先从用户原始消息里提取参数;缺什么只问什么。不要先调用 MCP 让工具猜缺参。
66
- 2. `criteria` 必须来自用户明确提供的筛选条件,或来自你向用户追问后得到的完整自然语言标准。禁止把岗位、关键词、学历等字段拼成 criteria。
67
- 3. 如果用户一开始已经给齐 `job`、`keyword`、`criteria`、`target_count`、`rest_level`,并且可选筛选项也已明确或确认不限,直接展示一次总确认。
68
- 4. 用户确认后调用 `boss-recruit/start_recruit_pipeline_run` 或 `boss-recruit/run_recruit_pipeline`,传:
69
- - `confirmation: { "final_confirmed": true }`
70
- - 所有规范化字段放在 `overrides`
71
- - 完整 criteria 放在 `overrides.criteria`
72
- - 本次休息强度放在 `human_behavior.restLevel`
73
- 5. 工具返回 `NEED_INPUT` 时,按 `pending_questions` 只补具体缺口;不要接受或转述工具生成的简化 criteria。
74
-
75
- 启动工具时,把用户确认的休息强度写入 `human_behavior.restLevel`,例如:
76
-
77
- ```json
78
- {
79
- "confirmation": { "final_confirmed": true },
80
- "human_behavior": { "restLevel": "medium" }
81
- }
82
- ```
83
-
84
- ## Response Style
85
-
86
- - 用结构化中文确认参数。
87
- - 缺参时只补缺口,不要改写用户的筛选条件。
88
- - 拿到 `ACCEPTED + run_id` 后默认停止本轮,不主动高频轮询。
89
- - 查询、暂停、恢复、取消时必须复用同一个 `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
+ Trae/Trae-CN split-server config exposes these under the `boss-recruit` MCP server. Search/recruit tasks should call `boss-recruit/<tool>` when the host shows server-qualified tool names.
15
+
16
+ - 同步启动:`run_recruit_pipeline`
17
+ - 异步启动:`start_recruit_pipeline_run`
18
+ - 查询进度:`get_recruit_pipeline_run`
19
+ - 暂停:`pause_recruit_pipeline_run`
20
+ - 继续:`resume_recruit_pipeline_run`
21
+ - 取消:`cancel_recruit_pipeline_run`
22
+
23
+ If the visible tool surface only offers `boss-recommend/*` for a search/recruit task, stop and report a tool-surface/config error. Do not call `boss-recommend/list_recommend_jobs`, `boss-recommend/run_recommend`, or `boss-recommend/start_recommend_pipeline_run` as a fallback for search.
24
+
25
+ ## Hard Rules
26
+
27
+ - 只在用户明确说搜索页、search、recruit、招聘搜索、`/web/chat/search` 时使用本 skill。
28
+ - 如果用户说推荐页、recommend、`/web/chat/recommend`,必须交给 `boss-recommend-pipeline`。
29
+ - 如果用户说聊天页、未读、全部聊天、求简历,必须交给 `boss-chat`。
30
+ - 禁止调用旧包:`@reconcrap/boss-recruit-mcp`、`boss-recruit-mcp`、旧本地 recruit repo、旧 vendor 脚本。
31
+ - 浏览器自动化必须走 CDP-only 2.x MCP 工具;不得要求用户启用 legacy page-JS 或 `Runtime.evaluate` 路径。
32
+ - 启动 search/recruit run 时,若本机默认 `127.0.0.1:9222` Chrome DevTools 端口不可连,工具会自动打开 Chrome 并导航到 `https://www.zhipin.com/web/chat/search`。
33
+ - 只有工具返回 `BOSS_LOGIN_REQUIRED` / `requires_login=true` 时,才要求用户在自动打开的 Chrome 窗口人工登录 Boss 后重试;不要把“没开 9222 Chrome”当作缺参。
34
+ - 若本机找不到 Chrome,可提示用户设置 `BOSS_MCP_CHROME_PATH` 或 `BOSS_RECOMMEND_CHROME_PATH`;非本机 debug host 不自动启动。
35
+ - 若用户未提供岗位,必须先询问岗位。搜索页岗位选择在关键词输入框旁边;不要猜测默认岗位。
36
+ - 搜索页任务不要调用 `list_recommend_jobs` 获取岗位;推荐页岗位列表和搜索页岗位选择不是同一个工具面。用户已经给出岗位时直接传 `overrides.job`。
37
+ - 若用户提供城市、学历、学校、关键词、过滤已看、人选目标数、筛选条件等参数,必须逐项传入或确认。
38
+ - 搜索页和推荐页一样支持多选筛选条件;不要把多选降级成单选。
39
+ - 每次 run 必须明确询问用户本次休息强度 `rest_level`:`low`(旧策略)/ `medium`(约 5 小时或 700 人累计休息 30 分钟)/ `high`(约 5 小时或 700 人累计休息 1 小时);不得默认使用配置文件里的值替用户决定。
40
+ - 启动前展示一次包含岗位、关键词、城市、学历、学校标签、是否过滤已看、是否过滤近期同事触达、criteria、目标人数、后置动作和休息强度的总确认;用户确认后,`confirmation` 只需要 `{ "final_confirmed": true }`。
41
+ - 不要让工具重写用户的 `criteria`。用户给出 `筛选条件` / `筛选标准` / `硬条件` 时,逐字写入 `overrides.criteria`;不要传系统简化版。
42
+ - 用户说学校类型“不限”时,在 `overrides.school_tag` 显式传 `"不限"` 或在 `overrides.schools` 传 `[]`;不要因为 criteria 里出现 `985/211/双一流` 就把它们当作搜索页学校过滤器。
43
+ - 用户说只看未查看“不限”时,在 `overrides.recent_not_view` 显式传 `"不限"` 或在 `overrides.filter_recent_viewed` 传 `false`。
44
+ - “只看未查看/过滤已看”只控制 Boss 的“过滤近14天查看”筛选;“是否过滤近期同事触达”是单独输入,写入 `overrides.filter_recent_colleague_contacted` 或兼容字段 `overrides.skip_recent_colleague_contacted`。用户说近期同事触达“不限/不过滤”时传 `false`;用户说过滤近期同事触达/跳过同事已联系时传 `true`。
45
+
46
+ ## Required Inputs
47
+
48
+ - `job`
49
+ - `keyword` 或用户明确的搜索意图
50
+ - `criteria`
51
+ - `target_count`
52
+ - `rest_level`: `low|medium|high`
53
+
54
+ 常用可选项:
55
+
56
+ - `city`
57
+ - `degree`
58
+ - `school_tag`
59
+ - `recent_not_view`
60
+ - `filter_recent_colleague_contacted`
61
+ - `port`
62
+
63
+ ## Confirmation Flow
64
+
65
+ 1. 先从用户原始消息里提取参数;缺什么只问什么。不要先调用 MCP 让工具猜缺参。
66
+ 2. `criteria` 必须来自用户明确提供的筛选条件,或来自你向用户追问后得到的完整自然语言标准。禁止把岗位、关键词、学历等字段拼成 criteria。
67
+ 3. 如果用户一开始已经给齐 `job`、`keyword`、`criteria`、`target_count`、`rest_level`,并且可选筛选项也已明确或确认不限,直接展示一次总确认。
68
+ 4. 用户确认后调用 `boss-recruit/start_recruit_pipeline_run` 或 `boss-recruit/run_recruit_pipeline`,传:
69
+ - `confirmation: { "final_confirmed": true }`
70
+ - 所有规范化字段放在 `overrides`
71
+ - 完整 criteria 放在 `overrides.criteria`
72
+ - 本次休息强度放在 `human_behavior.restLevel`
73
+ 5. 工具返回 `NEED_INPUT` 时,按 `pending_questions` 只补具体缺口;不要接受或转述工具生成的简化 criteria。
74
+
75
+ 启动工具时,把用户确认的休息强度写入 `human_behavior.restLevel`,例如:
76
+
77
+ ```json
78
+ {
79
+ "confirmation": { "final_confirmed": true },
80
+ "human_behavior": { "restLevel": "medium" }
81
+ }
82
+ ```
83
+
84
+ ## Response Style
85
+
86
+ - 用结构化中文确认参数。
87
+ - 缺参时只补缺口,不要改写用户的筛选条件。
88
+ - 拿到 `ACCEPTED + run_id` 后默认停止本轮,不主动高频轮询。
89
+ - 查询、暂停、恢复、取消时必须复用同一个 `run_id`。