TalentMind API

v1.0.0

Документация TalentMind API — программный доступ к анализу интервью, скорингу soft skills и оценке корпоративной совместимости кандидатов. REST API и вебхуки для встраивания ИИ-оценки в ваш ATS

Авторизация

Заголовок Authorization передаётся в формате Bearer {token}

Схема

BearerAuth

Тип

API Key

Заголовок

Authorization

Interviews

post

uploadInterview

Загрузить запись интервью на анализ

Request body · application/json

candidate_idrequired

string

Идентификатор кандидата

vacancy_idrequired

string

Идентификатор вакансии

media_urlrequired

string

URL записи интервью (mp4, mp3, m4a)

Responses

200Интервью принято в обработку
400Некорректный запрос
post/v1/interviews
Request
import axios from 'axios';

async function uploadInterview() {
  try {
    const response = await axios.post('https://api.talentmind.ru/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();
Response · application/json
{
  "success": true,
  "id": "int_8d24f0",
  "status": "processing",
  "created_at": "2026-06-13T09:24:00Z"
}
get

getInterview

Получить статус и результат анализа интервью

Path parameters

idrequired

string

Идентификатор интервью

Responses

200Успешно
404Интервью не найдено
get/v1/interviews/{id}
Request
import axios from 'axios';

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

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

listInterviews

Список интервью

Query parameters

status

string

Enum: processing · completed · failed

Фильтр по статусу

limit

integer

Default: 20

Количество записей. Максимум 100.

offset

integer

Default: 0

Смещение для пагинации.

Responses

200Успешно
400Некорректный запрос
get/v1/interviews
Request
import axios from 'axios';

async function listInterviews() {
  try {
    const response = await axios.get('https://api.talentmind.ru/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();
Response · application/json
{
  "success": true,
  "total": 128,
  "items": [
    { "id": "int_8d24f0", "status": "completed", "match": 0.88 },
    { "id": "int_7b15c2", "status": "processing", "match": null }
  ]
}

Candidates

get

getCandidateScore

Скоринг soft skills кандидата

Path parameters

idrequired

string

Идентификатор кандидата

Responses

200Успешно
404Кандидат не найден
get/v1/candidates/{id}/score
Request
import axios from 'axios';

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

getCandidateScore();
Response · 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

Полный отчёт по кандидату

Path parameters

idrequired

string

Идентификатор кандидата

Responses

200Успешно
404Кандидат не найден
get/v1/candidates/{id}/report
Request
import axios from 'axios';

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

getCandidateReport();
Response · application/json
{
  "success": true,
  "candidate": {
    "name": "Дмитрий Соколов",
    "position": "Старший менеджер проектов"
  },
  "compatibility": 0.74,
  "recommendation": "recommended",
  "strengths": ["Системное мышление", "Полный цикл проекта"],
  "risks": ["Высокие зарплатные ожидания"]
}
post

compareCandidates

Сравнить кандидатов по критериям

Request body · application/json

candidate_idsrequired

array<string>

Идентификаторы кандидатов (от 2 до 10)

criteria

string

Критерий сравнения (например, leadership)

Responses

200Успешно
400Некорректный запрос
post/v1/candidates/compare
Request
import axios from 'axios';

async function compareCandidates() {
  try {
    const response = await axios.post('https://api.talentmind.ru/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();
Response · application/json
{
  "success": true,
  "ranking": [
    { "candidate_id": "cand_4f21", "score": 0.88 },
    { "candidate_id": "cand_9a02", "score": 0.81 }
  ]
}

Culture

get

getCultureProfile

Профиль корпоративной культуры компании

Responses

200Успешно
get/v1/culture/profile
Request
import axios from 'axios';

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

getCultureProfile();
Response · 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

Оценка совместимости кандидата с ДНК компании

Request body · application/json

candidate_idrequired

string

Идентификатор кандидата

Responses

200Успешно
400Некорректный запрос
post/v1/culture/fit
Request
import axios from 'axios';

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

getCultureFit();
Response · application/json
{
  "success": true,
  "fit_score": 0.74,
  "matches": ["Исполнительская дисциплина", "Аналитический подход"],
  "attention": ["Командное взаимодействие"]
}

Webhooks

post

createWebhook

Подписаться на события анализа

Request body · application/json

urlrequired

string

URL для доставки событий

eventsrequired

array<string>

События: interview.completed, report.ready, candidate.scored

Responses

200Вебхук создан
400Некорректный запрос
post/v1/webhooks
Request
import axios from 'axios';

async function createWebhook() {
  try {
    const response = await axios.post('https://api.talentmind.ru/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();
Response · application/json
{
  "success": true,
  "id": "wh_2c91",
  "url": "https://acme.io/hooks/talentmind",
  "events": ["interview.completed", "report.ready"]
}
get

listWebhooks

Список вебхуков

Responses

200Успешно
get/v1/webhooks
Request
import axios from 'axios';

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

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

deleteWebhook

Удалить вебхук

Path parameters

idrequired

string

Идентификатор вебхука

Responses

200Вебхук удалён
404Вебхук не найден
delete/v1/webhooks/{id}
Request
import axios from 'axios';

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

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