# Interview Schedule

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

- Skill: `viy1204/interview-schedule` (Agent Skill)
- Install (CLI): `npx skillmds@latest add viy1204/interview-schedule`
- Raw SKILL.md: https://api.skillmd.com/api/skills/viy1204/interview-schedule/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Viy1204 (https://skillmd.com/u/viy1204)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/viy1204/interview-schedule

---


# 面试预约

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

## 前置

- `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. 给用户的建会清单：在你用的会议工具（飞书/腾讯会议/Zoom）建 `<时间>` 会议、邀请 `<面试官名单>`；
2. 给面试官的面前必读（候选人背景 + 待验证点）；
3. 给候选人的邀约话术（留 `<会议链接>` 占位，用户建完会填上）；
4. 档案排期表与台账照常更新，形式列注明"手动建会"。

## 边界

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

