CazVid
Documentación de la API

Candidate Search API

Candidate Search API v1

Busca en el pool de candidatos de CazVid con una consulta en lenguaje natural y filtros estructurados. Los resultados devuelven perfiles públicos de candidatos sin datos de contacto - contacta a un candidato a través de su perfil de CazVid o de la app.

URL base

https://aio-backend-prod.cazvid.app/api/v3.0/candidate-search

Descripción general

La v1 tiene dos endpoints públicos. Usa /public/search para encontrar candidatos con una consulta y filtros opcionales. Usa /public/usage para consultar tu cuota diaria restante sin gastarla.

POST/public/search
Busca perfiles de candidatos con una consulta en lenguaje natural y filtros estructurados opcionales. Devuelve una página de resultados.
GET/public/usage
Consulta la cuota diaria de la organización que llama. Esta llamada no cuenta para la cuota.

Los resultados nunca incluyen datos de contacto

Los resultados de candidatos no incluyen correo, teléfono ni LinkedIn - por diseño. Usa el candidateId o el cazumeUrl devueltos para contactar a un candidato a través de la app de CazVid o de su perfil público. No intentes reidentificar ni contactar a los candidatos fuera de la plataforma.

Autenticación

Envía tu clave de API con el encabezado x-api-key o como un token Authorization: Bearer. Es la misma clave de CazVid Developer API que la de Job Builder - una sola clave sirve para ambos productos. Las claves pertenecen a una organización; los propietarios y administradores las gestionan en la app en Perfil > Developer API. Las claves en texto plano se muestran una sola vez al crearlas y CazVid las almacena solo como hash. Trata las claves como secretos: no las pongas en código de frontend, apps móviles, capturas de pantalla, registros ni mensajes de soporte.

x-api-key: cazvid_jb_...
Authorization: Bearer cazvid_jb_...
Content-Type: application/json
El acceso a la API en producción requiere un plan Platinum o superior. Una clave sin el alcance de candidate-search recibe un 403; los propietarios y administradores de la organización gestionan las claves desde la sección Developer API en CazVid.

Estructura del resultado

Cada resultado es un perfil público de candidato depurado. Los campos anulables se omiten o son null cuando CazVid no tiene ese dato. candidateId es un token pc1. opaco y estable, no un id de plataforma sin procesar y no reversible por quien llama. cazumeUrl solo está presente cuando el candidato ha publicado un perfil público de Cazume.

