Trimoji Resume API Dokumentation
Letzte Aktualisierung: 22. Mai 2024
Diese API ermöglicht Ihnen das Analysieren (Parsen) von Lebensläufen, das Erstellen von idealen Kandidatenprofilen (genannt "Personi") und das Bewerten von Lebensläufen anhand dieser Profile, um Ihren Recruiting-Prozess zu optimieren.
Konfiguration
Konfigurieren Sie Ihre Variablen
Bevor Sie diese API verwenden, konfigurieren Sie bitte die folgenden Variablen:
-
base_url: Die Basis-URL der API (z.B.https://integration.trimoji.fr/api/v1/resume). -
partner_token: Ihr eindeutiger Partner-Authentifizierungsschlüssel. -
customer_token: Ihr kundenspezifischer API-Schlüssel. Sie können ihn im Trimoji Panel erhalten, indem Sie auf die Schaltfläche "meinen API-Schlüssel kopieren" klicken.
Sicherheit
Authentifizierung
Alle API-Anfragen müssen einen Authorization-Header enthalten, der Ihren partner_token enthält.
Authorization: Ihr_partner_token_hier
Asynchron
Callback-Mechanismus (Webhook)
Mehrere Operationen, wie das Hochladen von Lebensläufen, sind asynchron. Wenn die Verarbeitung abgeschlossen ist, sendet Trimoji die Ergebnisse an die von Ihnen angegebene callback_url.
Callback bei Erfolg
Die an Ihre callback_url gesendeten Daten bei erfolgreichem Parsen folgen dieser JSON-Struktur:
{
"metadatas": {
"ihr_schluessel": "benutzerdefinierter_wert"
},
"resumeData": {
"firstname": "string",
"lastname": "string",
"email": "string",
"phone": "string",
"sex": "string ('f', 'm', oder '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 bei Fehler
Wenn die Verarbeitung des Lebenslaufs fehlschlt, wird ein Callback gesendet, der die Fehlerdetails und die Verarbeitungsprotokolle (Logs) enthlt.
{
"metadatas": {
"uid": "user123",
"source": "webapp"
},
"error": {
"code": "PROCESSING_FAILED",
"message": "Fehler beim Extrahieren der Daten aus der bereitgestellten Datei aufgrund eines ungltigen Formats."
},
"logs": [
"[2024-05-21T10:00:05.123Z] [FILE_UPLOAD] [OK] Datei erfolgreich hochgeladen.",
"[2024-05-21T10:00:06.456Z] [PROCESS_STARTED] [OK] Verarbeitung gestartet.",
"[2024-05-21T10:00:15.789Z] [DATA_STRUCTURE_GENERATION] [ERROR] KI-Modell gab eine ungltige Struktur zurck."
]
}
CV Parsing
API zum Parsen von Lebensläufen
1. Lebenslauf hochladen
Senden Sie eine Lebenslaufdatei fr das asynchrone Parsen. Die Ergebnisse werden an die callback_url gesendet.
POST /upload
Body-Parameter (form-data)
| Schlüssel | Typ | Beschreibung |
|---|---|---|
customer_token * |
Text | Ihr Kunden-API-Schlüssel. |
uploaded_file * |
Datei | Lebenslaufdatei. Maximale Gre: 5 MB. Zulssige Erweiterungen: pdf, docx, png, jpg, jpeg, txt, webp, doc, rtf, pptx, otp, odp, odt. |
callback_url |
Text | URL zum Empfangen asynchroner Ergebnisse. |
metadatas |
Text | Benutzerdefinierte JSON-Zeichenfolge zur Nachverfolgung (Tracking). |
personi_id |
Text | ID eines optionalen Personi zur Verknpfung des Lebenslaufs. |
{
"success": true,
"message": "Success",
"data": {
"resume_id": "6ff7d7fe-8e53-4ddf-b68a-f9d4658f5bc8"
}
}
2. Lebenslaufinformationen abrufen
Ruft die geparsten Informationen eines Lebenslaufs anhand seiner resume_id ab.
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. Prozessprotokolle des Lebenslaufs abrufen
Ruft die Verarbeitungsprotokolle fr einen bestimmten Lebenslauf ab, ntzlich zur Fehlerbehebung bei Parsing-Problemen.
GET /get/{customer_token}/{resume_id}/logs
4. Lebenslauf löschen
Markiert einen Lebenslauf als geloscht (logische Lschung / Soft Delete).
DELETE /delete/{customer_token}/{resume_id}
Personi & Scoring
API Personi & Scoring
Ein "Personi" ist ein ideales Kandidatenprofil, das im JSON-Format definiert wird und mit dem Lebensläufe bewertet werden können.
1. Personi erstellen
Erstellt ein neues ideales Kandidatenprofil. Sie knnen detaillierte Kriterien manuell angeben oder die Flags auto_weights und auto_keywords verwenden, damit unsere KI diese basierend auf der Stellenbeschreibung generiert.
POST /personi/create
Body-Parameter (JSON)
| Schlüssel | Typ | Beschreibung |
|---|---|---|
customer_token * |
String | Ihr Kunden-API-Schlüssel. |
custom_id * |
String | Eine eindeutige ID fr den Personi in Ihrem System. |
position * |
String | Die Stellenbezeichnung. |
position_description * |
String | Detaillierte Beschreibung der Rolle. |
company_description * |
String | Beschreibung des Unternehmens. |
sector * |
String | Der Sektor der Stelle. |
company |
String | Der Name des Unternehmens. |
diploma |
String | Mindesterforderlicher Bildungsabschluss. |
telework |
String | Richtlinie fr Fernarbeit. Werte: FLEXIBLE, FULLTIME, HYBRID, NEVER, OCCASIONAL, ONDEMAND, PARTTIME, ROTATION. |
education_weight |
Number | Gewichtung fr den Bildungsscore (0-100). |
experience_weight |
Number | Gewichtung fr den Erfahrungs-Score (0-100). |
skills_weight |
Number | Gewichtung fr den Kompetenz-Score (0-100). |
knowledge_weight |
Number | Gewichtung fr den Wissens-Score (0-100). |
keywords_weight |
Number | Gewichtung fr den Stichwort-Score (0-100). |
geolocation |
Object | Ortskriterien: {"address": "string", "radius": number}. Radius in km (Standard 10). |
keywords |
Array | Manuelle Stichwrter: [{"word": "string", "is_mandatory": boolean}]. |
languages |
Array | Sprachanforderungen: [{"id": "iso_code", "level": "A1-C2"}]. Stufen: A1, A2, B1, B2, C1, C2. |
driving_licenses |
Array | Erforderliche Fhrerscheine, z.B. ["B", "C1"]. |
auto_keywords |
Boolean | Auf true setzen, um Stichwrter automatisch zu generieren. |
auto_weights |
Boolean | Auf true setzen, um Gewichtungen automatisch festzulegen. |
Hinweis zu Gewichtungen: Wenn Sie manuelle Gewichtungen verwenden, muss die Summe aller Felder *_weight genau 100 ergeben. Wenn keine Gewichtungen angegeben werden und auto_weights falsch ist, wird eine Standardverteilung verwendet.
Beispielanfragen
Automatische Generierung (KI)
{
"custom_id": "MKT_ASSIST_001",
"customer_token": "ihr_token",
"position": "Junior Marketing Assistant",
"position_description": "We are looking for...",
"company_description": "Innovate Corp...",
"sector": "Marketing",
"auto_keywords": true,
"auto_weights": true
}
Manuelle Konfiguration
{
"custom_id": "SENIOR_DEV_002",
"customer_token": "ihr_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 Personis abrufen
Ruft die Liste aller aktiven Personis fr Ihr Kundenkonto ab. Wenn mehrere Personis dieselbe custom_id teilen, wird nur das zuletzt aktualisierte zurckgegeben.
GET /get/{customer_token}/personi/all
{
"success": true,
"message": "Success",
"data": [
{
"id": "f8e1e2c3...",
"custom_id": "SENIOR_DEV_002",
"name": "Senior Software Engineer Profil",
"created_at": "2024-05-15T10:00:00.000Z"
}
]
}
3. Personi-Details abrufen
Ruft die vollstndige Konfiguration und Details eines bestimmten Personi ab.
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. Lebenslauf gegen einen Personi bewerten
Berechnet den Score eines bestimmten Lebenslaufs gegen einen bestimmten Personi. Gibt optional eine HTML-Erklrung des Scores zurck.
POST /matching
Body-Parameter (JSON)
| Schlüssel | Typ | Beschreibung |
|---|---|---|
resume_id * |
String | ID des zu bewertenden Lebenslaufs. |
personi_id * |
String oder Array | ID des/der Personi(s), gegen den/die bewertet werden soll. |
explainer |
String | Gibt die Erklrung des Scores zurck. Werte: 'en', 'fr', 'es'. |
{
"success": true,
"message": "Success",
"data": {
"score": 60,
"personi_name": "Entwickler bei Trimoji"
}
}
5. Alle Lebensläufe gegen einen Personi bewerten
Berechnet den Score aller aktiven Lebensläufe Ihres Kontos gegen einen einzelnen Personi und gibt eine sortierte Liste der besten Treffer zurck.
POST /matchingAll
Body-Parameter (JSON)
| Schlüssel | Typ | Beschreibung |
|---|---|---|
resume_id * |
String | ID des zu bewertenden Lebenslaufs. |
customer_token * |
String | Ihr Kunden-API-Schlüssel. |
limit |
Integer | Maximale Anzahl der Ergebnisse (Standard 100). |
{
"success": true,
"message": "Success",
"data": [
{
"personi_id": "839d2953...",
"personi_name": "SENIOR HR BUSINESS PARTNER...",
"score": 100
}
]
}
6. Alle Lebensläufe gegen alle Personis bewerten
Berechnet den Score aller aktiven Lebensläufe Ihres Kontos gegen einen einzelnen Personi.
POST /matchingAllResumes
Body-Parameter (JSON)
| Schlüssel | Typ | Beschreibung |
|---|---|---|
customer_token * |
String | Ihr Kunden-API-Schlüssel. |
personi_id * |
String | ID des Personi, gegen den bewertet werden soll. |
limit |
Integer | Maximale Anzahl der zu bewertenden Lebensläufe. |
{
"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 löschen
Markiert einen Personi als geloscht (logische Lschung / Soft Delete).
DELETE /delete/{customer_token}/personi/{personi_id}