Trimoji Resume API 文档
最后更新:2024年5月22日
此 API 允许您分析(解析)简历、创建理想候选人画像(称为“Personi”)并根据这些画像对简历进行评分,以优化您的招聘流程。
配置
配置您的变量
在使用此 API 之前,请配置以下变量:
-
base_url:API 的基本 URL(例如:https://integration.trimoji.fr/api/v1/resume)。 -
partner_token:您的唯一合作伙伴认证令牌。 -
customer_token:您的特定客户 API 密钥。您可以在 Trimoji 面板 中通过点击“复制我的 API 密钥”按钮获取。
安全
认证
所有 API 请求都必须包含一个 Authorization 标头,其中包含您的 partner_token。
Authorization: 您的_partner_token_在此
异步
回调机制 (Webhook)
多项操作,例如上传简历,是异步的。处理完成后,Trimoji 会将结果发送到您提供的 callback_url。
成功回调
成功解析时发送到您的 callback_url 的数据将遵循此 JSON 结构:
{
"metadatas": {
"your_key": "custom_value"
},
"resumeData": {
"firstname": "string",
"lastname": "string",
"email": "string",
"phone": "string",
"sex": "string ('f', 'm', or 'other')",
"age": "integer | null",
"introduction": "string | null",
"address": "string | null",
"lat": "number | null",
"lon": "number | null",
"processed_at": "datetime_string"
},
"experiences": [
{
"poste": "string",
"company": "string",
"size": "string | null ('AE', 'MIE', 'TPE', ...)",
"start_date": "integer | null",
"end_date": "integer | null",
"duration": "integer | null",
"tasks": ["string"]
}
],
"diplomas": [
{ "name": "string", "date": "integer | null" }
],
"licenses": [
{ "name": "string", "desc": "string" }
],
"languages": [
{ "name": "string (iso_code)", "level": "string" }
],
"hobbies": ["string"],
"telework": "string | null ('Flexible', 'Full time', ...)"
}
失败回调
如果简历处理失败,将发送一个包含错误详情和处理日志的回调。
{
"metadatas": {
"uid": "user123",
"source": "webapp"
},
"error": {
"code": "PROCESSING_FAILED",
"message": "由于提供的文件格式无效,数据提取失败。"
},
"logs": [
"[2024-05-21T10:00:05.123Z] [FILE_UPLOAD] [OK] File uploaded successfully.",
"[2024-05-21T10:00:06.456Z] [PROCESS_STARTED] [OK] Processing started.",
"[2024-05-21T10:00:15.789Z] [DATA_STRUCTURE_GENERATION] [ERROR] AI model returned an invalid structure."
]
}
简历解析
简历解析 API
1. 上传简历
提交简历文件进行异步解析。结果将发送到 callback_url。
POST /upload
Body 参数 (form-data)
| 键 | 类型 | 描述 |
|---|---|---|
customer_token * |
文本 | 您的客户 API 密钥。 |
uploaded_file * |
文件 | 简历文件。最大尺寸:5MB。允许的扩展名:pdf, docx, png, jpg, jpeg, txt, webp, doc, rtf, pptx, otp, odp, odt。 |
callback_url |
文本 | 接收异步结果的 URL。 |
metadatas |
文本 | 用于跟踪的自定义 JSON 字符串。 |
personi_id |
文本 | 可选的 Personi ID,用于链接简历。 |
{
"success": true,
"message": "Success",
"data": {
"resume_id": "6ff7d7fe-8e53-4ddf-b68a-f9d4658f5bc8"
}
}
2. 获取简历信息
使用 resume_id 获取已解析的简历信息。
GET /get/{customer_token}/{resume_id}
{
"success": true,
"message": "Success",
"data": {
"resumeData": {
"firstname": "Lou",
"lastname": "Pagès",
"email": "[email protected]",
"age": 22
},
"experiences": [ ... ],
"diplomas": [ ... ]
}
}
3. 获取进程日志
获取特定简历的处理日志,这对于调试解析问题很有用。
GET /get/{customer_token}/{resume_id}/logs
4. 删除简历
将简历标记为已删除(逻辑删除/软删除)。
DELETE /delete/{customer_token}/{resume_id}
Personi & Scoring
Personi & Scoring API
“Personi”是一个理想的候选人画像,以 JSON 格式定义,简历可以据此进行评分。
1. 创建 Personi
创建一个新的理想候选人画像。您可以手动提供详细标准,或使用 auto_weights 和 auto_keywords 标志,让我们的 AI 根据职位描述生成它们。
POST /personi/create
Body 参数 (JSON)
| 键 | 类型 | 描述 |
|---|---|---|
customer_token * |
String | 您的客户 API 密钥。 |
custom_id * |
String | 您系统中 Personi 的唯一 ID。 |
position * |
String | 职位名称。 |
position_description * |
String | 角色详细描述。 |
company_description * |
String | 公司描述。 |
sector * |
String | 职位所属行业。 |
company |
String | 公司名称。 |
diploma |
String | 所需最低学历水平。 |
telework |
String | 远程工作政策。值:FLEXIBLE, FULLTIME, HYBRID, NEVER, OCCASIONAL, ONDEMAND, PARTTIME, ROTATION。 |
education_weight |
Number | 教育分数权重(0-100)。 |
experience_weight |
Number | 经验分数权重(0-100)。 |
skills_weight |
Number | 技能分数权重(0-100)。 |
knowledge_weight |
Number | 知识分数权重(0-100)。 |
keywords_weight |
Number | 关键词分数权重(0-100)。 |
geolocation |
Object | 地点标准:{"address": "string", "radius": number}。半径(公里,默认为 10)。 |
keywords |
Array | 手动关键词:[{"word": "string", "is_mandatory": boolean}]。 |
languages |
Array | 语言要求:[{"id": "iso_code", "level": "A1-C2"}]。级别:A1, A2, B1, B2, C1, C2。 |
driving_licenses |
Array | 所需驾照,例如:["B", "C1"]。 |
auto_keywords |
Boolean | 设置为 true 以自动生成关键词。 |
auto_weights |
Boolean | 设置为 true 以自动设置权重。 |
关于权重说明:如果使用手动权重,所有 *_weight 字段的总和必须正好等于 100。如果未提供权重且 auto_weights 为 false,则使用默认分布。
请求示例
自动生成 (AI)
{
"custom_id": "MKT_ASSIST_001",
"customer_token": "your_token",
"position": "Junior Marketing Assistant",
"position_description": "We are looking for...",
"company_description": "Innovate Corp...",
"sector": "Marketing",
"auto_keywords": true,
"auto_weights": true
}
手动配置
{
"custom_id": "SENIOR_DEV_002",
"customer_token": "your_token",
"position": "Senior Software Engineer",
"position_description": "Seeking experienced...",
"company": "Tech Solutions",
"telework": "HYBRID",
"education_weight": 10,
"experience_weight": 40,
"skills_weight": 20,
"knowledge_weight": 10,
"keywords_weight": 20,
"keywords": [
{"word": "Spring Boot", "is_mandatory": true}
],
"geolocation": { "address": "Paris", "radius": 20 }
}
{
"success": true,
"message": "Success",
"data": {
"personi_id": "f8e1e2c3-6337-4644-9fbf-7e382d089e3d"
}
}
2. 获取所有 Personis
获取您客户帐户的所有活动 Personis 列表。如果多个 Personis 共享相同的 custom_id,则仅返回最新更新的一个。
GET /get/{customer_token}/personi/all
{
"success": true,
"message": "Success",
"data": [
{
"id": "f8e1e2c3...",
"custom_id": "SENIOR_DEV_002",
"name": "Senior Software Engineer Profile",
"created_at": "2024-05-15T10:00:00.000Z"
}
]
}
3. 获取 Personi 详细信息
获取特定 Personi 的完整配置和详细信息。
GET /get/{customer_token}/personi/details/{personi_id}
{
"success": true,
"message": "Success",
"data": {
"id": "5e0273f8-8cfd-4673-9a89-3f4c934d3391",
"name": "Associate Product Manager | London",
"matching_settings": {
"weights": { "percent_experience": 44, "percent_hardskills": 19 },
"languages": [ { "lang": "English", "is_mandatory": true } ],
"skills": [ { "skill": "active_listening", "value": 72 } ]
}
}
}
4. 将简历与 Personi 进行评分
计算特定简历与特定 Personi 的匹配分数。可选地返回分数的 HTML 解释。
POST /matching
Body 参数 (JSON)
| 键 | 类型 | 描述 |
|---|---|---|
resume_id * |
String | 要评分的简历 ID。 |
personi_id * |
String 或 Array | 要评分的 Personi ID(单个或多个)。 |
explainer |
String | 返回分数的解释。值:'en', 'fr', 'es'。 |
{
"success": true,
"message": "Success",
"data": {
"score": 60,
"personi_name": "Développeur chez Trimoji"
}
}
5. 将简历与所有 Personis 进行评分
计算您帐户中所有活动简历与单个 Personi 的匹配分数,并返回最佳匹配项的排序列表。
POST /matchingAll
Body 参数 (JSON)
| 键 | 类型 | 描述 |
|---|---|---|
resume_id * |
String | 要评分的简历 ID。 |
customer_token * |
String | 您的客户 API 密钥。 |
limit |
Integer | 最大结果数(默认为 100)。 |
{
"success": true,
"message": "Success",
"data": [
{
"personi_id": "839d2953...",
"personi_name": "SENIOR HR BUSINESS PARTNER...",
"score": 100
}
]
}
6. 将所有简历与一个 Personi 进行评分
计算您帐户中所有活动简历与单个 Personi 的匹配分数。
POST /matchingAllResumes
Body 参数 (JSON)
| 键 | 类型 | 描述 |
|---|---|---|
customer_token * |
String | 您的客户 API 密钥。 |
personi_id * |
String | 要评分的 Personi ID。 |
limit |
Integer | 要评分的最大简历数。 |
{
"success": true,
"message": "Success",
"data": [
{
"resume_id": "ac4d685e-c8e4-474d-a92a-16758009fafe",
"score": 100
},
{
"resume_id": "602d7fc9-2b85-4064-9ae6-ad5be08d5bcb",
"score": 95
}
]
}
7. 删除 Personi
将 Personi 标记为已删除(逻辑删除/软删除)。
DELETE /delete/{customer_token}/personi/{personi_id}