Trimoji Resume API Dokumentation
Senast uppdaterad: 22 maj 2024
Detta API låter dig analysera (parsa) CV, skapa ideala kandidatprofiler (kallade "Personi") och poängsätta CV:n mot dessa profiler för att optimera din rekryteringsprocess.
Konfiguration
Konfigurera dina variabler
Innan du använder detta API, vänligen konfigurera följande variabler:
-
base_url: API:ets bas-URL (t.ex.https://integration.trimoji.fr/api/v1/resume). -
partner_token: Din unika partner-autentiseringstoken. -
customer_token: Din kundspecifika API-nyckel. Du kan hämta den från Trimoji Panel genom att klicka på knappen "kopiera min API-nyckel".
Säkerhet
Autentisering
Alla API-förfrågningar måste inkludera en Authorization-header som innehåller din partner_token.
Authorization: din_partner_token_här
Asynkron
Återanropsmekanism (Webhook)
Flera operationer, som CV-uppladdning, är asynkrona. När behandlingen är klar skickar Trimoji resultaten till den callback_url som du har angett.
Återanrop vid framgång
Data som skickas till din callback_url vid lyckad parsning kommer att följa denna JSON-struktur:
{
"metadatas": {
"din_nyckel": "anpassat_värde"
},
"resumeData": {
"firstname": "string",
"lastname": "string",
"email": "string",
"phone": "string",
"sex": "string ('f', 'm', eller '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', ...)"
}
Återanrop vid fel
Om CV-behandlingen misslyckas, skickas ett återanrop som innehåller felfelsdetaljer och behandlingsloggar.
{
"metadatas": {
"uid": "user123",
"source": "webapp"
},
"error": {
"code": "PROCESSING_FAILED",
"message": "Extrahering av data från den angivna filen misslyckades på grund av ogiltigt format."
},
"logs": [
"[2024-05-21T10:00:05.123Z] [FILE_UPLOAD] [OK] Filen laddades upp framgångsrikt.",
"[2024-05-21T10:00:06.456Z] [PROCESS_STARTED] [OK] Bearbetning påbörjad.",
"[2024-05-21T10:00:15.789Z] [DATA_STRUCTURE_GENERATION] [ERROR] AI-modellen returnerade en ogiltig struktur."
]
}
CV Parsing
API för CV-parsning
1. Ladda upp ett CV
Skicka en CV-fil för asynkron parsning. Resultaten skickas till callback_url.
POST /upload
Kroppsparametrar (form-data)
| Nyckel | Typ | Beskrivning |
|---|---|---|
customer_token * |
Text | Din kund-API-nyckel. |
uploaded_file * |
Fil | CV-fil. Max storlek: 5MB. Tillåtna filändelser: pdf, docx, png, jpg, jpeg, txt, webp, doc, rtf, pptx, otp, odp, odt. |
callback_url |
Text | URL för att ta emot asynkrona resultat. |
metadatas |
Text | Anpassad JSON-sträng för spårning. |
personi_id |
Text | ID för en valfri Personi för att koppla CV:t. |
{
"success": true,
"message": "Success",
"data": {
"resume_id": "6ff7d7fe-8e53-4ddf-b68a-f9d4658f5bc8"
}
}
2. Hämta CV-information
Hämta parsad information från ett CV med dess 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. Hämta processloggar
Hämta behandlingsloggar för ett specifikt CV, användbart för att felsöka parsningproblem.
GET /get/{customer_token}/{resume_id}/logs
4. Ta bort ett CV
Markerar ett CV som raderat (mjuk radering).
DELETE /delete/{customer_token}/{resume_id}
Personi & Poängsättning
API för Personi & Poängsättning
En "Personi" är en idealisk kandidatprofil, definierad i JSON-format, som CV:n kan poängsättas mot.
1. Skapa en Personi
Skapar en ny ideal kandidatprofil. Du kan ange detaljerade kriterier manuellt, eller använda flaggorna auto_weights och auto_keywords för att låta vår AI generera dem baserat på tjänstebeskrivningen.
POST /personi/create
Kroppsparametrar (JSON)
| Nyckel | Typ | Beskrivning |
|---|---|---|
customer_token * |
String | Din kund-API-nyckel. |
custom_id * |
String | Ett unikt ID för Personi i ditt system. |
position * |
String | Tjänstens titel. |
position_description * |
String | Detaljerad beskrivning av rollen. |
company_description * |
String | Beskrivning av företaget. |
sector * |
String | Tjänstens bransch. |
company |
String | Företagets namn. |
diploma |
String | Minsta erforderliga utbildningsnivå. |
telework |
String | Policy för distansarbete. Värden: FLEXIBLE, FULLTIME, HYBRID, NEVER, OCCASIONAL, ONDEMAND, PARTTIME, ROTATION. |
education_weight |
Number | Vikt för utbildningspoäng (0-100). |
experience_weight |
Number | Vikt för erfarenhetspoäng (0-100). |
skills_weight |
Number | Vikt för kompetenspoäng (0-100). |
knowledge_weight |
Number | Vikt för kunskapspoäng (0-100). |
keywords_weight |
Number | Vikt för nyckelordspoäng (0-100). |
geolocation |
Object | Platskriterier: {"address": "string", "radius": number}. Radie i km (standard 10). |
keywords |
Array | Manuella nyckelord: [{"word": "string", "is_mandatory": boolean}]. |
languages |
Array | Språkkrav: [{"id": "iso_code", "level": "A1-C2"}]. Nivåer: A1, A2, B1, B2, C1, C2. |
driving_licenses |
Array | Körkortskrav, t.ex. ["B", "C1"]. |
auto_keywords |
Boolean | Sätt till true för att automatiskt generera nyckelord. |
auto_weights |
Boolean | Sätt till true för att automatiskt sätta vikter. |
Notera om vikter: Om du använder manuella vikter måste summan av alla *_weight-fält vara exakt 100. Om inga vikter anges och auto_weights är falskt, används en standardfördelning.
Exempel på förfrågningar
Automatisk generering (AI)
{
"custom_id": "MKT_ASSIST_001",
"customer_token": "din_token",
"position": "Junior Marketing Assistant",
"position_description": "We are looking for...",
"company_description": "Innovate Corp...",
"sector": "Marketing",
"auto_keywords": true,
"auto_weights": true
}
Manuell konfiguration
{
"custom_id": "SENIOR_DEV_002",
"customer_token": "din_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. Hämta alla Personis
Hämta en lista över alla aktiva Personis för ditt kundkonto. Om flera Personis delar samma custom_id returneras endast den senast uppdaterade.
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. Hämta detaljer för en Personi
Hämta den fullständiga konfigurationen och detaljerna för en specifik 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. Poängsätt ett CV mot en Personi
Beräkna poängen för ett specifikt CV mot en specifik Personi. Returnerar valfritt en HTML-förklaring av poängen.
POST /matching
Kroppsparametrar (JSON)
| Nyckel | Typ | Beskrivning |
|---|---|---|
resume_id * |
String | ID för CV:t som ska poängsättas. |
personi_id * |
String eller Array | ID för/för de Personis som ska poängsättas mot. |
explainer |
String | Returnerar förklaring av poängen. Värden: 'en', 'fr', 'es'. |
{
"success": true,
"message": "Success",
"data": {
"score": 60,
"personi_name": "Développeur chez Trimoji"
}
}
5. Poängsätt ett CV mot alla Personis
Beräkna poängen för ett CV mot alla aktiva Personis på ditt konto, returnerar en sorterad lista över de bästa matchningarna.
POST /matchingAll
Kroppsparametrar (JSON)
| Nyckel | Typ | Beskrivning |
|---|---|---|
resume_id * |
String | ID för CV:t som ska poängsättas. |
customer_token * |
String | Din kund-API-nyckel. |
limit |
Integer | Max antal resultat (standard 100). |
{
"success": true,
"message": "Success",
"data": [
{
"personi_id": "839d2953...",
"personi_name": "SENIOR HR BUSINESS PARTNER...",
"score": 100
}
]
}
6. Poängsätt alla CV:n mot en Personi
Beräkna poängen för alla aktiva CV:n på ditt konto mot en enda Personi.
POST /matchingAllResumes
Kroppsparametrar (JSON)
| Nyckel | Typ | Beskrivning |
|---|---|---|
customer_token * |
String | Din kund-API-nyckel. |
personi_id * |
String | ID för Personi som ska poängsättas mot. |
limit |
Integer | Max antal CV:n att poängsätta. |
{
"success": true,
"message": "Success",
"data": [
{
"resume_id": "ac4d685e-c8e4-474d-a92a-16758009fafe",
"score": 100
},
{
"resume_id": "602d7fc9-2b85-4064-9ae6-ad5be08d5bcb",
"score": 95
}
]
}
7. Ta bort en Personi
Markerar en Personi som raderad (mjuk radering).
DELETE /delete/{customer_token}/personi/{personi_id}