CampoTipoDescripción
candidateIdstringToken de candidato opaco y estable (pc1....). Úsalo para contactar al candidato a través de la app de CazVid; no es un id de plataforma sin procesar y no es reversible.
displayNamestring | nullNombre para mostrar del candidato, con la información de contacto depurada.
headlinestring | nullPuesto actual o más reciente resuelto.
summarystring | nullResumen breve de experiencia, con la información de contacto depurada.
topSkillsstring[]Habilidades principales, con la información de contacto depurada.
matchedSkillsstring[]Subconjunto de habilidades principales que coincidieron con la consulta.
matchTierstring | nullNivel relativo de coincidencia para esta consulta cuando está disponible; trátalo como una etiqueta opaca.
locationNamestring | nullUbicación del candidato en formato legible.
countryCodestring | nullCódigo de país ISO 3166-1 alfa-2, cuando está disponible.
isRemotebooleanSi el candidato tiene disponibilidad remota.
languagestring | nullIdioma del currículum ISO 639-1, cuando está disponible.
hasVideobooleanSi existe un perfil de video reproducible.
videoUrlstring | nullURL del perfil de video alojado en CazVid, cuando está disponible.
thumbnailUrlstring | nullURL de la miniatura del video alojada en CazVid, cuando está disponible.
avatarUrlstring | nullURL de la imagen de avatar alojada en CazVid, cuando está disponible.
cazumeUrlstring | nullURL del perfil público de Cazume (https://cazvid.com/cazume/<slug>), presente solo cuando el candidato ha publicado uno.
updatedAtstring | nullMarca de tiempo ISO 8601 del contenido buscable más reciente del candidato.
{
  "results": [
    {
      "candidateId": "pc1.aGVsbG8td29ybGQ",
      "displayName": "Maria G.",
      "headline": "Bilingual Customer Support Specialist",
      "summary": "Five years supporting SaaS customers in English and Spanish.",
      "topSkills": ["Customer support", "Zendesk", "Bilingual (EN/ES)"],
      "matchedSkills": ["Customer support", "Bilingual (EN/ES)"],
      "matchTier": "local",
      "locationName": "Mexico City, Mexico",
      "countryCode": "MX",
      "isRemote": true,
      "language": "en",
      "hasVideo": true,
      "videoUrl": "https://ik.imagekit.io/cazvid/videos/example.mp4",
      "thumbnailUrl": "https://ik.imagekit.io/cazvid/thumbs/example.jpg",
      "avatarUrl": "https://ik.imagekit.io/cazvid/avatars/example.jpg",
      "cazumeUrl": "https://cazvid.com/cazume/maria-g",
      "updatedAt": "2026-07-01T12:30:00.000Z"
    }
  ],
  "hasMore": true,
  "page": 1,
  "pageSize": 10
}

Paginación

La respuesta envuelve los resultados con metadatos de paginación. Esta API pagina solo con hasMore - no hay un conteo total.

  • results - los perfiles de candidatos de esta página.
  • hasMore - true cuando existe otra página. Solicita la siguiente incrementando page.
  • page - el número de página (base 1) devuelto.
  • pageSize - el tamaño de página devuelto.
  • No hay campo de conteo total. No esperes un total ni un count: sigue solicitando páginas mientras hasMore sea true.

Consultar la cuota restante

GET /public/usage devuelve la cuota diaria de Candidate Search de la organización que llama. Usa la misma autenticación que la búsqueda y no cuenta para la cuota, así que puedes consultarlo antes de un lote para evitar respuestas 429. Las consultas están limitadas a 60 solicitudes por minuto por clave de API; al excederlo se devuelve la forma estándar de 429 con details.period en minute.

GET/public/usage
Consulta la cuota diaria de la organización que llama. Esta llamada no cuenta para la cuota.
curl https://aio-backend-prod.cazvid.app/api/v3.0/candidate-search/public/usage \
  -H "x-api-key: cazvid_jb_..."
CampoTipoDescripción
dailyQuotanumberTotal de llamadas de búsqueda exitosas permitidas por organización por día UTC.
usednumberLlamadas de búsqueda que consumen cuota realizadas hoy (UTC) con las claves de esta organización.
remainingnumberLlamadas exitosas restantes antes de que se reinicie la cuota.
resetsAtstring (ISO 8601)Marca de tiempo ISO 8601 de la próxima medianoche UTC, cuando se reinicia la cuota.
period"utc_day"Ventana de la cuota. Siempre utc_day en la v1.
{
  "dailyQuota": 100,
  "used": 12,
  "remaining": 88,
  "resetsAt": "2026-07-08T00:00:00.000Z",
  "period": "utc_day"
}

Errores

Las respuestas de error usan valores errorCode estables para que las integraciones no tengan que analizar mensajes de texto. Cada error devuelve el path de la solicitud; las respuestas 429 añaden retryAfter, el número de segundos hasta que se reinicia la ventana del límite. Un 429 de la cuota diaria lleva details.period utc_day; un 429 del límite por minuto o del límite de consultas de uso lleva minute.

EstadoCódigoSignificado
400VALIDATION_ERROREl cuerpo de la solicitud no pasó la validación (por ejemplo la longitud de query, los límites de page o pageSize, el formato de language o el formato de createdAfter).
401API_KEY_MISSINGNo se envió ninguna clave de API.
401API_KEY_INVALIDLa clave no existe o no se puede verificar.
401API_KEY_EXPIREDLa clave superó su fecha de expiración.
401API_KEY_REVOKEDLa clave fue revocada.
403PLAN_REQUIREDEl acceso a la API en producción requiere un plan Platinum o superior.
403SCOPE_FORBIDDENLa clave no lleva el alcance de candidate-search.
403ORG_ACCESS_DENIEDLa clave no puede acceder a esta organización.
403WORKSPACE_ACCESS_DENIEDEl workspaceId en el cuerpo de la solicitud no pertenece a tu clave de API.
429RATE_LIMIT_EXCEEDEDSe alcanzó un límite: la cuota diaria (details.period utc_day) o el límite por minuto o el límite de consultas de uso (details.period minute).
504SEARCH_TIMEOUTLa búsqueda de candidatos tardó demasiado. Reintenta la solicitud.
500CANDIDATE_SEARCH_API_ERROROcurrió un error inesperado del servidor, o una dependencia no estaba disponible.
{
  "statusCode": 429,
  "errorCode": "RATE_LIMIT_EXCEEDED",
  "message": "Daily Candidate Search API quota exceeded.",
  "details": {
    "limit": 100,
    "period": "utc_day"
  },
  "retryAfter": 21600,
  "path": "/api/v3.0/candidate-search/public/search"
}

Uso aceptable

Los datos de candidatos se proporcionan para atender la solicitud del usuario final que tienes enfrente, no para copiarse ni revenderse. Al usar esta API aceptas lo siguiente. Estos términos pueden ser reemplazados por términos formales de la API cuando la API pase a disponibilidad general.

  • Sin duplicación masiva ni redistribución. No copies el índice de candidatos a tu propio almacén ni construyas un directorio o conjunto de datos competidor a partir de él.
  • Sin retención más allá de atender la solicitud. Conserva los resultados solo el tiempo necesario para responder la solicitud que tienes enfrente; no construyas una copia persistente de los perfiles de candidatos.
  • Sin reventa. Los perfiles de candidatos y cualquier campo derivado de ellos no pueden venderse, sublicenciarse ni redistribuirse.
  • Contacta a los candidatos solo a través de CazVid. Los resultados no incluyen datos de contacto; contacta a un candidato a través de su perfil público de Cazume o de la app de CazVid, nunca fuera de la plataforma.
  • Sin evasión de la cuota. No uses varias claves, organizaciones ni cuentas para evadir la cuota diaria por organización ni el límite por minuto.

Límites y comportamiento

  • La cuota de la v1 es de 100 llamadas exitosas a search por organización por día UTC. Es una cuota separada de la de Job Builder API.
  • Un límite por organización de 20 búsquedas por minuto protege el backend de búsqueda compartido. Al excederlo se devuelve 429 con details.period en minute.
  • pageSize está limitado a 25 y page a 100. Las solicitudes por encima de esos límites devuelven 400 VALIDATION_ERROR.
  • Los resultados no incluyen datos de contacto (ni correo, ni teléfono, ni LinkedIn) ni ids de plataforma sin procesar. Contacta a los candidatos a través de la app de CazVid o de su perfil de Cazume.
  • Rota las claves creando una clave nueva, actualizando tu integración y luego revocando la anterior. La misma clave sirve también para la Job Builder API.

Usar desde un agente (MCP)

¿Prefieres controlar la búsqueda de candidatos desde un agente de IA en vez de HTTP directo? El servidor MCP de CazVid expone search_candidates (además de list_api_usage) a Claude Code, Claude.ai, ChatGPT, Cursor y VS Code, con esta misma clave de API y cuota diaria.

Lee la documentación del servidor MCP