HR垂直代理套件
面向人力资源团队的开源、预构建的MCP代理模板,涵盖了从招聘到入职的整个招聘生命周期。将这些放入任何兼容MCP的客户端(Claude Desktop、自定义代理),立即开始自动化人力资源工作流程。
为什么存在:埃森哲对特定行业的人力资源人工智能收取企业价格。开源生态系统没有可比性。这个工具包为任何团队提供了一个生产就绪的起点,即真正的人工智能生成,而不是字符串模板。
______________________________________________________________________
里面是什么
| 组件 | 计数 | 描述 |
|---|---|---|
| MCP服务器 | 3 | 招聘、面试、入职 |
| 工具 | 12 | 每台服务器4个工具(9个LLM驱动,3个基于规则) |
| 提示模板 | 9 | 常见HR代理角色的系统提示 |
| 工作流定义 | 3 | 编排YAML文件 |
| 评估套件 | 3 | 20+可执行测试场景 |
______________________________________________________________________
MCP服务器
@hr-kit/recruiting
采购和筛选阶段的工具:
| 工具 | 类型 | 描述 |
|---|---|---|
parse_resume | 基于规则 | 从原始简历文本中提取结构化联系人、工作经历、教育和技能 |
score_candidate | LLM | 根据评分标准给候选人0-100分——理解语义等价性(Python≈py) |
generate_job_description | LLM | 在Markdown中生成一个感知偏见、音调匹配的JD——实际上是写,不填充模板 |
detect_bias | 基于规则 | 扫描HR文本,查找6个类别中30多个带有严重性评级和重写的有偏见的短语 |
@hr-kit/interviewing
评估阶段的工具:
| 工具 | 类型 | 描述 |
|---|---|---|
generate_interview_questions | LLM | 根据JD和候选人的个人资料,构建一个基于能力的问题指南 |
evaluate_response | LLM | 使用全语义STAR分析对候选人的回答进行评分(1-5分制) |
structure_feedback | LLM | 将原始面试官笔记转化为可校准的结构化反馈 |
check_illegal_questions | 基于规则 | 针对美国/英国/欧盟/加拿大/澳大利亚就业法的审计面试问题 |
@hr-kit/onboarding
入职阶段的工具:
| 工具 | 类型 | 描述 |
|---|---|---|
create_onboarding_plan | LLM | 制定个性化的4周角色特定入职计划(每周至少5项任务) |
generate_welcome_email | LLM | 起草一封带有音调校准的个性化欢迎电子邮件(热情/专业/休闲) |
answer_policy_question | LLM | 与RAG一起回答人力资源政策问题,包括提供的文件、信心评分和升级 |
create_30_60_90_plan | LLM | 制定一个与公司实际目标相关的基于里程碑的30-60-90天计划 |
______________________________________________________________________
快速开始
先决条件
- Node.js≥20
- npm≥9
- 人类API钥匙(用于LLM动力工具)
1.安装和构建
git clone https://github.com/UmarbekFU/hr-vertical-agent-kit
cd hr-vertical-agent-kit
npm install
npm run build2.设置API密钥
export ANTHROPIC_API_KEY=sk-ant-...3个基于规则的工具(parse_resume, detect_bias, check_illegal_questions)在没有API密钥的情况下工作。如果钥匙丢失,9个LLM电动工具将返回一个明确的错误。
3.测试服务器
# List tools on the recruiting server
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
| node packages/recruiting/dist/index.js
# Test a rule-based tool (no API key needed)
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}\n{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}\n{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"detect_bias","arguments":{"text":"We need a rockstar ninja developer. He will dominate the team.","bias_categories":["gender"],"severity_threshold":"all"}}}\n' \
| node packages/recruiting/dist/index.js______________________________________________________________________
Claude桌面集成
添加到您的 claude_desktop_config.json (~/Library/Application Support/Claude/ 在macOS上):
{
"mcpServers": {
"hr-recruiting": {
"command": "node",
"args": ["/path/to/hr-vertical-agent-kit/packages/recruiting/dist/index.js"],
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
},
"hr-interviewing": {
"command": "node",
"args": ["/path/to/hr-vertical-agent-kit/packages/interviewing/dist/index.js"],
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
},
"hr-onboarding": {
"command": "node",
"args": ["/path/to/hr-vertical-agent-kit/packages/onboarding/dist/index.js"],
"env": { "ANTHROPIC_API_KEY": "sk-ant-..." }
}
}
}然后重新启动Claude Desktop并尝试:
*“使用parse_resume工具从简历文本中提取信息:\[粘贴简历\]”*
______________________________________________________________________
跑步逃生
eval运行器将每个MCP服务器作为子进程生成,发送JSON-RPC工具调用,并对输出运行结构化断言。
# Run a single suite
npm run eval:recruiting
npm run eval:interviewing
npm run eval:onboarding
# Run all three suites
npm run eval输出示例:
recruiting-server-evals Behavioral evaluation suite for the hr-recruiting MCP server
────────────────────────────────────────────────────────────────────────
✓ Parse a well-formed software engineer resume (4ms)
✓ Parse a sparse resume gracefully (1ms)
✓ Detect gendered language in job description (2ms)
✓ Report no bias in inclusive job description (1ms)
✓ Score a candidate who meets all must-have criteria (2341ms)
✓ Score a candidate who is missing critical qualifications (1876ms)
✓ Generated JD includes DEI statement when requested (3102ms)
✓ Generated JD omits DEI statement when opted out (2890ms)
────────────────────────────────────────────────────────────────────────
8/8 passed基于规则的工具可以立即运行。LLM工具每个需要1-4秒,需要 ANTHROPIC_API_KEY.
______________________________________________________________________
项目结构
hr-vertical-agent-kit/
├── packages/
│ ├── core/ # Shared: Anthropic SDK client, callClaudeJSON, toolSuccess/toolError
│ ├── recruiting/ # MCP Server 1 — 4 tools
│ ├── interviewing/ # MCP Server 2 — 4 tools
│ └── onboarding/ # MCP Server 3 — 4 tools
├── scripts/
│ └── eval-runner.ts # Executable eval runner (tsx, no build step)
├── prompts/ # 9 system prompt templates
│ ├── recruiting/
│ ├── interviewing/
│ └── onboarding/
├── workflows/ # 3 orchestration workflow definitions
│ ├── resume-screening-pipeline.yaml
│ ├── interview-pipeline.yaml
│ └── new-hire-onboarding.yaml
├── evals/ # 3 evaluation suites (20+ scenarios)
│ ├── recruiting.eval.yaml
│ ├── interviewing.eval.yaml
│ └── onboarding.eval.yaml
├── package.json # npm workspace root
└── tsconfig.base.json # shared TypeScript config______________________________________________________________________
示例工作流
屏幕50将在5分钟后恢复
You: Screen these 50 resumes against this job description. Bias-check the JD first,
then parse and score all candidates. Give me a top-10 shortlist.
Agent: [uses detect_bias → parse_resume × 50 → score_candidate × 50 → ranks results]制定合规的面试指南
You: I'm interviewing a senior PM candidate tomorrow for a behavioral round.
Generate 8 questions on leadership and problem-solving, then check them for legal compliance.
Agent: [uses generate_interview_questions → check_illegal_questions → delivers compliant guide]在2分钟内为新员工入职
You: Sarah starts Monday as our new Head of Design. She's remote, senior-level.
Generate her welcome email, 4-week onboarding plan, and 30-60-90 plan.
Agent: [uses generate_welcome_email + create_onboarding_plan + create_30_60_90_plan]______________________________________________________________________
提示库
中的每个提示模板 prompts/ 是一个即用型系统提示,带有:
- YAML前端内容(元数据、变量、合规性说明)
{{ variable }}用于自定义的占位符- 内置护栏和合规指南
用法:将提示正文复制到代理的系统提示中,用变量替换您的公司/角色。
______________________________________________________________________
工作流
工作流中的YAML文件 workflows/ 定义将MCP服务器链接在一起的多步骤人力资源流程。每个工作流都指定:
- 输入:编排代理需要提供什么
- 步骤:调用哪个服务器/工具,支持foreach和depends_on
- 守卫:在继续之前阻止或警告的条件(例如高偏差分数)
- 输出:工作流返回什么
这些是定义——实现一个执行器(Python、TypeScript或您首选的代理框架)来运行它们。
______________________________________________________________________
法律与合规说明
- 这是一种工具,不是法律顾问。 所有偏差检测和合规性检查都是建议性的。在用于生产雇佣之前,请咨询您所在司法管辖区的合格劳动法顾问。
- 需要人工审查。 未经人工审查,任何工具输出都不应作为最终的招聘决定。
- 管辖权问题。 就业法差异很大。这
check_illegal_questions该工具涵盖美国、英国、欧盟、加拿大和澳大利亚——明确指定您的管辖区。 - 数据隐私:在没有适当的数据处理控制的情况下,不要将PII传递给生产中的这些工具。
______________________________________________________________________
扩展此套件
向现有服务器添加新工具
- 创建
packages//src/tools/.ts - 实施
export async function handle(args): Promise使用callClaudeJSON从@hr-kit/core - 注册于
packages//src/index.ts随着server.tool(...) - 将场景添加到
evals/.eval.yaml
添加新垂直
- 创建
packages//具有相同的结构 - 添加
workspaces根package.json - 遵循服务器/工具/提示/工作流/评估模式
______________________________________________________________________
堆栈
- 人工智能:克劳德·维亚
@anthropic-ai/sdk(型号:claude-sonnet-4-6) - 运行时:Node.js 20+,TypeScript 5.4
- MCP-SDK:
@modelcontextprotocol/sdk^1.6.1 - 验证:佐德^3.25
- Eval跑步者:
tsx(无构建步骤) - 模块系统:NodeNext(ES2022)
- 构建:
tsc每个包,npm工作区根目录
______________________________________________________________________
*作为100天项目挑战的第10天建造。*
