Logotrimoji
Experimente grátis

API Hard Skills

Documentação da API de Currículos Trimoji

Última atualização: 22 de Maio de 2024

Esta API permite analisar (parsear) currículos, criar perfis de candidatos ideais (chamados "Personi") e pontuar currículos em relação a esses perfis para otimizar seu processo de recrutamento.

Configuração

Configuração das suas variáveis

Antes de usar esta API, por favor, configure as seguintes variáveis:

  • base_url: A URL base da API (ex: https://integration.trimoji.fr/api/v1/resume).
  • partner_token: Seu token de autenticação de parceiro único.
  • customer_token: Sua chave de API específica do cliente. Você pode obtê-la no Painel Trimoji clicando no botão "copiar minha chave de API".

Segurança

Autenticação

Todas as requisições da API devem incluir um cabeçalho (header) Authorization contendo seu partner_token.

Authorization: seu_partner_token_aqui

Assíncrono

Mecanismo de Callback (Webhook)

Várias operações, como o upload de currículos, são assíncronas. Quando o processamento for concluído, a Trimoji enviará os resultados para a URL callback_url que você forneceu.

Callback em caso de Sucesso

Os dados enviados para sua callback_url durante um parsing bem-sucedido seguirão esta estrutura JSON:


{
  "metadatas": {
    "sua_chave": "valor_personalizado"
  },
  "resumeData": {
    "firstname": "string",
    "lastname": "string",
    "email": "string",
    "phone": "string",
    "sex": "string ('f', 'm', ou '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 (code_iso)", "level": "string" }
  ],
  "hobbies": ["string"],
  "telework": "string | null ('Flexible', 'Full time', ...)"
}

Callback em caso de Falha

Se o processamento do currículo falhar, um callback será enviado contendo os detalhes do erro e os logs de processamento.


{
  "metadatas": {
    "uid": "user123",
    "source": "webapp"
  },
  "error": {
    "code": "PROCESSING_FAILED",
    "message": "Falha na extração dos dados do arquivo fornecido devido a um formato inválido."
  },
  "logs": [
    "[2024-05-21T10:00:05.123Z] [FILE_UPLOAD] [OK] Arquivo enviado com sucesso.",
    "[2024-05-21T10:00:06.456Z] [PROCESS_STARTED] [OK] Processamento iniciado.",
    "[2024-05-21T10:00:15.789Z] [DATA_STRUCTURE_GENERATION] [ERROR] Modelo de IA retornou uma estrutura inválida."
  ]
}

Parsing de Currículo

API de Parsing de Currículos

1. Enviar um currículo

Envie um arquivo de currículo para parsing assíncrono. Os resultados serão enviados para o callback_url.

POST /upload

Parâmetros do Body (form-data)

Chave Tipo Descrição
customer_token * Texto Sua chave de API do cliente.
uploaded_file * Arquivo Arquivo do currículo. Tamanho máximo: 5MB. Extensões permitidas: pdf, docx, png, jpg, jpeg, txt, webp, doc, rtf, pptx, otp, odp, odt.
callback_url Texto URL para receber os resultados assíncronos.
metadatas Texto String JSON personalizada para rastreamento.
personi_id Texto ID opcional de um Personi para vincular o currículo.
Exemplo de Resposta

{
    "success": true,
    "message": "Success",
    "data": {
        "resume_id": "6ff7d7fe-8e53-4ddf-b68a-f9d4658f5bc8"
    }
}

2. Obter informações do currículo

Recupere as informações parseadas de um currículo usando seu resume_id.

GET /get/{customer_token}/{resume_id}

Exemplo de Resposta

{
    "success": true,
    "message": "Success",
    "data": {
        "resumeData": {
            "firstname": "Lou",
            "lastname": "Pagès",
            "email": "[email protected]",
            "age": 22
        },
        "experiences": [ ... ],
        "diplomas": [ ... ]
    }
}

3. Obter os Logs do processo

Recupere os logs de processamento para um currículo específico, útil para depurar problemas de parsing.

GET /get/{customer_token}/{resume_id}/logs

4. Excluir um currículo

Marca um currículo como excluído (exclusão lógica / soft delete).

DELETE /delete/{customer_token}/{resume_id}

Personi & Pontuação

API Personi & Pontuação

Um "Personi" é um perfil de candidato ideal, definido em formato JSON, contra o qual os currículos podem ser pontuados.

1. Criar um Personi

Cria um novo perfil de candidato ideal. Você pode fornecer critérios detalhados manualmente, ou usar os sinalizadores auto_weights e auto_keywords para deixar nossa IA gerá-los com base na descrição da vaga.

POST /personi/create

Parâmetros do Body (JSON)

