HR代理工具包

开源、预构建的MCP代理模板,涵盖从招聘到入职的完整HR工作流程自动化。

  • by UmarbekFU
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 UmarbekFU/hr-vertical-agent-kit

使用说明

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 build

2.设置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传递给生产中的这些工具。

扩展此套件

向现有服务器添加新工具

  1. 创建 packages/<server>/src/tools/<tool-name>.ts
  2. 实施 export async function handle<ToolName>(args): Promise<CallToolResult> 使用 callClaudeJSON 从 @hr-kit/core
  3. 注册于 packages/<server>/src/index.ts 随着 server.tool(...)
  4. 将场景添加到 evals/<server>.eval.yaml

添加新垂直

  1. 创建 packages/<vertical>/ 具有相同的结构
  2. 添加 workspaces 根 package.json
  3. 遵循服务器/工具/提示/工作流/评估模式

堆栈

  • 人工智能:克劳德·维亚 @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天建造。