01 结构化招聘Hiring Copilot → Hiring Agent

结构化招聘工作台与 Agent

归属:附录 · 方法学习复刻 — 不是字节/腾讯/理想线上交付。字节实习主线见 字节 · 人才量化。

开岗先建评分卡;初筛每一分可追溯到简历原文;面试独立反馈;用漏斗与校准反证评分卡。

Demo · Hiring Agent Demo · Hiring Copilot Agent 测试 Agent 仓库

1. 架构图

当前:Hiring Copilot(看板 + 规则引擎)

flowchart LR UI[index.html 四页签] --> APP[app.js] APP --> ENG[engine.js Hire.*] ENG --> DATA[data.js 职位/评分卡/候选人] ENG --> LS[(localStorage)] APP --> UI subgraph pages [页面] P1[候选人看板] P2[我的面试] P3[职位与评分卡] P4[招聘分析] end UI --- P1 & P2 & P3 & P4

下一刀:Hiring Agent(对话调用同一引擎)

sequenceDiagram participant U as 用户 participant A as Hiring Agent participant H as Hire 引擎 participant S as Stats Kit可选 U->>A: 帮我处理超时简历 A->>H: slaBreaches(state, today) H-->>A: 超时列表 A->>H: screen(cand, job) H-->>A: 分数+证据 A->>H: message(invite, cand) H-->>A: 邀约模板 A-->>U: 建议推进/淘汰 + 引用证据 Note over A,H: 反馈未齐 / 名额已满 / 需复盘会 → 硬拒绝 A-.->S: 开实验前 sample_size

2. API / 引擎调用(无后端 HTTP,浏览器内)

公开版不调云端 LLM API。产品化时可把下表封成 POST /v1/tools/*,鉴权后由 Agent 调。

调用入参出参要点护栏
Hire.screen(cand, job, weights?)候选人、职位、可选权重total、attrs[].evidence、rec、knockouts硬性条件不符→不推荐
Hire.advance(state, id, date)状态、候选人、日期更新 history反馈未齐 / 非「建议录用」/ 超名额 → throw
Hire.reject(state, id, reason, date)淘汰原因枚举status=rejected原因必选
Hire.submitFeedback(state, fb)维度分、overall、note写入 feedback须在 panel;note≥15 字;不可重复
Hire.canSeeOthers(...)viewerbool未提交不可见;HM 例外
Hire.aggregate(fbs)反馈数组decision / flags分歧≥2 或有 1 分→复盘会
Hire.analytics(state, jobId)职位漏斗、渠道、校准、bins—
Hire.message(kind, cand, extra)invite/reject/offer模板字符串拒信不写原因细节
Hire.slaBreaches(state, today)今天超时列表—

产品化 HTTP 建议(尚未实现)

POST /v1/jobs/{id}/screen      { candidate_id }
POST /v1/candidates/{id}/advance
POST /v1/candidates/{id}/reject { reason }
POST /v1/interviews/{id}/feedback
GET  /v1/jobs/{id}/analytics
POST /v1/agent/chat             { message, actor_id }  → tool_calls[]

3. 技术栈梳理

层选型原因
UI原生 HTML/CSS/JS零构建,Pages 即演示
状态localStorage无后端也能推进/重置
引擎纯函数 Hire.*tests.html 可测
数据种子 RNG 生成 54 人可复现管道分布
未用React / 云 LLM / DB优先可打开、可自测

4. Best practices

5. Demo 路径(建议 3 分钟)

  1. 打开看板 → 点超时候选人 → 看证据高亮与 knockouts。
  2. 切「我的面试」→ 不写满 15 字提交 → 看报错;写完后解锁他人反馈。
  3. 「职位与评分卡」拖权重 → 右侧名次箭头变化。
  4. 「招聘分析」看面试官偏宽松/偏严与分档通过率。
盲筛开关打开后,全页隐藏姓名/性别/年龄/学校——演示反偏见设计。