Chave Tipo Descrição
customer_token * String Sua chave de API do cliente.
custom_id * String Um ID único para o Personi em seu sistema.
position * String O título da vaga.
position_description * String Descrição detalhada do cargo.
company_description * String Descrição da empresa.
sector * String O setor de atuação da vaga.
company String O nome da empresa.
diploma String Nível mínimo de diploma exigido.
telework String Política de trabalho remoto. Valores: FLEXIBLE, FULLTIME, HYBRID, NEVER, OCCASIONAL, ONDEMAND, PARTTIME, ROTATION.
education_weight Number Peso para a pontuação de educação (0-100).
experience_weight Number Peso para a pontuação de experiência (0-100).
skills_weight Number Peso para a pontuação de habilidades (0-100).
knowledge_weight Number Peso para a pontuação de conhecimento (0-100).
keywords_weight Number Peso para a pontuação de palavras-chave (0-100).
geolocation Object Critérios de localização: {"address": "string", "radius": number}. Raio em km (padrão 10).
keywords Array Palavras-chave manuais: [{"word": "string", "is_mandatory": boolean}].
languages Array Requisitos de idioma: [{"id": "iso_code", "level": "A1-C2"}]. Níveis: A1, A2, B1, B2, C1, C2.
driving_licenses Array Carteiras de motorista exigidas, ex: ["B", "C1"].
auto_keywords Boolean Defina como true para gerar palavras-chave automaticamente.
auto_weights Boolean Defina como true para definir pesos automaticamente.

Nota sobre Pesos: Se você usar pesos manuais, a soma de todos os campos *_weight deve ser exatamente 100. Se nenhum peso for fornecido e auto_weights for falso, uma distribuição padrão será usada.

Exemplos de Requisições

Geração Automática (IA)


{
    "custom_id": "MKT_ASSIST_001",
    "customer_token": "seu_token",
    "position": "Junior Marketing Assistant",
    "position_description": "We are looking for...",
    "company_description": "Innovate Corp...",
    "sector": "Marketing",
    "auto_keywords": true,
    "auto_weights": true
}

Configuração Manual


{
    "custom_id": "SENIOR_DEV_002",
    "customer_token": "seu_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 }
}
Exemplo de Resposta

{
    "success": true,
    "message": "Success",
    "data": {
        "personi_id": "f8e1e2c3-6337-4644-9fbf-7e382d089e3d"
    }
}

2. Obter todos os Personis

Recupere a lista de todos os Personis ativos para sua conta de cliente. Se vários Personis compartilharem o mesmo custom_id, apenas o mais recentemente atualizado será retornado.

GET /get/{customer_token}/personi/all

Exemplo de Resposta

{
    "success": true,
    "message": "Success",
    "data": [
        {
            "id": "f8e1e2c3...",
            "custom_id": "SENIOR_DEV_002",
            "name": "Perfil de Engenheiro de Software Sênior",
            "created_at": "2024-05-15T10:00:00.000Z"
        }
    ]
}

3. Obter detalhes de um Personi

Recupere a configuração completa e os detalhes de um Personi específico.

GET /get/{customer_token}/personi/details/{personi_id}

Exemplo de Resposta

{
    "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": "Inglês", "is_mandatory": true } ],
            "skills": [ { "skill": "active_listening", "value": 72 } ]
        }
    }
}

4. Pontuar um currículo contra um Personi

Calcula a pontuação de um currículo específico contra um Personi específico. Retorna opcionalmente uma explicação em HTML da pontuação.

POST /matching

Parâmetros do Body (JSON)

Chave Tipo Descrição
resume_id * String ID do currículo a ser pontuado.
personi_id * String ou Array ID do(s) Personi(s) contra o(s) qual(is) pontuar.
explainer String Retorna a explicação da pontuação. Valores: 'en', 'fr', 'es'.
Exemplo de Resposta (Padrão)

{
    "success": true,
    "message": "Success",
    "data": {
        "score": 60,
        "personi_name": "Desenvolvedor na Trimoji"
    }
}

5. Pontuar todos os currículos contra um Personi

Calcula a pontuação de todos os currículos ativos em sua conta contra um único Personi, retornando uma lista ordenada das melhores correspondências.

POST /matchingAll

Parâmetros do Body (JSON)

Chave Tipo Descrição
resume_id * String ID do currículo a ser pontuado.
customer_token * String Sua chave de API do cliente.
limit Integer Número máximo de resultados (padrão 100).
Exemplo de Resposta

{
    "success": true,
    "message": "Success",
    "data": [
        {
            "personi_id": "839d2953...",
            "personi_name": "SENIOR HR BUSINESS PARTNER...",
            "score": 100
        }
    ]
}

6. Pontuar todos os currículos contra um Personi

Calcula a pontuação de todos os currículos ativos em sua conta contra um único Personi.

POST /matchingAllResumes

Parâmetros do Body (JSON)

Chave Tipo Descrição
customer_token * String Sua chave de API do cliente.
personi_id * String ID do Personi contra o qual pontuar.
limit Integer Número máximo de currículos a serem pontuados.
Exemplo de Resposta

{
    "success": true,
    "message": "Success",
    "data": [
        {
            "resume_id": "ac4d685e-c8e4-474d-a92a-16758009fafe",
            "score": 100
        },
        {
            "resume_id": "602d7fc9-2b85-4064-9ae6-ad5be08d5bcb",
            "score": 95
        }
    ]
}

7. Excluir um Personi

Marca um Personi como excluído (exclusão lógica / soft delete).

DELETE /delete/{customer_token}/personi/{personi_id}

Top