Traffit MCP by usefulapi
Read candidates, jobs, stages and clients; add notes to candidates in Traffit.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen traffit_get_candidate_activities
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"traffit": {
"url": "https://traffit.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://traffit.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (24)
🟢traffit_list_candidates(page, page_size, filter, sort)
List candidates in the ATS with paging, filters (e.g. created_at, name, lastname) and sort. Returns total_count and items. Scope: employee. GET /employees/.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_candidate(candidate_id)
Get one candidate by id with contact data, status, files list and custom fields. Scope: employee. GET /employees/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"minLength": 1,
"description": "The candidate id (numeric id)."
}
},
"required": [
"candidate_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_candidate_tags(candidate_id)
List the tags of one candidate. Scope: employee. GET /employees/{id}/tags.
Esquema de entrada
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"minLength": 1,
"description": "The candidate id (numeric id)."
}
},
"required": [
"candidate_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_candidate_jobs(candidate_id)
List the jobs (recruitments) a candidate takes part in. Scope: employee. GET /employees/{id}/recruitments.
Esquema de entrada
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"minLength": 1,
"description": "The candidate id (numeric id)."
}
},
"required": [
"candidate_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_candidate_activities(candidate_id, page, page_size, filter, sort)
List the activity history of one candidate (notes, stage moves, mails). Scope: employee. GET /employees/{id}/activities.
Esquema de entrada
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"minLength": 1,
"description": "The candidate id (numeric id)."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"required": [
"candidate_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_candidate_files(candidate_id)
List the files (file names and upload dates) of one candidate. Scope: employee. GET /employees/{id}/files.
Esquema de entrada
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"minLength": 1,
"description": "The candidate id (numeric id)."
}
},
"required": [
"candidate_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_candidate_sources(candidate_id)
List where one candidate came from (source records). Scope: source. GET /sources/employees/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"minLength": 1,
"description": "The candidate id (numeric id)."
}
},
"required": [
"candidate_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_jobs(page, page_size, filter, sort)
List jobs (recruitments) with paging, filters and sort. Scope: recruitment. GET /recruitments/.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_job(job_id)
Get one job (recruitment) by id with client, responsible people, status and custom fields. Scope: recruitment. GET /recruitments/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"minLength": 1,
"description": "The job id (numeric id)."
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_job_candidates(job_id, page, page_size, filter, sort)
List the candidates attached to one job. Scope: recruitment. GET /recruitments/{id}/employees.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"minLength": 1,
"description": "The job id (numeric id)."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_job_states(job_id, page, page_size, filter, sort)
List the pipeline stages (states) of one job. Scope: recruitment. GET /recruitments/{id}/states.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"minLength": 1,
"description": "The job id (numeric id)."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_job_stage_counts(job_id)
Count the candidates in each stage of one job. Scope: recruitment. GET /recruitments/{id}/states/counter.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"minLength": 1,
"description": "The job id (numeric id)."
}
},
"required": [
"job_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_stage_candidates(job_id, state_id, page, page_size, filter, ...)
List the candidates that are now in one stage of one job. Get stage ids from traffit_list_job_states. Scope: recruitment. GET /recruitments/{job}/states/{state}/employees.
Esquema de entrada
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"minLength": 1,
"description": "The job id (numeric id)."
},
"state_id": {
"type": "string",
"minLength": 1,
"description": "The stage (state) id (numeric id)."
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"required": [
"job_id",
"state_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_clients(page, page_size, filter, sort)
List client companies (CRM) with paging, filters and sort. Scope: client. GET /clients/.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_client(client_id)
Get one client company by id. Scope: client. GET /clients/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"client_id": {
"type": "string",
"minLength": 1,
"description": "The client id (numeric id)."
}
},
"required": [
"client_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_contacts(page, page_size, filter, sort)
List contact people (crm_persons) of client companies. Scope: crm_person. GET /crm_persons/.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_contact(contact_id)
Get one contact person by id. Scope: crm_person. GET /crm_persons/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"contact_id": {
"type": "string",
"minLength": 1,
"description": "The contact (crm_person) id (numeric id)."
}
},
"required": [
"contact_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_crm_activities(page, page_size, filter, sort)
List CRM activities (calls, meetings, notes on clients and contacts). Scope: crm_activity. GET /crm_activities/.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_users(page, page_size, filter, sort)
List users of the Traffit account with their groups and permission groups. Scope: user. GET /users/.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_user(user_id)
Get one Traffit user by id. Scope: user. GET /users/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"user_id": {
"type": "string",
"minLength": 1,
"description": "The user id (numeric id)."
}
},
"required": [
"user_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_talent_pools(page, page_size, filter, sort)
List talent pools (named groups of candidates). Scope: talent. GET /talents.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_list_sources(page, page_size, filter, sort)
List candidate sources (job boards, referrals). Scope: source. GET /sources.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page_size": {
"description": "Records per page (default 20, max 100).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"filter": {
"description": "Filters joined by AND, keyed by field name, e.g. {\"created_at\":{\"value\":\"2026-01-01\",\"comparison\":\">=\"}}. Custom fields work when exposed in the API.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Value to compare with."
},
"comparison": {
"type": "string",
"enum": [
"=",
"!=",
"<=",
">=",
"in",
"like"
],
"description": "Comparison operator."
}
},
"required": [
"value",
"comparison"
]
}
},
"sort": {
"description": "Sort order keyed by field name, e.g. {\"created_at\":\"DESC\"}.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢traffit_get_workflow(workflow_id)
Get one recruitment workflow by id with its stages. Scope: dictionary. GET /workflows/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"workflow_id": {
"type": "string",
"minLength": 1,
"description": "The workflow id (a job shows its workflow_id) (numeric id)."
}
},
"required": [
"workflow_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴traffit_add_candidate_note(candidate_id, content)
WRITE: add a text note to one candidate's activity history. Each call adds a new note, so do not repeat a call that succeeded. Scope: employee. POST /employees/{id}/notes.
Esquema de entrada
{
"type": "object",
"properties": {
"candidate_id": {
"type": "string",
"minLength": 1,
"description": "The candidate id (numeric id)."
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 10000,
"description": "The note text."
}
},
"required": [
"candidate_id",
"content"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia