Logotrimoji
Prova gratis

API Hardskills

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.
Exempel på svar

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

Exempel på svar

{
    "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 }
}
Exempel på svar

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

Exempel på svar

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

Exempel på svar

{
    "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'.
Exempel på svar (Standard)

{
    "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).
Exempel på svar

{
    "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.
Exempel på svar

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

Top