Consultar empleados elegibles para una vacante

Este endpoint permite consultar, antes de crear una vacante, qué empleados son compatibles con los requisitos especificados y, por tanto, serían elegibles para cubrirla.

POST /api/v1/businesses/{businessId}/vacancies/eligible-employees

Los campos obligatorios están marcados con un asterisco (*).

Cuerpo de la petición

Análisis del JSON
{
  "product": "string",
  "day": "yyyy-MM-dd",
  "shifts": [
    {
      "start": "yyyy-MM-ddTHH:mm:ssXXX",
      "end": "yyyy-MM-ddTHH:mm:ssXXX"
    }
  ],
  "publishToSiblings": false
}
Detalles
  • product*: identificador externo del producto vinculado con la vacante.

  • day*: día de la vacante en formato yyyy-MM-dd.

  • shifts*: lista de turnos propuestos para la vacante. Incluye, para cada intervalo, los siguientes campos:

    • start*: inicio del turno en formato yyyy-MM-ddTHH:mm:ssXXX. La zona horaria debe especificarse mediante un offset (por ejemplo, +02:00) o Z (UTC).

    • end*: fin del turno en formato yyyy-MM-ddTHH:mm:ssXXX. La zona horaria debe especificarse mediante un offset (por ejemplo, +02:00) o Z (UTC).

  • publishToSiblings: si es true, evalúa la compatibilidad considerando también a los empleados de los productos hermanos, en lugar de restringirla únicamente al producto indicado. Por defecto es false.

Ejemplo de la petición

Una vez realizado el análisis de los distintos campos, se muestra un ejemplo del cuerpo de la petición:

{
  "product": "0001-G",
  "day": "2026-07-25",
  "shifts": [
    {
      "start": "2026-07-25T10:00:00Z",
      "end": "2026-07-25T17:00:00Z"
    }
  ],
  "publishToSiblings": false
}

Ejemplo de respuesta

{
  "employees": [
    {
      "employeeId": "1006355",
      "fullyEligible": true
    },
    {
      "employeeId": "1006356",
      "fullyEligible": false
    }
  ]
}
Detalles
  • employeeId: identificador externo del empleado evaluado. Si no está configurado en el sistema, no aparecerá este campo en la respuesta.

  • fullyEligible: si es true, el empleado no presenta ningún impedimento para cubrir la vacante; si es false, tiene algún conflicto (por ejemplo, de solapamiento u otra restricción).

Aspectos que tener en cuenta

Si no se envía alguno de los campos obligatorios, la petición devolverá un error 400 Bad Request indicando en el mensaje cuál es el campo requerido que falta.

Si el producto para el que se publica la vacante no existe, la petición devolverá un error 404 Not Found indicando en el mensaje not exists.

Quedan excluidos de la respuesta aquellos empleados que tengan asignaciones que solapan con la vacante, día libre o incidencias en la fecha de la vacante.

Se devuelve "fullyEligible": true aunque la disponibilidad configurada del empleado no sea compatible con la vacante. Por ejemplo: si para el día de la vacante el empleado tiene definido "No disponible" en la disponibilidad de su asociación a servicio, seguirá siendo elegible siempre que cumpla el resto de requisitos.

Se devuelve "fullyEligible": false si se da alguna de estas condiciones:

  • El empleado tiene cesión o cesión regular el día de la vacante.

  • El empleado incumple alguna de sus restricciones, por ejemplo, duración máxima de turno o descanso tras tiempo trabajado.

Esta consulta no crea ninguna vacante, solo evalúa la elegibilidad de los empleados para una vacante que todavía no existe.

Enlaces de interés

¿Qué es una vacante?