interview-schedule · git:20260714.061daeb · 2026-07-14 · sha256 c3752e2861c05c1e

interview-schedule git:20260714.061daebA

Immutable. This exact content is served forever at /api/v1/blob/c3752e2861c05c1e.

---
name: interview-schedule
description: >
  面试预约:给进入面试流程的候选人创建飞书日历日程(自带视频会议链接)、拉面试官进会、
  生成给候选人的邀约话术,并同步面试档案与台账。当用户说"约一下 XX 的面试"、
  "给张三安排二面"、"明天下午约个面试,面试官是 XX"、"XX 的面试改期/取消"时使用。
  需要 lark-cli(飞书);没有则降级为输出手动操作清单,档案台账照常同步。
---

# 面试预约

把"约面试"从口头变成一次做全:**日历日程(含飞书视频会议)+ 面试官进会 + 候选人邀约话术 + 档案台账同步**。

## 前置

- `lark-cli` 已配置(飞书日程/会议是本流程的本体)。**没有 → 走文末"无飞书降级"**,其余照做。
- 候选人应已在台账/`03-interview/` 里。不在 → 先补档(走 `skills/resume-review/SKILL.md` 或手动建档),别凭空约。

## 流程

### 1. 收集要素(缺什么问什么,一次问全)

- **候选人与轮次**:从 `03-interview/<姓名>.md` 读基本信息和已有面试记录,判断这是第几轮。
- **面试官**:姓名(可多人)。
- **时间与时长**:用户给了就用;只给模糊范围("明天下午")→ 先查面试官忙闲再提议。时长默认 60 分钟。
- **形式**:默认视频面(飞书会议);现场面则不需要会议链接,改在描述里写清地点。

### 2. 面试官姓名 → 飞书 ID

`lark-cli contact` 按姓名解析 open_id(`ou_` 前缀;命令细节 `lark-cli contact --help`)。
同名多人 → 列出部门让用户选,别猜。

### 3. 查忙闲,定时间

```bash
lark-cli calendar +freebusy --start <日期> --end <日期> --user-id <ou_面试官> --as user
```
逐个面试官查,找共同空闲。用户给的时间撞了别人的日程 → 报冲突并给 2-3 个可选时段,让用户定。

### 4. 建日程(写操作,建前必须把要素给用户过目确认)

确认口径一句话:"`<日期时间>`,`<候选人>`(`<岗位>` `<轮次>`),面试官 `<名单>`,视频面试,建吗?"

```bash
lark-cli calendar +create --as user \
  --summary "面试:<岗位>-<候选人姓名>(<轮次>)" \
  --start "<ISO 8601,如 2026-07-15T14:00+08:00>" \
  --end   "<ISO 8601>" \
  --attendee-ids <ou_面试官1>,<ou_面试官2> \
  --description "<候选人一句话背景 + 初筛待验证点(从档案抄)+ 档案路径 + JD 要点>"
```

要点:
- `+create` **默认自带飞书视频会议**,日程里就有会议链接,面试官点日程即可入会——不用单独建会。
- description 是给面试官的"面前必读":把档案里的**待验证点**抄进去,面试官不用翻文件。
- 候选人一般不是公司飞书用户,**不加进参会人**;把会议链接发给他即可。若候选人有邮箱且用户要求日历直邀,
  可用完整 API 以 `third_party`(邮箱)类型添加。

### 5. 通知候选人(对外动作,默认不代发)

从创建结果取会议链接(丢了用 `calendar +get` 或 `+meeting` 查),生成邀约话术:

> 您好,`<岗位>` 岗位约您 `<日期时间>` 视频面试(约 `<时长>`),面试官是`<称谓即可,不必全名>`。
> 会议链接:`<链接>`。请提前测试摄像头麦克风;如时间不便请回复调整。

**默认把话术交给用户自己发**(Boss/猎聘/微信渠道由用户定)。用户明确说"帮我在 Boss 上发给他"
才代发,发完回报。这是对外不可逆动作,规矩同 `recruit-daily` 打招呼。

### 6. 同步档案与台账

- `03-interview/<姓名>.md`「面试安排」表加一行:轮次|时间|形式|面试官|状态=已约。
- `02-sourcing/dedup-ledger.csv`:状态推进为 `已约谈`(首轮)或保持 `面试中`(后续轮)。

### 完成判据

日程已建且含会议链接、每位面试官都在参会人里、候选人邀约话术已交付(或经确认已代发)、
档案排期表和台账状态都已更新——五样缺一即未完成。

## 改期 / 取消

- 先 `calendar +search-event --query "<候选人名>"` 定位 event_id。
- 改期:`calendar +update` 改时间(面试官会收到变更通知);取消:删除日程。
- **同步三处**:档案排期表该行状态、台账状态、候选人通知(新话术给用户发)。漏候选人通知 = 放鸽子。

## 无飞书降级(没装 lark-cli)

输出一份"手动操作包",其余步骤照常:
1. 给用户的建会清单:在飞书客户端手动建 `<时间>` 的日程(开启视频会议)、邀请 `<面试官名单>`;
2. 给面试官的面前必读(候选人背景 + 待验证点);
3. 给候选人的邀约话术(留 `<会议链接>` 占位,用户建完会填上);
4. 档案排期表与台账照常更新,形式列注明"手动建会"。

## 边界

- 面试**评价**不归本流程:面试完的反馈回流到 `03-interview/<姓名>.md` 的评价表。
- offer、谈薪不归本流程,逐案等用户指令。
- 不群发、不自动跟催候选人;跟催话术可以代拟,发送由用户拍板。