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}