@lark-people/cli 0.0.0 → 0.0.2
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/people-cli_darwin_amd64 +0 -0
- package/bin/people-cli_darwin_arm64 +0 -0
- package/bin/people-cli_linux_amd64 +0 -0
- package/bin/people-cli_linux_arm64 +0 -0
- package/bin/people-cli_windows_amd64.exe +0 -0
- package/bin/people-cli_windows_arm64.exe +0 -0
- package/package.json +1 -2
- package/scripts/install-wizard.js +2 -3
- package/skills/people-hire/SKILL.md +162 -0
- package/skills/people-hire/references/people-hire-application.md +324 -0
- package/skills/people-hire/references/people-hire-evaluation-task-list.md +232 -0
- package/skills/people-hire/references/people-hire-evaluation.md +126 -0
- package/skills/people-hire/references/people-hire-interview-record.md +107 -0
- package/skills/people-hire/references/people-hire-interview-task-list.md +246 -0
- package/skills/people-hire/references/people-hire-interview.md +142 -0
- package/skills/people-hire/references/people-hire-job-process.md +92 -0
- package/skills/people-hire/references/people-hire-job-requirement.md +217 -0
- package/skills/people-hire/references/people-hire-job.md +266 -0
- package/skills/people-hire/references/people-hire-minutes.md +86 -0
- package/skills/people-hire/references/people-hire-talent.md +98 -0
- package/skills/people-hire/references/people-hire-test.md +196 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lark-people/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "The official CLI for People open platform",
|
|
5
5
|
"bin": {
|
|
6
6
|
"people-cli": "scripts/run.js"
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
"!skills/people-skill-maker/",
|
|
36
36
|
"!skills/people-attendance/",
|
|
37
37
|
"!skills/people-overtime/",
|
|
38
|
-
"!skills/people-hire/",
|
|
39
38
|
"scripts/install.js",
|
|
40
39
|
"scripts/install-wizard.js",
|
|
41
40
|
"scripts/run.js",
|
|
@@ -11,14 +11,13 @@ const DEFAULT_PKG = "@lark-people/cli";
|
|
|
11
11
|
const DEFAULT_SKILLS_DIR = path.join(__dirname, "..", "skills");
|
|
12
12
|
const isWindows = process.platform === "win32";
|
|
13
13
|
// Skills excluded from installation. `people-skill-maker` is an authoring-only
|
|
14
|
-
// skill; the people-attendance/people-overtime
|
|
15
|
-
//
|
|
14
|
+
// skill; the people-attendance/people-overtime skills are gated until their
|
|
15
|
+
// capabilities are ready for release (keep in sync with
|
|
16
16
|
// internal/features/features.go).
|
|
17
17
|
const EXCLUDED_BUNDLED_SKILLS = new Set([
|
|
18
18
|
"people-skill-maker",
|
|
19
19
|
"people-attendance",
|
|
20
20
|
"people-overtime",
|
|
21
|
-
"people-hire",
|
|
22
21
|
]);
|
|
23
22
|
|
|
24
23
|
function readPackageMeta(packageDir = CURRENT_PACKAGE_DIR) {
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: people-hire
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "飞书招聘:查询职位、招聘需求、招需、投递、面试、评估、人才等招聘数据。当用户需要查看招聘职位、招聘需求、候选人投递、面试或评估任务、人才详情,或跟进招聘流程与进度时使用。"
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["people-cli"]
|
|
8
|
+
cliHelp: "people-cli hire --help"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# hire (v1)
|
|
12
|
+
|
|
13
|
+
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../people-shared/SKILL.md`](../people-shared/SKILL.md),其中包含认证、权限处理**
|
|
14
|
+
|
|
15
|
+
# 飞书招聘(Hire)
|
|
16
|
+
|
|
17
|
+
飞书招聘域用于管理招聘流程中的职位、投递、面试、评估、人才等数据,适合处理招聘过程跟踪、候选人查询、职位信息查询等场景。
|
|
18
|
+
|
|
19
|
+
## 核心概念
|
|
20
|
+
|
|
21
|
+
- `job`:职位。表示一个招聘岗位,可用于查看职位列表、职位详情。
|
|
22
|
+
- `job-requirement`:招聘需求。表示岗位背后的招需信息,常用于查看需求池或招需草稿。
|
|
23
|
+
- `application`:投递。表示候选人对某个职位的一次投递记录,是串联候选人、面试、评估的核心对象。
|
|
24
|
+
- `interview`:面试记录。表示一次具体的面试安排或结果,可按投递、面试 ID等条件查询。
|
|
25
|
+
- `interview-task`:面试任务。面向面试官的待办任务视角,适合查询“某个面试官当前有哪些面试任务”。
|
|
26
|
+
- `evaluation`:简历评估记录。表示对候选人简历或投递的评估结果,可按投递查询。
|
|
27
|
+
- `evaluation-task`:简历评估任务。面向评估人的待办任务视角,适合查询“某个评估人当前有哪些待处理评估任务”。
|
|
28
|
+
- `talent`:人才。表示招聘人才库中的候选人实体,可用于查询人才详情。
|
|
29
|
+
|
|
30
|
+
## 资源关系
|
|
31
|
+
|
|
32
|
+
常见关系如下:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
job / job-requirement
|
|
36
|
+
-> application
|
|
37
|
+
-> interview / interview-task
|
|
38
|
+
-> evaluation / evaluation-task
|
|
39
|
+
-> talent
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
理解方式:
|
|
43
|
+
|
|
44
|
+
- 先有 `job` 或 `job-requirement`,表示企业侧的招聘需求。
|
|
45
|
+
- 候选人进入流程后形成 `application`,即一次具体投递。
|
|
46
|
+
- 围绕一次 `application`,会产生 `interview` 和 `evaluation` 这类流程记录。
|
|
47
|
+
- `interview-task` 和 `evaluation-task` 更偏“某个处理人待办列表”,而不是完整流程明细。
|
|
48
|
+
- `talent` 是人才/候选人,一个候选人可以有多个投递。
|
|
49
|
+
|
|
50
|
+
## 使用建议
|
|
51
|
+
|
|
52
|
+
- 查询招聘流程明细时,优先从 `application`、`interview`、`evaluation` 这类实体记录入手。
|
|
53
|
+
- 查询某位面试官或评估人的待处理事项时,优先使用 `interview-task`、`evaluation-task`。
|
|
54
|
+
- 查询岗位信息时,优先使用 `job.list` 和 `job.detail`。
|
|
55
|
+
- 查询人才档案或人才库信息时,优先使用 `talent.detail`。
|
|
56
|
+
|
|
57
|
+
## 重要注意事项
|
|
58
|
+
|
|
59
|
+
- 招聘原生接口同时支持用户身份(UAT)和租户身份(TAT);公开元数据中的身份声明可能滞后,CLI Registry 已按实际能力补充两种身份。调用前仍应先通过 `people-cli schema hire.<resource>.<method>` 查看参数结构。
|
|
60
|
+
- 多个接口包含 `user_id_type` 参数,默认常见为 `open_id`,但部分接口支持 `user_id`、`union_id`、`people_admin_id`,不要自行猜测,需以 schema 为准。
|
|
61
|
+
- `application`、`interview`、`evaluation` 都是流程中的不同观察角度,不要混用:任务类接口返回的是“待办视角”,记录类接口返回的是“业务实体视角”。
|
|
62
|
+
- `talent.detail` 来自 `hire v2`,其余当前接入接口主要来自 `hire v1`;跨版本调用时要以 CLI 已暴露的方法为准。
|
|
63
|
+
|
|
64
|
+
## Shortcuts(推荐优先使用)
|
|
65
|
+
|
|
66
|
+
Shortcut 是对常用操作的高级封装(`people-cli hire +<verb> [flags]`)。有 Shortcut 的操作优先使用。
|
|
67
|
+
|
|
68
|
+
| Shortcut | 说明 |
|
|
69
|
+
|----------|------|
|
|
70
|
+
| [`+interview-task-list`](references/people-hire-interview-task-list.md) | list current user's interview tasks with enriched interview, application (with job), and talent info |
|
|
71
|
+
| [`+evaluation-task-list`](references/people-hire-evaluation-task-list.md) | list current user's evaluation tasks with enriched evaluation, application (with job), and talent info |
|
|
72
|
+
| [`+application-list`](references/people-hire-application.md) | list applications by job process type and return compact application summaries |
|
|
73
|
+
| [`+job-list`](references/people-hire-job.md) | list jobs with compact table-friendly fields |
|
|
74
|
+
| [`+job-detail`](references/people-hire-job.md) | get job detail with compact fields by default |
|
|
75
|
+
| [`+job-requirement-list`](references/people-hire-job-requirement.md) | list job requirements with compact table-friendly fields |
|
|
76
|
+
| [`+talent-detail`](references/people-hire-talent.md) | get talent detail with compact resume fields |
|
|
77
|
+
| [`+test-list`](references/people-hire-test.md) | list tests with compact table-friendly fields |
|
|
78
|
+
| [`+interview-list`](references/people-hire-interview.md) | list interviews with compact table-friendly fields |
|
|
79
|
+
| [`+evaluation-list`](references/people-hire-evaluation.md) | list evaluations with compact table-friendly fields |
|
|
80
|
+
| [`+job-process-list`](references/people-hire-job-process.md) | list job processes and stages with compact table-friendly fields |
|
|
81
|
+
| [`+minutes-detail`](references/people-hire-minutes.md) | get interview minutes with compact transcript fields |
|
|
82
|
+
| [`+interview-record-detail`](references/people-hire-interview-record.md) | get interview record detail with compact summary fields |
|
|
83
|
+
|
|
84
|
+
## API Resources
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
people-cli schema hire.<resource>.<method> # 调用 API 前必须先查看参数结构
|
|
88
|
+
people-cli hire <resource> <method> [flags] # 调用 API
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
> **重要**:使用原生 API 时,必须先运行 `schema` 查看 `--data` / `--params` 参数结构,不要猜测字段格式。
|
|
92
|
+
|
|
93
|
+
### evaluation-task
|
|
94
|
+
|
|
95
|
+
- `list` — 获取员工简历评估任务。获取简历评估任务列表。根据评估人ID查询评估任务列表,包括评估ID、投递ID、任务状态等。
|
|
96
|
+
|
|
97
|
+
### interview-task
|
|
98
|
+
|
|
99
|
+
- `list` — 获取员工面试任务。获取面试任务列表。根据面试官ID查询面试任务列表,包括面试ID、投递ID、任务状态等。
|
|
100
|
+
|
|
101
|
+
### job
|
|
102
|
+
|
|
103
|
+
- `list` — 获取职位列表。适合按更新时间、招聘负责人、职位协助人、招聘经理等条件筛选职位。
|
|
104
|
+
- `detail` — 获取职位招聘进度(详情)。返回职位基本信息、负责人、协助人、用人经理、职位地址、职位设置、关联招需、标签等信息。
|
|
105
|
+
|
|
106
|
+
### job-requirement
|
|
107
|
+
|
|
108
|
+
- `list` — 获取招聘需求列表V2(招需草稿)。获取招聘需求、招需列表。
|
|
109
|
+
|
|
110
|
+
### evaluation
|
|
111
|
+
|
|
112
|
+
- `list` — 获取简历评估信息。获取简历评估信息列表。
|
|
113
|
+
|
|
114
|
+
### interview
|
|
115
|
+
|
|
116
|
+
- `list` — 获取面试信息。获取面试信息列表。
|
|
117
|
+
|
|
118
|
+
### application
|
|
119
|
+
|
|
120
|
+
- `get` — 获取投递信息。根据投递 ID 查询单个投递详情,可用于串联候选人、职位、面试与评估流程。
|
|
121
|
+
- `list` — 获取投递列表。支持 UAT 鉴权,需携带招聘流程 ID,适合按流程、职位、阶段、关键字等条件查询职位下候选人进展。keyword 可用于姓名、电话、邮箱、公司、任职职位、学校等过滤。
|
|
122
|
+
- `detail` — 获取投递详情。支持 UAT 鉴权,可查询投递关联职位、人才、面试、评估等信息。
|
|
123
|
+
|
|
124
|
+
### job-process
|
|
125
|
+
|
|
126
|
+
- `list` — 获取招聘流程信息。支持 UAT 鉴权,用于查看职位下候选人招聘流程进展。
|
|
127
|
+
|
|
128
|
+
### test
|
|
129
|
+
|
|
130
|
+
- `list` — 获取笔试列表。支持 UAT 鉴权,用于查看职位下候选人的笔试信息。
|
|
131
|
+
|
|
132
|
+
### minutes
|
|
133
|
+
|
|
134
|
+
- `detail` — 获取面试速记明细。支持 UAT 鉴权,可结合面试速记生成面评初稿。
|
|
135
|
+
|
|
136
|
+
### interview-record
|
|
137
|
+
|
|
138
|
+
- `detail` — 获取面试评价详细信息(新版)。支持 UAT 鉴权,用于查看面试评价详情。
|
|
139
|
+
|
|
140
|
+
### talent
|
|
141
|
+
|
|
142
|
+
- `detail` — 获取人才详情。返回人才档案、标签、备注等信息。
|
|
143
|
+
|
|
144
|
+
## 权限表
|
|
145
|
+
|
|
146
|
+
| 方法 | 所需 scope |
|
|
147
|
+
|------|-----------|
|
|
148
|
+
| `evaluation-task.list` | `hire:evaluation:readonly` |
|
|
149
|
+
| `interview-task.list` | `hire:interview:readonly` |
|
|
150
|
+
| `job.list` | `hire:job:readonly` |
|
|
151
|
+
| `job.detail` | `hire:job.composite_info:readonly` |
|
|
152
|
+
| `job-requirement.list` | `hire:job_requirement:readonly` |
|
|
153
|
+
| `evaluation.list` | `hire:evaluation:readonly` |
|
|
154
|
+
| `interview.list` | `hire:interview:readonly` |
|
|
155
|
+
| `application.get` | `hire:application:readonly` |
|
|
156
|
+
| `application.list` | `hire:application:readonly` |
|
|
157
|
+
| `application.detail` | `hire:application:readonly` |
|
|
158
|
+
| `job-process.list` | `hire:job_process:readonly` |
|
|
159
|
+
| `test.list` | `hire:exam:readonly` |
|
|
160
|
+
| `minutes.detail` | `hire:interview:readonly` |
|
|
161
|
+
| `interview-record.detail` | `hire:interview:readonly` |
|
|
162
|
+
| `talent.detail` | `hire:talent:readonly` |
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# application
|
|
2
|
+
|
|
3
|
+
## 这是"查投递信息"场景的核心模块,覆盖投递列表、单条投递详情和增强投递详情。
|
|
4
|
+
|
|
5
|
+
> **字段来源:** 投递列表以本文和 `people-cli hire +application-list --help` 为准;原生 `application get/detail` 或未覆盖字段再用 `people-cli schema hire.application.get/detail` 核对。
|
|
6
|
+
> **Shortcut 约束:** 查询投递列表必须使用 `people-cli hire +application-list`。未指定流程类型时同时查询社招和校招并合并当前页结果,且分别提示社招/校招是否还有更多数据;用户明确指定社招/校招时使用 `--process-type social|campus` 并只查指定流程;高级参数 `--job-process-id` 会覆盖流程解析。原生 `application.list` 仅作为 Shortcut 底层输入,禁止直接调用或展示原生 ID 列表。
|
|
7
|
+
|
|
8
|
+
## 适用意图
|
|
9
|
+
|
|
10
|
+
当用户出现以下表达时,优先使用本场景:
|
|
11
|
+
|
|
12
|
+
- "查这条投递的信息"
|
|
13
|
+
- "看 application_id 对应的流程状态"
|
|
14
|
+
- "看职位下候选人进展 / 投递列表"
|
|
15
|
+
- "看多个职位下候选人的投递进展"
|
|
16
|
+
- "看某职位被终止 / 被锁定的候选人"
|
|
17
|
+
- "查候选人锁定在其他职位 / 被别的职位锁定 / 没法推进"
|
|
18
|
+
- "根据投递 ID 追踪后续面试评估"
|
|
19
|
+
- "获取投递关联的职位、人才、面试、评估信息"
|
|
20
|
+
|
|
21
|
+
### 意图和命令索引
|
|
22
|
+
|
|
23
|
+
| 用途 / 何时使用 | 命令 | 说明 |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| 按条件查询投递列表 | `people-cli hire +application-list` | 封装 `job-process.list` + `application.list` + `application.get`,未指定流程时同时查询社招和校招,把流程类型解析为底层 `process_id`,再把投递 ID 补查为投递信息 |
|
|
26
|
+
| 查询职位下终止投递 | `people-cli hire +application-list --job-id <job_id> --terminated` | `--terminated` 下推为非活跃投递筛选,避免拉全量后按阶段过滤 |
|
|
27
|
+
| 查询职位下锁定在其他职位的投递 | `people-cli hire +application-list --job-id <job_id> --locked` | `--locked` 下推为 `lock_status=2`,表示锁定在其他职位 / 无法推进 |
|
|
28
|
+
| 查询某候选人在我负责职位下的投递 | `people-cli hire +application-list --keyword <候选人> --mine` | 先按候选人关键词收窄投递,再按投递关联职位的招聘负责人过滤当前用户 |
|
|
29
|
+
| 按 `application_id` 获取轻量投递详情 | `people-cli hire application get` | 返回 `application` 对象,可带职位信息 |
|
|
30
|
+
| 按 `application_id` 获取增强投递详情 | `people-cli hire application detail` | 返回 `application_detail`,可包含职位、人才、评估、面试等关联信息 |
|
|
31
|
+
|
|
32
|
+
### 常见问法示例
|
|
33
|
+
|
|
34
|
+
- "查这条投递的详情"
|
|
35
|
+
- "这个 `application_id` 现在在哪个阶段"
|
|
36
|
+
- "这次投递对应的职位和候选人是谁"
|
|
37
|
+
- "看这个职位下候选人的进展"
|
|
38
|
+
- "查投递关联的面试和评估信息"
|
|
39
|
+
|
|
40
|
+
### 投递查询调用流程
|
|
41
|
+
|
|
42
|
+
1. **判断列表还是详情**
|
|
43
|
+
- 用户要"职位下候选人进展 / 投递列表 / 多条投递"时,必须走 `+application-list`。
|
|
44
|
+
- 投递列表未指定社招/校招时不需要追问,直接使用 `+application-list`;Shortcut 同时查询社招和校招,并合并当前页结果。
|
|
45
|
+
- 用户明确说社招用 `--process-type social`,用户明确说校招用 `--process-type campus`,此时只查指定流程。
|
|
46
|
+
- 用户给出 `application_id` 且只要当前阶段、来源、职位等轻量信息时,走 `application.get`。
|
|
47
|
+
- 用户给出 `application_id` 且需要投递关联实体(职位、人才、评估、面试等)时,走 `application.detail`。
|
|
48
|
+
2. **执行前确认字段来源**
|
|
49
|
+
- 使用 `+application-list` 时无需先查 schema,按本文和 Shortcut help 的参数执行。
|
|
50
|
+
- 使用原生 `application.get` / `application.detail` 前执行对应 schema。
|
|
51
|
+
- 禁止直接调用原生 `application.list`;自定义字段需求使用 `--fields`,完整结构需求使用 `+application-list --view full`。
|
|
52
|
+
3. **执行查询**
|
|
53
|
+
- 列表:`people-cli hire +application-list --page-size 5 ...`
|
|
54
|
+
- 用户同时给出候选人姓名/电话/邮箱等关键词和"我负责的职位下"时,执行 `people-cli hire +application-list --keyword <候选人> --mine --fields candidate,job,stage,application_time --limit 20`。不要先 `+job-list --mine` 拉当前用户负责的职位后再按职位逐个查询投递。
|
|
55
|
+
- 已知多个职位时,重复传 `--job-id`;查询终止投递用 `--terminated`;查询"锁定在其他职位 / 被别的职位锁定 / 无法推进"用 `--locked`;查询"锁定在当前职位"用 `--lock-status 3`;不要先拉全量再按模型上下文过滤。
|
|
56
|
+
- 轻量详情:`people-cli hire application get --params '{"application_id":"<application_id>", ...}'`
|
|
57
|
+
- 增强详情:`people-cli hire application detail --params '{"application_id":"<application_id>", ...}'`
|
|
58
|
+
- `application_id` 在接口 schema 中位于 path,但在 CLI 调用时统一通过 `--params` 传入。
|
|
59
|
+
4. **按业务链路输出**
|
|
60
|
+
- 列表查询默认只输出当前页摘要;CLI/Shortcut 输出的 `page_token` 供 skill/agent 内部继续翻页,最终回复用户时只提示"还有更多数据",不要展示 `page_token`。
|
|
61
|
+
- 列表查询如需按返回字段过滤、判断是否存在、计数或聚合,使用 `+application-list` 的 `--where` / `--mode` / `--limit` / `--scan-page-limit`;不要直接调用原生 `application.list`,也不要手动循环 `page_token` 后在模型上下文中过滤。
|
|
62
|
+
- `--fields` / `--where` 优先使用稳定别名,不要手写 `application.xxx`、`talent.xxx`、`job.xxx` 这类嵌套 jq 路径;CLI 兼容 `id`、`name`、`talent_name`、`position_name`、`current_stage`、`terminate_reason` 等模型常见写法,但生成命令时仍优先写 `application_id`、`candidate`、`job`、`stage`、`termination_reason`。
|
|
63
|
+
- 未指定 `--process-type` 时,`--page-size` 控制默认返回规模,`--scan-page-limit` 分别作用于社招和校招两条分页链;触发 `--where` / `--mode` / 较大 `--limit` 时,Shortcut 会自动把底层源接口 `page_size` 调到上限后合并、裁剪或聚合。
|
|
64
|
+
- 详情查询先给出投递状态、阶段、职位、人才等主链路字段。
|
|
65
|
+
- 用户要求终止原因、来源明细、评估、面试等再展开。
|
|
66
|
+
|
|
67
|
+
### 不要误走
|
|
68
|
+
|
|
69
|
+
- 用户要的是"某次投递对应的面试记录"时,不要停留在 `application.get`,应继续走 `interview.list`。
|
|
70
|
+
- 用户要的是"我的待办任务"时,不要把投递接口当作任务接口,应改走 `+interview-task-list` 或 `+evaluation-task-list`。
|
|
71
|
+
- 用户要的是"投递列表"时,不要直接返回原生 `application.list` 的 ID 列表,必须使用 `+application-list` 补查投递信息。
|
|
72
|
+
- 用户只提供职位名、候选人名但没有足够筛选条件时,不要编造 `application_id`;先用可下推字段查询列表,或要求用户补充条件。
|
|
73
|
+
|
|
74
|
+
## 标准输入
|
|
75
|
+
|
|
76
|
+
### `+application-list`
|
|
77
|
+
|
|
78
|
+
Shortcut 参数来自 `application.list` query,并额外封装 `job-process.list` 与逐条 `application.get`:
|
|
79
|
+
|
|
80
|
+
> `+application-list` 默认 `--as user`;只有用户明确指定 `--as bot` 时才使用 bot 身份。
|
|
81
|
+
|
|
82
|
+
| 参数 | 对应接口字段 | 类型 | 说明 |
|
|
83
|
+
| --- | --- | --- | --- |
|
|
84
|
+
| `--process-type` | - | string | 社招/校招流程类型,支持 `social`/`社招`、`campus`/`校招`;未传时同时查询社招和校招 |
|
|
85
|
+
| `--job-process-id` | `process_id` | string | 高级覆盖参数;传入后跳过 `job-process.list` 流程解析 |
|
|
86
|
+
| `--stage-id` | `stage_id` | string | 按阶段过滤 |
|
|
87
|
+
| `--talent-id` | `talent_id` | string | 按人才过滤 |
|
|
88
|
+
| `--job-id` | `job_id` | repeatable string | 职位 ID;可重复传入以受控查询多个职位 |
|
|
89
|
+
| `--keyword` | `keyword` | string | 关键字过滤,可用于候选人姓名、电话、邮箱、公司、任职职位、学校等 |
|
|
90
|
+
| `--user-id-type` | query | enum | 当前用户 ID 类型,默认 `open_id`;用于 `--mine` 解析当前用户 |
|
|
91
|
+
| `--recruiter-id` | internal filter | repeatable string | 投递关联职位招聘负责人 ID 过滤 |
|
|
92
|
+
| `--mine` | internal filter | bool | 查询"我负责的职位下的投递"时使用;Shortcut 内部获取当前用户 `data.open_id` 后按投递关联职位招聘负责人过滤 |
|
|
93
|
+
| `--department` | internal filter | string | 投递关联职位部门包含过滤 |
|
|
94
|
+
| `--department-id` | internal filter | string | 投递关联职位部门 ID 过滤,必须传显式部门 ID;ID 类型跟随 `--department-id-type`,未指定时默认 `open_department_id` |
|
|
95
|
+
| `--department-id-type` | query | enum | `open_department_id` / `department_id`;使用 `--department-id` 时未显式指定则默认 `open_department_id` |
|
|
96
|
+
| `--stage` | internal filter | string | 投递阶段名称包含过滤 |
|
|
97
|
+
| `--source` | internal filter | string | 投递来源/简历来源包含过滤,默认不展示,需要展示时用 `--fields source` |
|
|
98
|
+
| `--job-category` | internal filter | string | 投递关联职位序列/职能方向包含过滤 |
|
|
99
|
+
| `--recruitment-type` | internal filter | string | 投递关联职位招聘类型/雇佣类型包含过滤 |
|
|
100
|
+
| `--active-status` | `active_status` | string | 活跃状态:`1`/`active` 活跃投递,`2`/`terminated` 非活跃投递,`3`/`all` 全部 |
|
|
101
|
+
| `--terminated` | `active_status=2` | bool | 查询已终止/非活跃投递的快捷参数 |
|
|
102
|
+
| `--lock-status` | `lock_status` | repeatable string | 锁定状态,支持 `1`/`未锁定`、`2`/`锁定在其他职位`、`3`/`锁定在当前职位` |
|
|
103
|
+
| `--locked` | `lock_status=2` | bool | 查询锁定在其他职位、被别的职位锁定、无法推进的快捷参数 |
|
|
104
|
+
| `--start-time` | internal filter | string | 最早投递时间,支持毫秒时间戳或日期/相对时间字符串 |
|
|
105
|
+
| `--end-time` | internal filter | string | 最晚投递时间,支持毫秒时间戳或日期/相对时间字符串 |
|
|
106
|
+
| `--month` | internal filter | string | 投递月份,支持 `YYYY-MM`、`本月`/`current`、`上月`/`last` |
|
|
107
|
+
| `--page-token` | `page_token` | string | 翻页 token |
|
|
108
|
+
| `--page-size` | `page_size` | int | 默认 `5`,最大 `100`;未指定 `--process-type` 时作用于每个流程 |
|
|
109
|
+
| `--update-start-time` | `update_start_time` | string | 最早更新时间,支持毫秒时间戳或日期/相对时间字符串 |
|
|
110
|
+
| `--update-end-time` | `update_end_time` | string | 最晚更新时间,支持毫秒时间戳或日期/相对时间字符串 |
|
|
111
|
+
| `--view` | - | enum | `summary` 默认裁剪视图;`full` 原始字段视图 |
|
|
112
|
+
| `--fields` | - | string | 逗号分隔字段名,如 `application_id,candidate,job,stage` |
|
|
113
|
+
| `--where` | - | string | 查询后过滤表达式,如 `job contains 测试; stage contains 面试` |
|
|
114
|
+
| `--limit` | - | int | 最多返回的匹配行数;未指定流程时默认等于 `--page-size * 流程数` |
|
|
115
|
+
| `--scan-page-limit` | - | int | 查询后过滤每个流程最多扫描源页数,默认由 Shortcut 控制 |
|
|
116
|
+
| `--mode` | - | enum | `list` / `exists` / `count` / `aggregate` |
|
|
117
|
+
| `--group-by` | - | string | `--mode aggregate` 时按哪个字段聚合,如 `stage`;支持逗号分隔多个字段,如 `job_category,termination_reason` |
|
|
118
|
+
|
|
119
|
+
> `--where` 多条件优先使用分号分隔,如 `job contains 测试; stage contains 面试`;CLI 兼容英文 `AND`,但不支持 `OR`。投递来源使用 `--source` 或稳定别名 `source` / `channel` / `resume_source`,投递阶段使用 `--stage` 或稳定别名 `stage` / `current_stage`。
|
|
120
|
+
> 需要按两个维度统计时直接使用单条命令的多字段聚合,例如 `+application-list --terminated --mode aggregate --group-by job_category,termination_reason`,不要拆成多次聚合后再在模型上下文里合并。
|
|
121
|
+
|
|
122
|
+
### 底层 `application.list` 字段参考
|
|
123
|
+
|
|
124
|
+
以下字段来自 `application.list` query,仅供理解 `+application-list` 的底层过滤能力;查询投递列表时禁止直接调用原生命令:
|
|
125
|
+
|
|
126
|
+
| 字段 | 位置 | 类型 | 说明 |
|
|
127
|
+
| --- | --- | --- | --- |
|
|
128
|
+
| `process_id` | query | string | 招聘流程 ID,必填;通过 `job-process.list` 获取 |
|
|
129
|
+
| `stage_id` | query | string | 按阶段过滤 |
|
|
130
|
+
| `talent_id` | query | string | 按人才过滤 |
|
|
131
|
+
| `active_status` | query | string | 活跃状态:`1` 活跃投递,`2` 非活跃投递,`3` 全部 |
|
|
132
|
+
| `job_id` | query | string | 职位 ID |
|
|
133
|
+
| `keyword` | query | string | 关键字过滤,可用于候选人姓名、电话、邮箱、公司、任职职位、学校等 |
|
|
134
|
+
| `lock_status` | query | list | 锁定状态:`1` 未锁定,`2` 锁定在其他职位,`3` 锁定在当前职位 |
|
|
135
|
+
| `page_token` | query | string | 翻页 token |
|
|
136
|
+
| `page_size` | query | int | skill 默认 `5`,上限以当前 CLI help 为准 |
|
|
137
|
+
| `update_start_time` | query | string | 最早更新时间,支持毫秒时间戳或日期/相对时间字符串 |
|
|
138
|
+
| `update_end_time` | query | string | 最晚更新时间,支持毫秒时间戳或日期/相对时间字符串 |
|
|
139
|
+
|
|
140
|
+
### `application.get`
|
|
141
|
+
|
|
142
|
+
以下字段来自 `application.get`:
|
|
143
|
+
|
|
144
|
+
> 接口 schema 中的字段位置反映 OpenAPI 定义;在 `people-cli` 实际调用时,以下字段统一通过 `--params` 传入。
|
|
145
|
+
|
|
146
|
+
| 字段 | 位置 | 类型 | 说明 |
|
|
147
|
+
| --- | --- | --- | --- |
|
|
148
|
+
| `application_id` | path | string | 投递 ID,必填 |
|
|
149
|
+
| `user_id_type` | query | string | 用户 ID 类型 |
|
|
150
|
+
| `options` | query | list | 请求控制参数(如 `with_job`) |
|
|
151
|
+
|
|
152
|
+
### `application.detail`
|
|
153
|
+
|
|
154
|
+
以下字段来自 `application.detail`:
|
|
155
|
+
|
|
156
|
+
> 接口 schema 中的字段位置反映 OpenAPI 定义;在 `people-cli` 实际调用时,以下字段统一通过 `--params` 传入。
|
|
157
|
+
|
|
158
|
+
| 字段 | 位置 | 类型 | 说明 |
|
|
159
|
+
| --- | --- | --- | --- |
|
|
160
|
+
| `application_id` | path | string | 投递 ID,必填 |
|
|
161
|
+
| `user_id_type` | query | string | 用户 ID 类型 |
|
|
162
|
+
| `department_id_type` | query | string | 部门 ID 类型;`+application-list` 补查投递时跟随 `--department-id-type`,未指定时默认 `open_department_id` |
|
|
163
|
+
| `job_level_id_type` | query | string | 职级 ID 类型 |
|
|
164
|
+
| `job_family_id_type` | query | string | 序列 ID 类型 |
|
|
165
|
+
| `employee_type_id_type` | query | string | 人员类型 ID 类型 |
|
|
166
|
+
| `options` | query | list | 控制返回哪些关联实体信息 |
|
|
167
|
+
|
|
168
|
+
## 标准输出
|
|
169
|
+
|
|
170
|
+
### `+application-list`
|
|
171
|
+
|
|
172
|
+
Shortcut 默认以紧凑表格输出摘要字段,并保留后续下钻需要的内部 ID,避免返回内容过多造成上下文压力:
|
|
173
|
+
|
|
174
|
+
| 字段 | 说明 |
|
|
175
|
+
| --- | --- |
|
|
176
|
+
| `Application ID` | 投递 ID,供后续 `application get/detail`、`+interview-list`、`+evaluation-list` 等内部调用使用;回复用户时默认不展示 |
|
|
177
|
+
| `Candidate Name` | 候选人姓名,以纯文本展示 |
|
|
178
|
+
| `Talent ID` | 人才 ID,供后续 `+talent-detail` 使用;回复用户时默认不展示 |
|
|
179
|
+
| `Job ID` | 职位 ID,供后续 `+job-detail` 使用;回复用户时默认不展示 |
|
|
180
|
+
| `Job Name` | 职位名称 |
|
|
181
|
+
| `Department ID` | 职位部门 ID,供显式 `--department-id` 过滤使用;回复用户时默认不展示 |
|
|
182
|
+
| `Application Time` | 投递时间 |
|
|
183
|
+
| `Stage ID` | 投递阶段 ID,供后续阶段相关过滤或下钻使用;回复用户时默认不展示 |
|
|
184
|
+
| `Application Stage` | 投递阶段 |
|
|
185
|
+
| `Active Status` | 活跃/终止状态;可用稳定别名 `active_status` 做 `--where`/`--group-by`,默认不展示 |
|
|
186
|
+
| `Source` | 投递来源/简历来源;可用稳定别名 `source`/`channel`/`resume_source` 做过滤或显式展示,默认不展示 |
|
|
187
|
+
| `Termination Type` | 终止类型;可用稳定别名 `termination_type` 做过滤或聚合,默认不展示 |
|
|
188
|
+
| `Termination Reason` | 终止原因;可用稳定别名 `termination_reason` 做过滤或聚合,默认不展示 |
|
|
189
|
+
| `Termination Note` | 终止备注;可用稳定别名 `termination_note` 做过滤,默认不展示 |
|
|
190
|
+
| `Lock Status` | 锁定状态;枚举 `1` 未锁定、`2` 锁定在其他职位、`3` 锁定在当前职位;可用稳定别名 `lock_status` / `locked` 做过滤,默认不展示,显式需要时用 `--fields candidate,job,stage,lock_status` |
|
|
191
|
+
|
|
192
|
+
传 `--view full` 时输出完整 `Application` 与 `Talent` 补查结果,用于排障或深挖详情。无论是否裁剪,Shortcut 返回中都应保留必要 ID;最终回复用户时遵守主 skill 的"默认不向用户展示 ID 类字段"规则。候选人姓名使用纯文本展示。
|
|
193
|
+
|
|
194
|
+
> 默认字段裁剪后仍保留后续调用需要的 `Application ID`、`Talent ID`、`Job ID`、`Stage ID`。这些 ID 可以被 skill/agent 内部继续传给面试、评估、笔试等 Shortcut,但最终回复用户时默认不展示。
|
|
195
|
+
|
|
196
|
+
### 底层 `application.list`
|
|
197
|
+
|
|
198
|
+
接口返回投递 ID 列表和分页状态。`items[]` 的精确字段以当前 `people-cli schema hire.application.list` 为准;原生结果仅作为 `+application-list` 的底层输入,禁止直接调用或展示给用户。底层查询必须携带 `process_id`。
|
|
199
|
+
|
|
200
|
+
分页状态字段(CLI/Shortcut 需要输出给 skill/agent 内部判断和续查,默认不对用户展示 `page_token`):
|
|
201
|
+
|
|
202
|
+
| 字段 | 类型 | 说明 |
|
|
203
|
+
| --- | --- | --- |
|
|
204
|
+
| `has_more` | bool | 是否有下一页 |
|
|
205
|
+
| `page_token` | string | 内部翻页 token,CLI 可见,最终回复用户时默认隐藏 |
|
|
206
|
+
|
|
207
|
+
> 未指定 `--process-type` 时,社招和校招分页 token 相互独立。Shortcut 会分别提示 `Social has more` / `Campus has more`;继续翻页时必须按提示带上对应 `--process-type social|campus` 和 `--page-token`,不要把某个流程的 token 用到另一个流程。
|
|
208
|
+
|
|
209
|
+
### `application.get`
|
|
210
|
+
|
|
211
|
+
接口返回 `application` 对象,优先输出以下字段:
|
|
212
|
+
|
|
213
|
+
| 字段 | 类型 | 说明 |
|
|
214
|
+
| --- | --- | --- |
|
|
215
|
+
| `application.id` | string | 投递 ID,默认不展示 |
|
|
216
|
+
| `application.job_id` | string | 职位 ID,默认不展示 |
|
|
217
|
+
| `application.talent_id` | string | 人才 ID,默认不展示 |
|
|
218
|
+
| `application.active_status` | int | 活跃状态 |
|
|
219
|
+
| `application.delivery_type` | int | 投递方式 |
|
|
220
|
+
| `application.stage` | object | 当前投递阶段 |
|
|
221
|
+
| `application.stage_time_list` | array | 阶段变更时间线 |
|
|
222
|
+
| `application.resume_source_info` | object | 投递来源 |
|
|
223
|
+
| `application.termination_type` | int | 终止原因类型 |
|
|
224
|
+
| `application.termination_reason_list` | array | 终止原因列表 |
|
|
225
|
+
| `application.creator_id` | string | 投递创建人 |
|
|
226
|
+
| `application.job_info` | object | 投递职位信息(需按 schema 开启) |
|
|
227
|
+
|
|
228
|
+
### `application.detail`
|
|
229
|
+
|
|
230
|
+
接口返回 `application_detail` 对象,按需展开以下结构:
|
|
231
|
+
|
|
232
|
+
| 字段 | 类型 | 说明 |
|
|
233
|
+
| --- | --- | --- |
|
|
234
|
+
| `application_detail.basic_info` | object | 投递基本信息 |
|
|
235
|
+
| `application_detail.job` | object | 投递职位信息 |
|
|
236
|
+
| `application_detail.talent` | object | 投递人才信息 |
|
|
237
|
+
| `application_detail.evaluations` | array | 投递评估信息 |
|
|
238
|
+
| `application_detail.interview_aggregation` | object | 投递面试信息 |
|
|
239
|
+
|
|
240
|
+
## 所需权限
|
|
241
|
+
|
|
242
|
+
| 方法 | Scope |
|
|
243
|
+
| --- | --- |
|
|
244
|
+
| `application.list` | `hire:job_process:readonly`、`hire:application:readonly`、`hire:talent:readonly`、`hire:job.composite_info:readonly` |
|
|
245
|
+
| `application.get` | `hire:application:readonly` |
|
|
246
|
+
| `application.detail` | `hire:application:readonly` |
|
|
247
|
+
|
|
248
|
+
## 示例
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# 原生详情字段不确定时再查看 schema
|
|
252
|
+
people-cli schema hire.application.get
|
|
253
|
+
people-cli schema hire.application.detail
|
|
254
|
+
|
|
255
|
+
# 查询投递列表,并自动补查投递信息
|
|
256
|
+
people-cli hire +application-list \
|
|
257
|
+
--job-id 7334134355464633 \
|
|
258
|
+
--keyword 张三 \
|
|
259
|
+
--page-size 5
|
|
260
|
+
|
|
261
|
+
# 查询某候选人在我负责职位下的投递,先 keyword 收窄再按职位负责人过滤
|
|
262
|
+
people-cli hire +application-list \
|
|
263
|
+
--keyword 蒋零零 \
|
|
264
|
+
--mine \
|
|
265
|
+
--fields candidate,job,stage,application_time \
|
|
266
|
+
--limit 20
|
|
267
|
+
|
|
268
|
+
# 查看某职位各阶段投递数量,Shortcut 会自动解析社招/校招流程并受控扫描
|
|
269
|
+
people-cli hire +application-list \
|
|
270
|
+
--job-id 7334134355464633 \
|
|
271
|
+
--mode aggregate \
|
|
272
|
+
--group-by stage \
|
|
273
|
+
--scan-page-limit 10
|
|
274
|
+
|
|
275
|
+
# 按来源、阶段、部门和投递月份过滤,来源需要展示时显式 --fields source
|
|
276
|
+
people-cli hire +application-list \
|
|
277
|
+
--source 内推 \
|
|
278
|
+
--stage 面试 \
|
|
279
|
+
--department Brand \
|
|
280
|
+
--month 本月 \
|
|
281
|
+
--fields candidate,job,stage,source \
|
|
282
|
+
--limit 5
|
|
283
|
+
|
|
284
|
+
# 查某职位已终止候选人摘要
|
|
285
|
+
people-cli hire +application-list \
|
|
286
|
+
--job-id 7334134355464633 \
|
|
287
|
+
--terminated \
|
|
288
|
+
--limit 5
|
|
289
|
+
|
|
290
|
+
# 查多个职位下锁定在其他职位、无法继续推进的投递
|
|
291
|
+
people-cli hire +application-list \
|
|
292
|
+
--job-id 7334134355464633 \
|
|
293
|
+
--job-id 7334134355464999 \
|
|
294
|
+
--locked \
|
|
295
|
+
--fields candidate,job,stage,lock_status \
|
|
296
|
+
--limit 5
|
|
297
|
+
|
|
298
|
+
# 查锁定在当前职位的投递
|
|
299
|
+
people-cli hire +application-list \
|
|
300
|
+
--job-id 7334134355464633 \
|
|
301
|
+
--lock-status 3 \
|
|
302
|
+
--fields candidate,job,stage,lock_status \
|
|
303
|
+
--limit 5
|
|
304
|
+
|
|
305
|
+
# 聚合近一个月负责职位下被终止候选人的 top 终止原因
|
|
306
|
+
people-cli hire +application-list \
|
|
307
|
+
--job-id 7334134355464633 \
|
|
308
|
+
--terminated \
|
|
309
|
+
--mode aggregate \
|
|
310
|
+
--group-by termination_reason \
|
|
311
|
+
--scan-page-limit 10
|
|
312
|
+
|
|
313
|
+
# 查询轻量投递详情
|
|
314
|
+
people-cli hire application get --params '{"application_id":"7046315599510833452","user_id_type":"open_id"}'
|
|
315
|
+
|
|
316
|
+
# 查询增强投递详情
|
|
317
|
+
people-cli hire application detail --params '{"application_id":"7046315599510833452","user_id_type":"open_id","options":["with_job","with_talent","with_interview","with_evaluation"]}'
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## 选路提醒
|
|
321
|
+
|
|
322
|
+
- 没有 `application_id` 时不要直接调 `application.get` 或 `application.detail`。
|
|
323
|
+
- 用户要多条投递时必须使用 `+application-list`,再按需要追查单条详情。
|
|
324
|
+
- `application.detail` 返回更重;用户只要当前阶段或来源时,优先用 `application.get`。
|