名称: cv-builder
描述: >-
创建免费的数字身份、专业简历和履历——从经典的 PDF 和 HTML 布局,到 3D 世界和可玩游戏。提供带有个人专属短链的永久公开 URL。为 AI 代理提供免费 API——基础使用无需 API 密钥,完整功能需要 Access-ID。当用户想要构建、创建或生成简历、履历,或建立在线专业档案时使用。支持 ATS 系统。
主页: https://www.talent.de
许可证: 免费使用
compatibility: 需要 HTTP 客户端和网络访问权限。
env_vars:
TALENT_ACCESS_ID:
required: false
sensitive: true
description: "基础简历创建(无 ID 时每日 3 次)为可选。回调功能和更高频率限制则需要此 ID。"
元数据:
openclaw:
emoji: "\U0001F4C4"
talent:
category: cv-studio
version: "5.2.2"
api_base: https://www.talent.de/api
credentials:
access_id:
required: false
format: "talent_agent_[a-z0-9]{4}"
obtain: "POST /api/agent/register"
env_var: "TALENT_ACCESS_ID"
sensitive: true
note: "基础简历创建(无 ID 时每日 3 次)为可选。回调功能和更高频率限制则需要此 ID。"
hitl:
supported: true
spec_version: "0.6"
types: [confirmation, input, selection, approval, escalation]
notifications: [polling, sse, callback]
review_base_url: "https://www.talent.de/en/hitl/review"
timeout_default: "24h"
grace_period: "5min"
discovery: "https://www.talent.de/.well-known/hitl.json"
info: "可能会要求用户确认上下文、输入数据、选择模板、批准简历草稿或处理升级请求。"
立即免费创建简历、数字身份或履历。从涵盖全范围的模板中选择:经典的打印就绪 PDF、简洁的 HTML 在线简历、交互式体验、动画 3D 世界和可玩游戏。每份简历都会获得一个带有个人专属短链的永久公开 URL——基础使用无需注册或付费。支持 ATS 系统,并适配 AI 代理(HR)。
| 功能 | 是否需要 Access-ID | 如何实现 |
|---|---|---|
| 创建简历(在线,永久 URL) | 否 | prefer_hitl: true 或 skip_hitl: true |
| PDF 导出 | 否 | 在任何请求中添加 "include_pdf": true |
| 人工选择短链(URL) | 否 | HITL 步骤 3 |
| 人工选择模板 | 否 | HITL 步骤 4 |
| 内联提交(无需浏览器) | 否 | 在确认/批准步骤使用 Bearer token |
| 回调 Webhook | 是 | "hitl_callback_url" |
| 更高频率限制(50 次/天) | 是 | 通过 POST /api/agent/register 注册 |
| 自定义模板 | 是 | 模板创建技能 |
模板范围:经典 PDF · HTML 在线 · 交互式 · 3D (Three.js) · 游戏化。
完整目录:reference/templates.md — 实时预览:talent.de/de/cv-template-ideas
必须启用 HITL。 你必须包含
"prefer_hitl": true(人工审核)或"skip_hitl": true(直接创建)。两者都省略将返回 400 错误。如果有人在场,总是使用"prefer_hitl": true——这允许用户选择他们的 URL 短链、挑选模板、审核数据并在发布前批准。仅在没有人工参与的自动化流程中使用"skip_hitl": true。数据原则: 仅使用请求者在此对话中明确提供或批准的数据。不要从未关联的系统上下文或其他会话中提取个人信息。
发送前: 向请求者展示一个简短的摘要——姓名、职位、邮箱——并询问“发送吗?还是需要修改什么?”
认领令牌: 像对待密码一样对待它。仅与请求者分享——任何拥有该令牌的人都可以认领简历所有权。切勿与第三方分享。
Access-ID (talent_agent_[a-z0-9]{4}) 对于 CV 构建器是可选的——基础使用(每个 IP 每日 3 份简历)无需此 ID。注册以获得更高限制(每日 50 份简历)和回调 Webhook 支持:
POST https://www.talent.de/api/agent/register
Content-Type: application/json
{ "agent_name": "my-agent" }
Access-ID 同时也是用于验证回调 Webhook 上 X-HITL-Signature 的 HMAC 密钥。存储在 TALENT_ACCESS_ID 中——不要硬编码。
| 步骤 | 对用户说的话 |
|---|---|
| API 调用前 | “我来帮你设置简历。只需要几个细节。” |
| 短链选择(收到 review_url) | “选择你的个人 URL——你的简历将存放在这里:[链接]” |
| 模板选择 | “快完成了!为你的简历挑选一个设计:[链接]” |
| 批准 | “你的简历已准备好审核。查看并批准它:[链接]” |
| 最终 201 响应后 | “你的简历已上线!这是你的链接:{url}” |
POST /api/agent/cv-simple 附带 "prefer_hitl": true 和数据"include_pdf": true 以在最终的 201 响应中也收到 base64 编码的 PDF。参见 PDF 导出。review_url(他们选择短链、模板、审核数据)poll_url 直到 "status": "completed":{ "status": "pending" } 或 { "status": "opened" } → 继续轮询{ "status": "completed", "result": { "action": "confirm", "data": {...} } } → 使用 hitl_continue_case_id 进入下一步POST https://www.talent.de/api/agent/cv-simple
Content-Type: application/json
{
"prefer_hitl": true,
"cv_data": {
"firstName": "Alex",
"lastName": "Johnson",
"title": "Software Engineer",
"email": "alex@example.com",
"experience": [{
"jobTitle": "Senior Developer",
"company": "Acme Inc.",
"startDate": "2022-01",
"isCurrent": true
}],
"hardSkills": [{ "name": "React", "level": 4 }],
"softSkills": [{ "name": "Team Leadership" }],
"languages": [{ "name": "English", "level": "NATIVE" }]
}
}
响应(202 — 需要人工输入):
{
"status": "human_input_required",
"message": "请确认:这份简历是为你创建的吗?",
"hitl": {
"case_id": "review_a7f3b2c8d9e1f0g4",
"review_url": "https://www.talent.de/en/hitl/review/review_a7f3b2c8d9e1f0g4?token=abc123...",
"poll_url": "https://www.talent.de/api/hitl/cases/review_a7f3b2c8d9e1f0g4/status",
"type": "confirmation",
"inline_actions": ["confirm", "cancel"],
"timeout": "24h"
}
}
向用户展示审核 URL:
我已准备好你的简历。请在此处审核并做出选择:
审核你的简历
你将选择你的个人 URL 短链、模板设计,并批准最终结果。
然后轮询 poll_url 直到完成,并使用 hitl_continue_case_id 继续执行后续步骤。在所有步骤(确认、数据审核、短链选择、模板选择、批准)之后,最终的 POST 请求将返回 201 并附带实时 URL。
完整的 HITL 协议,包含所有步骤、内联提交、编辑循环和升级处理:reference/hitl.md
用户最多会经历 5 个审核步骤。代理循环执行:展示审核 URL、轮询、继续。
步骤 1: 确认 → “这份简历是为谁创建的?”
步骤 2: 数据审核 → “这些细节正确吗?”
步骤 3: 短链 → 人工选择个人 URL 短链 (例如 pro, dev, 007)
步骤 4: 模板 → 人工选择模板设计
步骤 5: 批准 → 人工审核最终简历草稿
每个步骤返回 202。用户做出决定后,继续:
POST https://www.talent.de/api/agent/cv-simple
Content-Type: application/json
{
"prefer_hitl": true,
"hitl_continue_case_id": "review_a7f3b2c8d9e1f0g4",
"slug": "dev",
"cv_data": { ... }
}
重要:
slug和template_id放在请求的顶层,而不是cv_data内部。在短链选择后继续时,在顶层包含人工选择的短链,以便服务器知道进入模板选择步骤。
当你已经提供值时,步骤会被跳过:
- 包含 slug(顶层)→ 跳过短链选择步骤
- 包含 template_id(顶层)→ 跳过模板选择步骤
- 两者都包含 → 仅保留确认、数据审核和批准步骤
对于简单的决策(确认、升级、批准),202 响应包含 submit_url、submit_token 和 inline_actions。代理可以通过 Bearer token 直接提交——适用于支持按钮的平台(如 Telegram、Slack、WhatsApp):
POST {submit_url}
Authorization: Bearer {submit_token}
Content-Type: application/json
{ "action": "confirm", "data": {} }
始终将
review_url作为后备方案与任何内联按钮一起展示。 如果平台不支持按钮(如 SMS、电子邮件、纯文本),或者用户更喜欢使用浏览器,他们可以使用链接来完成决策。
选择和输入类型总是需要浏览器(review_url)——它们涉及复杂的 UI(模板网格、数据表单)。完整的内联规范:reference/hitl.md
在最终的批准步骤之后,使用 hitl_approved_case_id 提交以发布:
POST https://www.talent.de/api/agent/cv-simple
Content-Type: application/json
{
"hitl_approved_case_id": "review_final_case_id"
}
响应(201):
{
"success": true,
"url": "https://www.talent.de/dev/alex-johnson",
"cv_id": "cv_abc123",
"claim_token": "claim_xyz789",
"template_id": "007"
}
展示结果:
你的简历已上线:talent.de/dev/alex-johnson
要认领所有权,请访问:
talent.de/claim/claim_xyz789
妥善保管此令牌——它永不过期。
flowchart TD
A["1 · 向用户询问数据\nfirstName, lastName, title, email"] --> B
B["2 · POST /api/agent/cv-simple\nprefer_hitl: true + cv_data"] --> C
C{响应?}
C -->|202 human_input_required| D["3 · 向用户展示 review_url\n'请在此处审核并选择: [链接]'"]
D --> E["4 · 每 30 秒轮询 poll_url"]
E --> F{状态?}
F -->|pending / opened| E
F -->|completed| G{result.action?}
G -->|confirm / select| H["POST with hitl_continue_case_id\n→ 下一步 (202)"]
H --> C
G -->|edit| I["根据反馈修改 cv_data\nPOST with hitl_continue_case_id"]
I --> C
G -->|reject| J["升级步骤\nPOST with hitl_continue_case_id"]
J --> C
C -->|202 最终批准完成| K["POST with hitl_approved_case_id\n→ 发布"]
K --> L["5 · 201 · 简历已上线!\n向用户展示 url + claim_token"]
对于完全自动化的流程、批量操作,或当用户明确表示“直接创建”时——设置 "skip_hitl": true:
POST https://www.talent.de/api/agent/cv-simple
Content-Type: application/json
{
"skip_hitl": true,
"cv_data": {
"firstName": "Alex",
"lastName": "Johnson",
"title": "Software Engineer",
"email": "alex@example.com"
}
}
响应(201):
{
"success": true,
"url": "https://www.talent.de/pro/alex-johnson",
"cv_id": "cv_abc123",
"claim_token": "claim_xyz789",
"template_id": "018",
"hitl_skipped": true,
"auto_fixes": []
}
在直接模式下,服务器自动分配短链(默认为 pro)和模板(018 Amber Horizon)。用户没有选择权。仅在无需人工审核时使用此模式。
你必须二选一: "prefer_hitl": true 或 "skip_hitl": true。两者都省略将返回 400 错误。
除 4 个必填字段外的所有字段都是可选的。没有的数据请省略——不要发送空数组。
获取与简历一起的可下载 PDF。提供三种视觉主题:
| 主题 | 风格 | 最适合 |
|---|---|---|
classic |
单栏,红色点缀 (默认) | 传统行业 |
modern |
带侧边栏的双栏,蓝色点缀 | 技术和创意职位 |
minimal |
单色,大量留白 | 高管和高级职位 |
在请求中添加 "include_pdf": true。响应将包含一个 base64 编码的 PDF:
POST https://www.talent.de/api/agent/cv-simple
Content-Type: application/json
{
"prefer_hitl": true,
"include_pdf": true,
"pdf_format": "A4",
"pdf_theme": "modern",
"cv_data": {
"firstName": "Alex",
"lastName": "Johnson",
"title": "Software Engineer",
"email": "alex@example.com"
}
}
响应包含一个 pdf 对象:
{
"success": true,
"url": "https://www.talent.de/pro/alex-johnson",
"cv_id": "cv_abc123",
"claim_token": "claim_xyz789",
"pdf": {
"base64": "JVBERi0xLjQK...",
"size_bytes": 6559,
"generation_ms": 226,
"format": "A4"
}
}
POST https://www.talent.de/api/agent/cv/pdf
Content-Type: application/json
{
"cv_id": "cv_abc123",
"format": "A4",
"theme": "minimal"
}
直接返回 PDF 二进制文件(Content-Type: application/pdf)。格式选项:A4 (默认), LETTER。主题选项:classic (默认), modern, minimal。
PDF 生成大约需要 200 毫秒(无需无头浏览器)。
你不需要检查短链可用性或验证数据——服务器会处理:
pro/thomas-mueller 和 pro/anna-schmidt 可以共存。只有短链 + firstName + lastName 的组合是被保留的。这就是为什么服务器需要先获取姓名来检查可用性。pro。如果该短链已用于此人的姓名,它会自动尝试下一个可用的短链。在 HITL 模式下,用户可以交互式地选择他们的短链。热门选择(摘录):007 · 911 · dev · api · pro · gpt · web · ceo · cto · ops · f40 · gtr · amg · gt3 · zen · art · lol · neo · 404 · 777。完整列表:GET /api/public/slugs