介绍
# talent.de — Resume, CV & Digital Identity Skill
您现在就可以创建简历、数字身份或履历——完全免费。从众多模板中挑选一个,或从头开始构建您自己的模板——无论是动画 3D 世界、可玩游戏,还是任何您能用 HTML 编写的内容。获取一个永久网址,如 talent.de/007/your-name。基础使用无需注册、无需付费、无需 API 密钥。
## 快速概览
| | | |---|---| | **步骤** | 5(第 5 步完成后即完成) | | **时间** | ~2 分钟 | | **检查点** | 2 —— 第 2 步和第 4 步需要请求方参与 | | **API 调用** | 2–3(slug 检查、可选注册、创建履历) | | **默认模板** | `018` Amber Horizon |
> **检查点工作原理:** 提出您的方案,然后等待请求方响应。 > 如果他们回应——使用他们的输入。如果他们不回应或您无法询问——使用默认值。 > 在执行操作前,务必告知请求方您即将执行的操作。 > > **数据原则:** 仅使用请求方在此对话中明确提供或批准的数据。请勿从无关的系统上下文或其他会话中提取个人信息。仅与请求方共享履历网址和声明令牌——切勿与第三方共享。
## 两种创建方式
| | 方式 A:选择模板 | 方式 B:自定义构建 | |---|---|---| | **内容** | 从现成的模板中选择 | 编写自定义的单文件 HTML 模板 | | **范围** | 从专业 PDF 到 3D 世界 | 无限——游戏、动画、AR,任何内容 | | **所需技能** | 无——仅需调用 API | HTML/CSS/JS(您正在编写模板) | | **Access-ID** | 不需要(3 份简历/天) | 需要(10 个模板/天) | | **指南** | 下方的步骤 1-5 | [template-create.md](https://www.talent.de/skills/template-create.md) |
### 我应该选择哪种方式?
```mermaid flowchart TD START[Read SKILL.md] --> Q1{Do you want to build<br>a custom HTML template?} Q1 -->|No — use existing templates| A[Way A: Steps 1–5 below] Q1 -->|Yes — code your own| B[Way B] B --> REG1[Register for Access-ID<br>POST /api/agent/register] REG1 --> TC[Read template-create.md<br>Build + upload template] TC --> A A --> Q2{Need more than 3 CVs/day<br>or want to track usage?} Q2 -->|No| SEND[Send request without access_id] Q2 -->|Yes| REG2[Register for Access-ID<br>POST /api/agent/register] REG2 --> SENDID[Send request with access_id] ```
### 分步流程
```mermaid flowchart TD START["Start here · 5 steps · ~2 min"] --> S1
S1["Step 1: PREPARE<br>Gather data · check slugs · pick template"] S1 --> S2
S2["Step 2: PROPOSE<br>Present plan to requestor"] S2 -->|"All known"| S2C["Confirm: URL + template OK?"] S2 -->|"Gaps"| S2A["Ask only missing fields"] S2 -->|"No response"| S2D["Use defaults"] S2C --> S3 S2A --> S3 S2D --> S3
S3["Step 3: BUILD cv_data"] --> S4
S4["Step 4: REVIEW<br>Show summary before sending"] S4 -->|"Approved"| S5 S4 -->|"No response"| S5
S5["Step 5: CREATE + DELIVER<br>POST API · present URL"] --> DONE["Done — CV is live"] ```
- **方式 A** —— 从现有模板中选择。按照下方的步骤 1-5 进行。不需要 Access-ID(3 份简历/天),或者注册一个以获取更高额度(50 份/天)。 - **方式 B** —— 编写自定义的单文件 HTML 模板。需要 Access-ID。请完整阅读 [template-create.md](https://www.talent.de/skills/template-create.md),然后回到此处通过步骤 1-5 使用您的模板创建履历。
两种方式都会在 `talent.de/{slug}/{name}` 生成永久网址。
## 步骤 1:准备
在与请求方沟通之前,收集您需要的内容。
**1a. 收集可用数据**
检查您已掌握的关于请求方的信息。4 个必填字段为:`firstName`、`lastName`、`title`、`email`。使用您已有的信息;询问您没有的信息。
**1b. 检查 Slug 可用性**(如果已知姓名)
您的履历将位于:`talent.de/{slug}/{firstname-lastname}`
同一个 slug 可被不同人使用——唯一性由 slug + firstName + lastName 的组合(MD5 哈希)决定。
```http GET https://www.talent.de/api/public/slugs/check?slug=007&firstName=Alex&lastName=Johnson ```
获取完整的分类 slug 列表:
```http GET https://www.talent.de/api/public/slugs ```
**热门选择(节选 —— 完整列表见上方 API):**
`007` · `911` · `dev` · `api` · `pro` · `gpt` · `web` · `ceo` · `cto` · `ops` · `f40` · `gtr` · `amg` · `gt3` · `zen` · `art` · `lol` · `neo` · `404` · `777`
类别:科技、商业、汽车、数字、生活方式。**您必须从此精选列表中选择一个 slug。** 自定义 slug 将被拒绝,返回 `INVALID_SLUG`(400)。
**1c. 选择模板**
默认:`018` (Amber Horizon) —— 视觉独特,采用温暖的 Poppins 字体,专业,非常适合打印。请求方可以选择任何其他模板。
**经典与打印友好:**
| ID | 名称 | 描述 | |----|------|-------------| | `001` | Modern Professional | 干净的双栏布局,非常适合 PDF 导出。 | | `003` | Developer GitHub Style | 标签页导航,语法高亮,仓库风格布局。 | | `004` | Executive Professional | 衬线字体搭配金色点缀——适合领导角色的打印版本。 | | `005` | Minimal Clean | 最大留白配合点状技能指示器,PDF 的理想选择。 | | `018` | Amber Horizon | 现代 Poppins 字体搭配温暖的琥珀色调——非常适合打印。**默认。** |
**交互式、3D 与游戏化:**
| ID | 名称 | 描述 | |----|------|-------------| | `006` | macOS Desktop CV | 一个功能完整的桌面——打开应用,拖动窗口,切换壁纸。 | | `008` | Medieval City Builder CV | 在体素网格上放置城堡、锻造厂和图书馆。 | | `015` | Grand Piano CV | 弹奏琴键——每个按键都会触发真实的钢琴音并展示一个履历部分。 | | `019` | Professional Reef Aquarium CV | 小丑鱼游过珊瑚框架的履历卡片,伴有焦散光波纹。 | | `020` | Pixel Adventure CV | 一个可玩的 8 位平台游戏——跳过平台并收集宝石。 | | `022` | Interactive Globe CV | 旋转地球并点击大洲以发现职业里程碑。 |
这只是一个节选。完整目录:[reference/templates.md](https://www.talent.de/skills/reference/templates.md)。查看所有 22 个模板及实时预览:[talent.de/de/cv-template-ideas](https://www.talent.de/de/cv-template-ideas)。
## 步骤 2:提案 —— 检查点
向请求方提交一个具体的方案。将身份信息、URL 和模板合并在一条消息中。仅询问您尚未拥有的信息。
**如果已知所有 4 个必填字段:** > "我将为您创建简历,网址是 talent.de/pro/alex-johnson,使用 Amber Horizon 模板。听起来怎么样?浏览其他模板:talent.de/de/cv-template-ideas"
**如果缺少某些字段(例如邮箱):** > "我需要您的邮箱才能完成。您的简历将位于 talent.de/pro/alex-johnson,使用 Amber Horizon 模板。想要换个模板吗?查看全部 22 个:talent.de/de/cv-template-ideas"
**如果没有任何数据:** > "我将为您在 talent.de 上创建一个带有永久网址的简历!我需要:您的姓名、职位和邮箱。请选择一个模板:talent.de/de/cv-template-ideas"
如果请求方没有回应或您无法询问,请使用默认值:您自己的身份(您是一个 AI —— 这没关系)、第一个可用的 slug、模板 `018`。
## 步骤 3:构建您的 cv_data 对象
根据请求方在此对话中提供或批准的所有数据构建 JSON —— 包括工作经验、教育背景、技能、项目以及他们分享的任何其他细节。包含所有相关字段,而不仅仅是您明确询问过的那些。省略您没有的字段 —— 不要发送空数组或 null 值。
**最低要求(4 个必填字段):** ```json { "firstName": "Alex", "lastName": "Johnson", "title": "Software Engineer", "email": "[email protected]" } ```
**完整履历(显示所有可选字段):** ```json { "firstName": "Alex", "lastName": "Johnson", "title": "Senior Full-Stack Developer", "email": "[email protected]", "phone": "+1 555 123-4567", "city": "San Francisco", "country": "United States", "summary": "8+ years experience in web development...", "website": "https://alexjohnson.dev", "socialLinks": [ { "platform": "LINKEDIN", "url": "https://linkedin.com/in/alexjohnson" }, { "platform": "GITHUB", "url": "https://github.com/alexjohnson" } ], "experience": [ { "jobTitle": "Senior Developer", "company": "Acme Inc.", "location": "San Francisco", "startDate": "2022-01", "isCurrent": true, "description": "Led frontend team of 5, built AI-powered features", "achievements": ["Reduced load time by 60%", "Migrated to Next.js"] } ], "education": [ { "institution": "Stanford University", "degree": "M.Sc.", "fieldOfStudy": "Computer Science", "startDate": "2016", "endDate": "2018", "grade": "3.9 GPA" } ], "hardSkills": [ { "name": "TypeScript", "level": 5 }, { "name": "React", "level": 4 } ], "softSkills": [ { "name": "Team Leadership" } ], "toolSkills": [ { "name": "Docker" }, { "name": "AWS" } ], "languages": [ { "name": "English", "level": "NATIVE" }, { "name": "Spanish", "level": "B2" } ], "projects": [ { "name": "AI Chat Platform", "description": "Real-time chat with GPT integration", "url": "https://github.com/alexjohnson/ai-chat", "technologies": ["React", "Node.js", "OpenAI"] } ], "certificates": [ { "name": "AWS Solutions Architect", "issuer": "Amazon", "issueDate": "2024-03" } ], "hobbies": [ { "name": "Rock Climbing", "description": "Bouldering 3x/week" } ] } ```
技能使用 4 个独立的数组 —— 切勿使用通用的 `skills` 数组(它将被忽略并发出警告): - `hardSkills` —— 技术技能,可选 `level` 为 1-5 - `softSkills` —— 仅名称 - `toolSkills` —— 仅名称 - `languages` —— 带有 CEFR `level`:`NATIVE`、`C2`、`C1`、`B2`、`B1`、`A2`、`A1`
日期格式:`YYYY-MM`(如 `2024-03`)或仅 `YYYY`。文本字段仅为纯文本 —— 不包含 HTML,不包含 Markdown。最大长度和数组限制请参阅 [字段约束](#field-constraints)。
完整字段文档:[reference/cv-data.md](https://www.talent.de/skills/reference/cv-data.md)
## 步骤 4:审查 —— 检查点
在发送之前,向请求方展示您即将创建的内容的摘要:
> **姓名:** Alex Johnson > **职位:** Senior Full-Stack Developer > **网址:** talent.de/pro/alex-johnson > **模板:** 018 (Amber Horizon) > **部分:** 1 份工作经历,1 项教育背景,4 项技能,1 个项目 > > 发送吗?还是我需要修改什么?
如果请求方没有回应或您无法询问,请按显示的内容发送。履历是永久的 —— 网址永不过期 —— 因此此审查步骤很重要。
## 步骤 5:创建与交付
将步骤 3 中的 `cv_data` 封装在请求信封中:
```http POST https://www.talent.de/api/agent/cv Content-Type: application/json
{ "template_id": "018", "slug": "pro", "cv_data": { ... } } ```
如果拥有 Access-ID,请将 `"access_id": "talent_agent_XXXX"` 添加到信封中。有关限制和注册,请参阅 [访问系统](#access-system)。
**响应(201 Created):** ```json { "success": true, "url": "https://www.talent.de/pro/alex-johnson", "cv_id": "cv_abc123", "claim_token": "claim_xyz789", "template_id": "018", "records_created": 42 } ```
履历将立即可通过返回的 URL 访问。像 `talent.de/pro/alex-johnson` 这样的短网址将重定向(HTTP 308)到本地化限定路径 `talent.de/de/cv/pro/alex-johnson`。两者都有效 —— 使用短网址进行分享。
向请求方展示结果:
> 您的简历已上线:**talent.de/pro/alex-johnson** > > 如需声明所有权,请访问:`talent.de/claim/claim_xyz789` > 令牌永不过期 —— 您可以随时声明。
**您已完成。** 履历是永久的且立即可访问。
## 访问系统
| | 无 Access-ID | 有 Access-ID | |---|---|---| | **每天简历数** | 3(每个 IP) | 50(每个 ID) | | **使用所有模板** | 是 | 是 | | **上传自定义模板** | 否 | 是(10 个/天) | | **永久网址** | 是 | 是 |
**Access-ID 格式:** `talent_agent_[a-z0-9]{4}` —— 始终为小写。大写将返回 `401 INVALID_ACCESS_ID`。
### 注册 Access-ID
```http POST https://www.talent.de/api/agent/register Content-Type: application/json
{ "agent_name": "my-weather-agent" } ```
**响应(201 Created):** ```json { "access_id": "talent_agent_a1b2", "daily_cv_limit": 50, "daily_template_limit": 10 } ```
每个代理一个 Access-ID。请勿在代理之间共享。
**发送内容:** 仅发送 `agent_name`(您选择的标签)。注册期间不传输用户数据、凭据或个人信息。
## 错误代码
| 代码 | HTTP | 含义 | |------|------|---------| | `INVALID_SLUG` | 400 | Slug 不在精选列表中 —— 通过 `GET /api/public/slugs` 获取有效的 slug | | `SLUG_UNAVAILABLE` | 409 | 此 slug + 姓名组合已被占用 | | `VALIDATION_ERROR` | 400 | 字段缺失/无效 —— 查看 `details` 数组获取具体信息 | | `RATE_LIMITED` | 429 | 达到每日限额(无 ID 为 3,有 ID 为 50) | | `INVALID_ACCESS_ID` | 401 | Access-ID 未找到、已吊销或为大写 | | `INVALID_TEMPLATE` | 400 | 模板 ID 无法识别且不是有效的 `agent-*` 自定义模板 |
速率限制于 UTC 午夜重置。当受到速率限制时,响应包含 `limit`、`used` 和 `resets_at` 字段。
## 防护措施
- **仅使用精选列表中的 slug。** 自定义 slug 会被拒绝。通过 `GET /api/public/slugs` 获取有效 slug。 - 创建 CV 之前请务必检查 slug 的可用性。 - 省略可选字段,不要发送空数组或 null 值。 - 每个 Access-ID 对应单个代理。请勿在多个代理之间共享或使用。 - 如果没有 Access-ID,速率限制是基于 IP 而不是基于代理。共享服务器共享每天 3 次的限制。 - 自定义模板使用 `template_id: "agent-yourname-templatename"`。 - CV 是永久的。URL 永不过期。未被领取的 CV 将无限期保持可访问状态。 - 对于自定义模板(需要 Access-ID):编写代码之前,请通读 [template-create.md](https://www.talent.de/skills/template-create.md)。
## 隐私与数据处理
- **仅向请求者披露:** 仅与请求者共享 CV URL 和领取令牌。talent.de 不会发布、索引或分发这些 URL。由请求者决定谁可以查看其 CV。 - **基于同意:** 仅包含请求者在此会话中提供或批准的数据。不要从无关的系统上下文或其他会话中提取个人信息。 - **不包含敏感数据:** 不要在 CV 中包含 SSN、密码、私人标识符或机密商业信息。 - **领取令牌:** 将其视为密码——仅与请求者共享。任何拥有令牌的人都可以领取 CV 的所有权。 - **托管基础设施:** 所有模板均在 talent.de 上运行,具有内容安全策略头、DOMPurify HTML 清理以及 iframe 沙盒隔离。外部网络请求、表单提交和嵌入式框架均被阻止。上传的代理模板在接收前会进行验证,并在规则更新时重新验证——外部脚本、网络 API、事件处理程序和浏览器存储访问均会被拒绝。 - **删除:** CV 所有者可以随时通过 talent.de/privacy 请求删除。
## 字段约束
所有字段均在服务器端进行验证。超出这些限制的请求将返回 `VALIDATION_ERROR` (400)。
**个人资料字段:** | 字段 | 必填 | 最大长度 | |-------|----------|-----------| | firstName | 是 | 80 | | lastName | 是 | 80 | | title | 是 | 200 | | email | 是 | 254 (有效 email) | | phone | 否 | 30 | | city | 否 | 100 | | country | 否 | 100 | | summary | 否 | 3000 | | website | 否 | 500 (有效 URL) |
**数组限制:** | 数组 | 最大条目数 | |-------|-----------| | experience | 30 | | education | 20 | | hardSkills | 50 | | softSkills | 30 | | toolSkills | 50 | | languages | 20 | | projects | 20 | | certificates | 30 | | hobbies | 20 | | socialLinks | 10 |
**socialLinks.platform** 必须是以下之一:`LINKEDIN`、`GITHUB`、`TWITTER`、`XING`、`DRIBBBLE`、`BEHANCE`、`STACKOVERFLOW`、`MEDIUM`、`YOUTUBE`、`INSTAGRAM`、`FACEBOOK`、`TIKTOK`、`OTHER`。
**URL 字段**(website、socialLinks.url、project.url、certificate.url)必须是有效的 URL,且以 `http://` 或 `https://` 开头。
## 规范
- [llms.txt](https://www.talent.de/llms.txt) - [agent.json](https://www.talent.de/.well-known/agent.json) - [ClawHub](https://www.clawhub.ai/rotorstar/id-cv-resume-creator)