Preloader
Drag
Dashboard del gestionale staffing eventi con filtri per evento e azienda
Aplicación web

Gestión de Staffing para Eventos: del formulario de candidatura al margen de cada turno

Una aplicación web que ha sustituido formularios dispersos y hojas de Excel: recogida de candidaturas, búsqueda de perfiles, planificación de turnos y cálculo de costes y márgenes en tiempo real.

  • endpoints HTTP

  • modelos de dominio

  • formularios de candidatura activos

  • +

    candidatos gestionados

En resumen

En breve

Cuál era el problema

La agencia recogía las candidaturas con formularios online distintos para cada una de las agencias de empleo con las que colabora, y las pasaba a mano a hojas de Excel. De ahí salían tres problemas que se alimentaban entre sí: cada cliente quería un formulario distinto, y cada formulario nuevo producía datos que no se podían comparar con los demás; encontrar a la persona adecuada, por ejemplo «un conductor con carnet D, disponible en Milán la semana que viene, que hable inglés», significaba abrir varias hojas y filtrar a mano; y los márgenes se descubrían solo a fin de mes, cuando ya no había forma de actuar.

Además, los datos recogidos incluyen documentos de identidad, carnets de conducir y permisos de residencia: hacían falta trazabilidad del consentimiento y control de accesos a la altura del RGPD.

Form di candidatura su smartphone

Formularios distintos, un solo modelo de datos

Cada agencia socia tiene su propio formulario de candidatura con una dirección dedicada. Los campos visibles, los obligatorios y las opciones de los desplegables se configuran desde el panel de administración, sin tocar el código, y un formulario existente se duplica con toda su configuración.

La decisión clave fue no hacer dinámico el esquema de la base de datos. Todos los formularios escriben en el mismo modelo de datos normalizado, y una tabla de configuración decide para cada uno qué mostrar y qué hacer obligatorio: los formularios son tan flexibles como si fueran dinámicos, pero los candidatos siguen siendo comparables y consultables con consultas normales. El candidato rellena un recorrido guiado en tres pasos, a menudo desde el móvil, con currículum y foto de perfil hecha en el momento.

Encontrar a la persona adecuada en un clic

La búsqueda combina más de 20 filtros (carnet, idiomas, ciudad de disponibilidad, años de experiencia, puntuación) y plantillas de filtrado ya listas que traducen las preguntas recurrentes: «Candidatos recientes», «Puntuación alta», «Disponibles ahora», «Expertos con 5+ años». Nacieron de cómo los operadores formulaban las peticiones de viva voz, y se han convertido en la forma más usada de buscar.

Cada operador guarda sus propias columnas y su orden, porque quien busca conductores y quien planifica turnos miran datos distintos. Los perfiles se valoran con categorías de puntuación configurables, se archivan en lugar de borrarlos y se exportan a CSV, Excel y PDF.

Filtri avanzati sui candidati per patente, lingue, disponibilita ed esperienza
Creazione di un turno con calcolo automatico di ore, costo del fornitore e ricavo dal cliente

El margen se ve mientras se planifica

Cada turno enlaza un candidato con un proveedor y un cliente, cada uno con su propia tarifa horaria. El sistema calcula horas efectivas, coste del proveedor, ingreso del cliente y beneficio, gestionando las pausas, los mínimos de horas garantizados, que pueden ser distintos para proveedor y cliente en el mismo turno, y los costes extra.

Cada turno congela la tarifa aplicada en el momento de su creación, así retocar una tarifa no reescribe el histórico. Y el cálculo vive en un solo punto del código: da el mismo resultado donde sea que ocurra, de la creación a la edición en línea con doble clic hasta la importación masiva.

Compartir sin dar cuentas de acceso

Los clientes de la agencia quieren ver las listas de candidatos propuestos, pero no pueden tener una cuenta en el sistema. Los enlaces compartidos resuelven el problema: para cada uno se eligen los campos visibles y los filtros aplicados, con contraseña y caducidad opcionales, y se cuentan los accesos. El mismo mecanismo vale para compartir las jornadas de turnos.

Link condivisi con campi selezionabili, password, scadenza e conteggio degli accessi

Los datos personales, tratados como tales

Para el RGPD no basta una casilla: hay que poder demostrar qué información se aceptó, cuándo y por parte de quién. Cada consentimiento registra fecha y hora, dirección IP, navegador, y versión y huella de la información en vigor, y de ahí se genera el PDF de consentimiento del candidato concreto.

Currículums, documentos y fotos están en un almacenamiento privado en Azure y la aplicación nunca expone su dirección directa: genera cada vez un enlace firmado con caducidad. Un enlace copiado y pasado a terceros deja de funcionar por sí solo.

Cómo está construido

Flask con páginas generadas en el servidor en lugar de una aplicación de página única: los usuarios son operadores de back-office en ordenador, y el renderizado en servidor redujo los tiempos de desarrollo y la superficie de mantenimiento. Las partes que de verdad necesitan reactividad (tablas, filtros, gráficos, edición en línea) se alimentan de API JSON dedicadas.

El código está dividido por área funcional en nueve blueprints, lo que permitió añadir el módulo de turnos, que llegó como petición posterior del cliente, sin tocar la parte de candidatos ya en producción. Las funciones delicadas están detrás de interruptores activables en caliente, para apagarlas en segundos sin una nueva publicación. Base de datos Azure SQL con migraciones versionadas, publicación automática en Azure App Service con GitHub Actions.

Grafici di distribuzione dei candidati per occupazione, stato civile e taglia
El paquete

Qué se entregó

En detalle

Ficha técnica

Las capturas vienen del entorno de producción: los nombres y los contactos son ficticios, y están difuminados la marca del cliente, las agencias socias y los importes.

Hablemos

¿Necesitas un software así?

Si tienes un proceso que hoy gestionas a mano y querrías automatizar, cuéntamelo: vemos juntos si tiene sentido construir una herramienta encima.

¿Necesitas algo parecido? Este proyecto es un ejemplo de desarrollo de aplicaciones web y sistemas de gestión a medida. La primera reunión y el presupuesto son gratuitos: escríbeme y lo hablamos.