Trimoji Resume API Documentatie
Laatst bijgewerkt: 22 mei 2024
Deze API stelt u in staat CV's te analyseren (parsen), ideale kandidaatprofielen (genaamd "Personi") aan te maken en CV's te scoren ten opzichte van deze profielen om uw recruitmentproces te optimaliseren.
Configuratie
Configureer uw variabelen
Voordat u deze API gebruikt, configureer de volgende variabelen:
-
base_url: De basis-URL van de API (bijv.https://integration.trimoji.fr/api/v1/resume). -
partner_token: Uw unieke partnerauthenticatietoken. -
customer_token: Uw klant-specifieke API-sleutel. U kunt deze verkrijgen via het Trimoji Panel door op de knop "kopieer mijn API-sleutel" te klikken.
Beveiliging
Authenticatie
Alle API-verzoeken moeten een Authorization header bevatten met uw partner_token.
Authorization: uw_partner_token_hier
Asynchroon
Callback Mechanisme (Webhook)
Meerdere operaties, zoals het uploaden van CV's, zijn asynchroon. Wanneer de verwerking is voltooid, stuurt Trimoji de resultaten naar de callback_url die u heeft opgegeven.
Callback bij Succes
De gegevens die naar uw callback_url worden gestuurd bij een succesvolle parsin, volgen deze JSON-structuur:
{
"metadatas": {
"uw_sleutel": "gepersonaliseerde_waarde"
},
"resumeData": {
"firstname": "string",
"lastname": "string",
"email": "string",
"phone": "string",
"sex": "string ('v', 'm', of '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', ...)"
}
Callback bij Falen
Als de CV-verwerking mislukt, wordt een callback gestuurd met de foutdetails en de verwerkingslogboeken.
{
"metadatas": {
"uid": "user123",
"source": "webapp"
},
"error": {
"code": "PROCESSING_FAILED",
"message": "Gegevensverwerking van het verstrekte bestand mislukt vanwege een ongeldig formaat."
},
"logs": [
"[2024-05-21T10:00:05.123Z] [FILE_UPLOAD] [OK] Bestand succesvol geüpload.",
"[2024-05-21T10:00:06.456Z] [PROCESS_STARTED] [OK] Verwerking gestart.",
"[2024-05-21T10:00:15.789Z] [DATA_STRUCTURE_GENERATION] [ERROR] AI-model gaf een ongeldige structuur terug."
]
}
CV Parsin
CV Parsin API
1. CV Uploaden
Stuur een CV-bestand voor asynchroon parsen. De resultaten worden naar de callback_url gestuurd.
POST /upload
Body Parameters (form-data)
| Sleutel | Type | Beschrijving |
|---|---|---|
customer_token * |
Tekst | Uw klant-API-sleutel. |
uploaded_file * |
Bestand | CV-bestand. Max grootte: 5MB. Toegestane extensies: pdf, docx, png, jpg, jpeg, txt, webp, doc, rtf, pptx, otp, odp, odt. |
callback_url |
Tekst | URL om asynchrone resultaten te ontvangen. |
metadatas |
Tekst | Aangepaste JSON-string voor tracking. |
personi_id |
Tekst | Optionele Personi ID om het CV te koppelen. |
{
"success": true,
"message": "Success",
"data": {
"resume_id": "6ff7d7fe-8e53-4ddf-b68a-f9d4658f5bc8"
}
}
2. CV-gegevens Ophalen
Haal de geparste informatie van een CV op met behulp van de 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. Proceslogboeken Ophalen
Haal de verwerkingslogboeken voor een specifiek CV op, handig voor het debuggen van parsinproblemen.
GET /get/{customer_token}/{resume_id}/logs
4. CV Verwijderen
Markeer een CV als verwijderd (logische verwijdering / soft delete).
DELETE /delete/{customer_token}/{resume_id}
Personi & Scoring
Personi & Scoring API
Een "Personi" is een ideaal kandidaatprofiel, gedefinieerd in JSON-formaat, waartegen CV's gescoord kunnen worden.
1. Personi Aanmaken
Maak een nieuw ideaal kandidaatprofiel aan. U kunt handmatig gedetailleerde criteria opgeven, of de vlaggen auto_weights en auto_keywords gebruiken om onze AI deze te laten genereren op basis van de functiebeschrijving.
POST /personi/create
Body Parameters (JSON)
| Sleutel | Type | Beschrijving |
|---|---|---|
customer_token * |
String | Uw klant-API-sleutel. |
custom_id * |
String | Een unieke ID voor de Personi in uw systeem. |
position * |
String | De functietitel. |
position_description * |
String | Gedetailleerde beschrijving van de rol. |
company_description * |
String | Beschrijving van het bedrijf. |
sector * |
String | De bedrijfssector van de functie. |
company |
String | De naam van het bedrijf. |
diploma |
String | Vereist minimaal opleidingsniveau. |
telework |
String | Thuiswerkbeleid. Waarden: FLEXIBLE, FULLTIME, HYBRID, NEVER, OCCASIONAL, ONDEMAND, PARTTIME, ROTATION. |
education_weight |
Number | Gewicht voor de opleiding-score (0-100). |
experience_weight |
Number | Gewicht voor de ervarings-score (0-100). |
skills_weight |
Number | Gewicht voor de vaardigheden-score (0-100). |
knowledge_weight |
Number | Gewicht voor de kennis-score (0-100). |
keywords_weight |
Number | Gewicht voor de trefwoorden-score (0-100). |
geolocation |
Object | Locatiecriteria: {"address": "string", "radius": number}. Radius in km (standaard 10). |
keywords |
Array | Handmatige trefwoorden: [{"word": "string", "is_mandatory": boolean}]. |
languages |
Array | Taaleisen: [{"id": "iso_code", "level": "A1-C2"}]. Niveaus: A1, A2, B1, B2, C1, C2. |
driving_licenses |
Array | Vereiste rijbewijzen, bijv. ["B", "C1"]. |
auto_keywords |
Boolean | Zet op true om automatisch trefwoorden te genereren. |
auto_weights |
Boolean | Zet op true om gewichten automatisch in te stellen. |
Opmerking over Gewichten: Als u handmatige gewichten gebruikt, moet de som van alle *_weight velden precies 100 zijn. Als er geen gewichten worden opgegeven en auto_weights onwaar is, wordt een standaardverdeling gebruikt.
Voorbeeld Verzoeken
Automatische Generatie (AI)
{
"custom_id": "MKT_ASSIST_001",
"customer_token": "uw_token",
"position": "Junior Marketing Assistant",
"position_description": "We are looking for...",
"company_description": "Innovate Corp...",
"sector": "Marketing",
"auto_keywords": true,
"auto_weights": true
}
Handmatige Configuratie
{
"custom_id": "SENIOR_DEV_002",
"customer_token": "uw_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. Alle Personi's Ophalen
Haal de lijst op van alle actieve Personi's voor uw klantaccount. Als meerdere Personi's dezelfde custom_id delen, wordt alleen de meest recent bijgewerkte teruggegeven.
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 Details Ophalen
Haal de volledige configuratie en details van een specifieke Personi op.
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": "Engels", "is_mandatory": true } ],
"skills": [ { "skill": "active_listening", "value": 72 } ]
}
}
}
4. CV Scoren tegen een Personi
Bereken de score van een specifiek CV tegen een specifiek Personi. Geeft optioneel een HTML-uitleg van de score terug.
POST /matching
Body Parameters (JSON)
| Sleutel | Type | Beschrijving |
|---|---|---|
resume_id * |
String | ID van het te scoren CV. |
personi_id * |
String of Array | ID van de Personi(s) waartegen gescoord moet worden. |
explainer |
String | Retourneert de uitleg van de score. Waarden: 'en', 'fr', 'es'. |
{
"success": true,
"message": "Success",
"data": {
"score": 60,
"personi_name": "Ontwikkelaar bij Trimoji"
}
}
5. Alle CV's Scoren tegen een Personi
Bereken de score van alle actieve CV's op uw account tegen één Personi, waarbij een gesorteerde lijst van de beste matches wordt geretourneerd.
POST /matchingAll
Body Parameters (JSON)
| Sleutel | Type | Beschrijving |
|---|---|---|
resume_id * |
String | ID van het te scoren CV. |
customer_token * |
String | Uw klant-API-sleutel. |
limit |
Integer | Max aantal resultaten (standaard 100). |
{
"success": true,
"message": "Success",
"data": [
{
"personi_id": "839d2953...",
"personi_name": "SENIOR HR BUSINESS PARTNER...",
"score": 100
}
]
}
6. Alle CV's Scoren tegen een Personi
Bereken de score van alle actieve CV's op uw account tegen één Personi.
POST /matchingAllResumes
Body Parameters (JSON)
| Sleutel | Type | Beschrijving |
|---|---|---|
customer_token * |
String | Uw klant-API-sleutel. |
personi_id * |
String | ID van de Personi waartegen gescoord moet worden. |
limit |
Integer | Max aantal CV's te scoren. |
{
"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 Verwijderen
Markeer een Personi als verwijderd (logische verwijdering / soft delete).
DELETE /delete/{customer_token}/personi/{personi_id}