Logotrimoji
無料で試す

API Hardskills

Trimoji Resume APIドキュメント

最終更新日:2024年5月22日

このAPIを使用すると、履歴書(CV)を分析(解析)し、理想的な候補者プロファイル(「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: あなたの_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."
  ]
}

CV解析

CV解析API

1. CVのアップロード

非同期解析のためにCVファイルを送信します。結果はcallback_urlに送信されます。

POST /upload

ボディパラメータ (form-data)

キー タイプ 説明
customer_token * テキスト あなたの顧客APIキー。
uploaded_file * ファイル CVファイル。最大サイズ:5MB。許可される拡張子:pdf, docx, png, jpg, jpeg, txt, webp, doc, rtf, pptx, otp, odp, odt。
callback_url テキスト 非同期結果を受信するURL。
metadatas テキスト 追跡用のカスタムJSON文字列。
personi_id テキスト CVをリンクするためのオプションのPersoni ID。
応答例

{
    "success": true,
    "message": "Success",
    "data": {
        "resume_id": "6ff7d7fe-8e53-4ddf-b68a-f9d4658f5bc8"
    }
}

2. CV情報の取得

resume_idを使用して、解析されたCV情報を取得します。

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. プロセスログの取得

特定のCVの処理ログを取得します。解析の問題をデバッグするのに役立ちます。

GET /get/{customer_token}/{resume_id}/logs

4. CVの削除

CVを論理削除(ソフトデリート)としてマークします。

DELETE /delete/{customer_token}/{resume_id}

Personi & スコアリング

Personi & スコアリングAPI

「Personi」とは、履歴書をスコアリングして理想的な候補者プロファイルと比較するための、JSON形式で定義されたターゲットプロファイルです。

1. Personiの作成

新しい理想的な候補者プロファイルを作成します。詳細な基準を手動で提供することも、auto_weightsおよびauto_keywordsフラグを使用して、職務内容に基づいてAIに生成させることもできます。

POST /personi/create

ボディパラメータ (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}。半径はkm(デフォルト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. すべてのPersoniの取得

お客様のアカウントでアクティブなすべてのPersoniのリストを取得します。複数のPersoniが同じ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. CVをPersoniに対してスコアリング

特定のCVを特定のPersoniに対してスコアリングします。オプションでスコアの説明をHTML形式で返します。

POST /matching

ボディパラメータ (JSON)

キー タイプ 説明
resume_id * String スコアリングするCVの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. すべてのPersoniに対してCVをスコアリング

アカウントのすべてのアクティブなCVを1つのPersoniに対してスコアリングし、上位のマッチングリストを返します。

POST /matchingAll

ボディパラメータ (JSON)

キー タイプ 説明
resume_id * String スコアリングするCVの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. 1つのPersoniに対してすべてのCVをスコアリング

アカウントのすべてのアクティブなCVを1つのPersoniに対してスコアリングします。

POST /matchingAllResumes

ボディパラメータ (JSON)

キー タイプ 説明
customer_token * String あなたの顧客APIキー。
personi_id * String スコアリング対象のPersoni ID。
limit Integer スコアリングする最大CV数。
応答例

{
    "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