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 요청에는 partner_token이 포함된 Authorization 헤더가 있어야 합니다.
Authorization: 여기에_파트너_토큰
비동기
콜백 메커니즘 (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] 파일이 성공적으로 업로드되었습니다.",
"[2024-05-21T10:00:06.456Z] [PROCESS_STARTED] [OK] 처리가 시작되었습니다.",
"[2024-05-21T10:00:15.789Z] [DATA_STRUCTURE_GENERATION] [ERROR] AI 모델이 잘못된 구조를 반환했습니다."
]
}
이력서 파싱
이력서 파싱 API
1. 이력서 업로드
비동기 파싱을 위해 이력서 파일을 보냅니다. 결과는 callback_url로 전송됩니다.
POST /upload
본문 매개변수 (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 |
텍스트 | 추적(tracking)을 위한 사용자 지정 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 & 채점
Personi & 채점 API
"Personi"는 JSON 형식으로 정의된 이상적인 지원자 프로필이며, 이 프로필을 기준으로 이력서의 채점할 수 있습니다.
1. Personi 생성
새로운 이상적인 지원자 프로필을 생성합니다. 상세 기준을 수동으로 제공하거나, auto_weights 및 auto_keywords 플래그를 사용하여 직무 설명을 기반으로 AI가 자동으로 생성하도록 할 수 있습니다.
POST /personi/create
본문 매개변수 (JSON)
| 키 | 유형 | 설명 |
|---|---|---|
customer_token * |
문자열 | 고객 API 키. |
custom_id * |
문자열 | 귀하의 시스템에서 Personi를 위한 고유 ID. |
position * |
문자열 | 직무 제목. |
position_description * |
문자열 | 역할에 대한 상세 설명. |
company_description * |
문자열 | 회사 설명. |
sector * |
문자열 | 직무의 산업 분야. |
company |
문자열 | 회사 이름. |
diploma |
문자열 | 최소 요구 학력 수준. |
telework |
문자열 | 재택근무 정책. 값: FLEXIBLE, FULLTIME, HYBRID, NEVER, OCCASIONAL, ONDEMAND, PARTTIME, ROTATION. |
education_weight |
숫자 | 교육 점수 가중치 (0-100). |
experience_weight |
숫자 | 경력 점수 가중치 (0-100). |
skills_weight |
숫자 | 기술 점수 가중치 (0-100). |
knowledge_weight |
숫자 | 지식 점수 가중치 (0-100). |
keywords_weight |
숫자 | 키워드 점수 가중치 (0-100). |
geolocation |
객체 | 위치 기준: {"address": "string", "radius": number}. 반경은 km 단위 (기본값 10).
|
keywords |
배열 | 수동 키워드: [{"word": "string", "is_mandatory": boolean}].
|
languages |
배열 | 언어 요구 사항: [{"id": "iso_code", "level": "A1-C2"}]. 레벨: A1, A2, B1, B2, C1, C2.
|
driving_licenses |
배열 | 필요한 운전 면허증, 예: ["B", "C1"].
|
auto_keywords |
부울 | 키워드를 자동으로 생성하려면 true로 설정하십시오. |
auto_weights |
부울 | 가중치를 자동으로 설정하려면 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. 모든 Personi 가져오기
고객 계정의 모든 활성 Personi 목록을 가져옵니다. 동일한 custom_id를 공유하는 Personi가 여러 개 있는 경우 가장 최근에 업데이트된 Personi만 반환됩니다.
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": "Anglais", "is_mandatory": true } ],
"skills": [ { "skill": "active_listening", "value": 72 } ]
}
}
}
4. Personi에 대해 이력서 채점
특정 Personi에 대한 특정 이력서의 점수를 계산합니다. 선택적으로 점수에 대한 HTML 설명을 반환합니다.
POST /matching
본문 매개변수 (JSON)
| 키 | 유형 | 설명 |
|---|---|---|
resume_id * |
문자열 | 채점할 이력서 ID. |
personi_id * |
문자열 또는 배열 | 채점할 Personi ID (복수 가능). |
explainer |
문자열 | 점수 설명을 반환합니다. 값: 'en', 'fr', 'es'. |
{
"success": true,
"message": "Success",
"data": {
"score": 60,
"personi_name": "Trimoji 회사 개발자"
}
}
5. 모든 이력서를 Personi에 대해 채점
귀하의 계정에 있는 모든 활성 이력서를 단일 Personi에 대해 채점하여 정렬된 최적 일치 목록을 반환합니다.
POST /matchingAll
본문 매개변수 (JSON)
| 키 | 유형 | 설명 |
|---|---|---|
resume_id * |
문자열 | 채점할 이력서 ID. |
customer_token * |
문자열 | 고객 API 키. |
limit |
정수 | 결과 최대 수 (기본값 100). |
{
"success": true,
"message": "Success",
"data": [
{
"personi_id": "839d2953...",
"personi_name": "SENIOR HR BUSINESS PARTNER...",
"score": 100
}
]
}
6. 모든 이력서를 Personi에 대해 채점
귀하의 계정에서 모든 활성 이력서를 단일 Personi에 대해 채점합니다.
POST /matchingAllResumes
본문 매개변수 (JSON)
| 키 | 유형 | 설명 |
|---|---|---|
customer_token * |
문자열 | 고객 API 키. |
personi_id * |
문자열 | 채점할 Personi ID. |
limit |
정수 | 채점할 최대 이력서 수. |
{
"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}