Logotrimoji
무료로 시작하기

Trimoji Resume API 문서

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}

Top