Evaluar a una persona candidata
Actualizado
Una evaluación es una entrevista con IA construida a partir de una de tus plantillas de evaluación. La persona candidata la hace cuando le viene bien, y los resultados vuelven a Orbit. Quien trabaja en selección envía evaluaciones desde Orbit. Esta página es para enviarlas desde tu propio sistema, por ejemplo cuando un cambio de etapa en tu ATS debería invitar a la persona candidata sin que nadie abra Orbit.
Qué necesitas
- Una clave con el permiso Screening, creada en Orbit → Configuración → Claves de API. Es un permiso aparte: una clave que lee o gestiona empleos responde
403aquí, y una clave de Screening no puede leer empleos. - Un aviso gestionado. Evaluar forma parte de gestionar un aviso, y alguien de selección lo activa en Orbit. En un aviso que no está gestionado, la petición responde
409conad_not_managed. - Tres ids: el
jobIddel puesto, el id de la persona candidata en ese puesto y eltemplateIdde una de tus plantillas de evaluación activas.
export ORBIT_SCREENING_KEY="…una clave con el permiso Screening…"
Invitar a la persona candidata
curl -X POST https://api.wipperoz.com/v1/jobs/job_01J8Z3K9Q0EXAMPLE/candidates/app_01J9B2C3D4EXAMPLE/screening \
-H "Authorization: Bearer $ORBIT_SCREENING_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "tpl_01J9C3D4E5EXAMPLE",
"completeBy": "2026-10-02T00:00:00.000Z",
"message": "Gracias por postularte. Te llevará unos quince minutos.",
"language": "es"
}'
templateIdes el único campo obligatorio. Tiene que ser una de las plantillas de evaluación activas de tu cuenta.completeByes la fecha límite, como fecha ISO 8601. Sin ella, la persona candidata tiene siete días.messagees una nota que la persona candidata lee en la invitación, de hasta 1.000 caracteres.languageesen,es,fropt, yenpor defecto. Es el idioma del correo de invitación cuando se llega a la persona candidata por correo.
Un campo que la ruta no conoce responde 400, como en todas las escrituras de esta API.
{
"screening": {
"screeningId": "8d3f6a2e-4b1c-4f0a-9e7d-2c5b8a1f0e3d",
"jobId": "job_01J8Z3K9Q0EXAMPLE",
"candidateId": "app_01J9B2C3D4EXAMPLE",
"templateId": "tpl_01J9C3D4E5EXAMPLE",
"status": "invited",
"deliveryPath": "token",
"completeBy": "2026-10-02T00:00:00.000Z",
"requestedAt": "2026-09-25T01:10:00.000Z"
},
"billing": "overage",
"priceCents": 300,
"currency": "AUD"
}
deliveryPathdice cómo se llegó a la persona candidata, igual que lo hace Orbit:interviewes una solicitud de entrevista en su CV Virtual, ytokenes un correo con un enlace de un solo uso. Su dirección de correo nunca se devuelve.billingesincludedcuando la evaluación usó una de las incluidas en el aviso, yoveragecuando es una adicional.priceCentses el precio por evaluación de la plantilla, fijado en este momento, en unidades menores y sin GST. Una evaluación adicional se factura a ese precio solo si la persona candidata la completa: si nunca la hace, no cuesta nada.
De dónde salen los ids
jobIdes elidque recibió el puesto al crearlo, o el queGET /v1/jobsdevuelve a una clave que lee empleos.- El id de la persona candidata es el que Orbit usa para ella en ese puesto. Es la última parte de la dirección de su página en Orbit:
…/jobs/{jobId}/candidates/{candidateId}.
Una evaluación a la vez
Una persona candidata tiene una evaluación por puesto a la vez. Mientras hay una abierta, una segunda petición se rechaza, y el rechazo trae la evaluación abierta en error.screening, para que tu sistema retome esa en lugar de enviar otra invitación.
Eso también hace seguro un reintento tras un tiempo de espera agotado. Si la primera petición llegó, el reintento se rechaza con la evaluación que creó, y la persona candidata recibe una sola invitación.
Cuándo se rechaza
| Estado | Código | Qué pasó |
|---|---|---|
402 |
overage_cap_reached |
La evaluación es adicional y llevaría a la cuenta por encima de su límite mensual. El error trae priceCents, currency, capCents y spendCents. Alguien con permisos de facturación puede subir el límite en Orbit → Facturación. |
409 |
ad_not_managed |
El aviso no está gestionado. Se gestiona en Orbit. |
409 |
price_unavailable |
No se pudo leer el precio de la plantilla. Vuelve a intentarlo en un momento. |
400 |
bad_request |
El cuerpo no es válido, o no hay forma de llegar a la persona candidata. |
403 |
forbidden |
La clave no lleva el permiso Screening, o la persona candidata fue emparejada con el puesto en lugar de postularse y ha desactivado el contacto de empresas. |
404 |
not_found |
El puesto o la persona candidata no son de esta cuenta, o la plantilla no es una de sus plantillas activas. |
429 |
rate_limited |
La persona candidata no se postuló y ya ha recibido todo el contacto no solicitado que permite esta semana. |
Una petición rechazada no envía nada y no deja nada reservado.
Un 429 aquí tiene que ver con la persona candidata, no con tu clave, así que reintentar antes no ayuda. La ruta no está sujeta al límite de peticiones por minuto y no envía cabeceras X-RateLimit-*: lo que la acota es una evaluación abierta por persona candidata y puesto, y el límite mensual de evaluaciones adicionales.
Referencia
triggerScreening