TalentMind API

v1.0.0

Documentación de la API de TalentMind: acceso programático al análisis de entrevistas, la evaluación de habilidades blandas y la valoración de la compatibilidad corporativa de los candidatos. API REST y webhooks para integrar la evaluación con IA en tu ATS

Autorización

El encabezado Authorization se envía en el formato Bearer {token}

Esquema

BearerAuth

Tipo

API Key

Encabezado

Authorization

Entrevistas

post

uploadInterview

Sube una grabación de entrevista para su análisis

Cuerpo de la solicitud · application/json

candidate_idobligatorio

string

Identificador del candidato

vacancy_idobligatorio

string

Identificador de la vacante

media_urlobligatorio

string

URL de la grabación de la entrevista (mp4, mp3, m4a)

Respuestas

200Entrevista aceptada para su procesamiento
400Solicitud incorrecta
post/v1/interviews
Solicitud
import axios from 'axios';

async function uploadInterview() {
  try {
    const response = await axios.post('https://api.talentmind.app/v1/interviews', {
      candidate_id: 'cand_4f21',
      vacancy_id: 'ui-engineer',
      media_url: 'https://cdn.acme.io/int-204.mp4'
    }, {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

uploadInterview();
Respuesta · application/json
{
  "success": true,
  "id": "int_8d24f0",
  "status": "processing",
  "created_at": "2026-06-13T09:24:00Z"
}
get

getInterview

Obtén el estado y el resultado del análisis de una entrevista

Parámetros de ruta

idobligatorio

string

Identificador de la entrevista

Respuestas

200Éxito
404Entrevista no encontrada
get/v1/interviews/{id}
Solicitud
import axios from 'axios';

async function getInterview() {
  try {
    const response = await axios.get('https://api.talentmind.app/v1/interviews/int_8d24f0', {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

getInterview();
Respuesta · application/json
{
  "success": true,
  "id": "int_8d24f0",
  "status": "completed",
  "match": 0.88,
  "report_url": "https://app.talentmind.app/r/int_8d24f0",
  "scores": {
    "leadership": 0.88,
    "communication": 0.84,
    "empathy": 0.75,
    "logic": 0.76
  }
}
get

listInterviews

Lista de entrevistas

Parámetros de consulta

status

string

Enum: processing · completed · failed

Filtrar por estado

limit

integer

Predeterminado: 20

Número de registros. Máximo 100.

offset

integer

Predeterminado: 0

Desplazamiento para la paginación.

Respuestas

200Éxito
400Solicitud incorrecta
get/v1/interviews
Solicitud
import axios from 'axios';

async function listInterviews() {
  try {
    const response = await axios.get('https://api.talentmind.app/v1/interviews', {
      headers: { Authorization: 'Bearer YOUR_API_KEY' },
      params: {
        status: 'completed',
        limit: 20,
        offset: 0
      }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

listInterviews();
Respuesta · application/json
{
  "success": true,
  "total": 128,
  "items": [
    { "id": "int_8d24f0", "status": "completed", "match": 0.88 },
    { "id": "int_7b15c2", "status": "processing", "match": null }
  ]
}

Candidatos

get

getCandidateScore

Evalúa las habilidades blandas de un candidato

Parámetros de ruta

idobligatorio

string

Identificador del candidato

Respuestas

200Éxito
404Candidato no encontrado
get/v1/candidates/{id}/score
Solicitud
import axios from 'axios';

async function getCandidateScore() {
  try {
    const response = await axios.get('https://api.talentmind.app/v1/candidates/cand_4f21/score', {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

getCandidateScore();
Respuesta · application/json
{
  "success": true,
  "candidate_id": "cand_4f21",
  "match": 0.88,
  "scores": {
    "leadership": 0.88,
    "communication": 0.84,
    "empathy": 0.75,
    "planning": 0.85,
    "stress_tolerance": 0.68
  }
}
get

getCandidateReport

Informe completo del candidato

Parámetros de ruta

idobligatorio

string

Identificador del candidato

Respuestas

200Éxito
404Candidato no encontrado
get/v1/candidates/{id}/report
Solicitud
import axios from 'axios';

async function getCandidateReport() {
  try {
    const response = await axios.get('https://api.talentmind.app/v1/candidates/cand_4f21/report', {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

getCandidateReport();
Respuesta · application/json
{
  "success": true,
  "candidate": {
    "name": "Dmitry Sokolov",
    "position": "Senior Project Manager"
  },
  "compatibility": 0.74,
  "recommendation": "recommended",
  "strengths": ["Systems thinking", "End-to-end project ownership"],
  "risks": ["High salary expectations"]
}
post

compareCandidates

Compara candidatos por criterios

Cuerpo de la solicitud · application/json

candidate_idsobligatorio

array<string>

Identificadores de candidatos (de 2 a 10)

criteria

string

Criterio de comparación (por ejemplo, liderazgo)

Respuestas

200Éxito
400Solicitud incorrecta
post/v1/candidates/compare
Solicitud
import axios from 'axios';

async function compareCandidates() {
  try {
    const response = await axios.post('https://api.talentmind.app/v1/candidates/compare', {
      candidate_ids: ['cand_4f21', 'cand_9a02'],
      criteria: 'leadership'
    }, {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

compareCandidates();
Respuesta · application/json
{
  "success": true,
  "ranking": [
    { "candidate_id": "cand_4f21", "score": 0.88 },
    { "candidate_id": "cand_9a02", "score": 0.81 }
  ]
}

Cultura

get

getCultureProfile

Perfil de la cultura corporativa de la empresa

Respuestas

200Éxito
get/v1/culture/profile
Solicitud
import axios from 'axios';

async function getCultureProfile() {
  try {
    const response = await axios.get('https://api.talentmind.app/v1/culture/profile', {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

getCultureProfile();
Respuesta · application/json
{
  "success": true,
  "parameters_count": 54,
  "dimensions": {
    "innovation": 0.64,
    "stability": 0.78,
    "people": 0.72,
    "results": 0.81,
    "detail": 0.75,
    "team": 0.69,
    "competitiveness": 0.58
  }
}
post

getCultureFit

Evalúa la afinidad de un candidato con el ADN de la empresa

Cuerpo de la solicitud · application/json

candidate_idobligatorio

string

Identificador del candidato

Respuestas

200Éxito
400Solicitud incorrecta
post/v1/culture/fit
Solicitud
import axios from 'axios';

async function getCultureFit() {
  try {
    const response = await axios.post('https://api.talentmind.app/v1/culture/fit', {
      candidate_id: 'cand_4f21'
    }, {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

getCultureFit();
Respuesta · application/json
{
  "success": true,
  "fit_score": 0.74,
  "matches": ["Execution discipline", "Analytical approach"],
  "attention": ["Team collaboration"]
}

Webhooks

post

createWebhook

Suscríbete a los eventos de análisis

Cuerpo de la solicitud · application/json

urlobligatorio

string

URL para la entrega de eventos

eventsobligatorio

array<string>

Eventos: interview.completed, report.ready, candidate.scored

Respuestas

200Webhook creado
400Solicitud incorrecta
post/v1/webhooks
Solicitud
import axios from 'axios';

async function createWebhook() {
  try {
    const response = await axios.post('https://api.talentmind.app/v1/webhooks', {
      url: 'https://acme.io/hooks/talentmind',
      events: ['interview.completed', 'report.ready']
    }, {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

createWebhook();
Respuesta · application/json
{
  "success": true,
  "id": "wh_2c91",
  "url": "https://acme.io/hooks/talentmind",
  "events": ["interview.completed", "report.ready"]
}
get

listWebhooks

Lista de webhooks

Respuestas

200Éxito
get/v1/webhooks
Solicitud
import axios from 'axios';

async function listWebhooks() {
  try {
    const response = await axios.get('https://api.talentmind.app/v1/webhooks', {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

listWebhooks();
Respuesta · application/json
{
  "success": true,
  "items": [
    {
      "id": "wh_2c91",
      "url": "https://acme.io/hooks/talentmind",
      "events": ["interview.completed", "report.ready"]
    }
  ]
}
delete

deleteWebhook

Elimina un webhook

Parámetros de ruta

idobligatorio

string

Identificador del webhook

Respuestas

200Webhook eliminado
404Webhook no encontrado
delete/v1/webhooks/{id}
Solicitud
import axios from 'axios';

async function deleteWebhook() {
  try {
    const response = await axios.delete('https://api.talentmind.app/v1/webhooks/wh_2c91', {
      headers: { Authorization: 'Bearer YOUR_API_KEY' }
    });
    console.log(response.data);
  } catch (error) {
    console.error('Error:', error);
  }
}

deleteWebhook();
Respuesta · application/json
{
  "success": true,
  "deleted": true
}