Apariencia
Flujos principales
HUMAE opera alrededor de cuatro flujos que combinan a los cuatro roles. Entender estos flujos es la forma más rápida de ver cómo encaja todo el sistema.
Flujo 1 · Candidato se activa
1. El candidato entra a /register
2. Llena el formulario (nombre, correo, teléfono, contraseña, acepta términos)
3. Recibe correo con URL firmada → verifica su email
4. Inicia sesión → entra a /dashboard (candidato sin membresía activa)
5. Va a Membresía → clic en "Contratar membresía"
6. HUMAE crea una Stripe Checkout Session y redirige a checkout.stripe.com
7. El candidato paga con tarjeta (test o real)
8. Stripe dispara el webhook checkout.session.completed
9. El backend:
• Valida firma del webhook
• Marca el Payment como succeeded
• Crea la Membership (expires_at = +180 días)
• Envía MembershipActivatedNotification (correo + in-app)
10. El candidato regresa a /membership/success y ve su membresía activa
11. Construye su perfil profesional (datos, experiencias, educación, docs)
12. Completa las pruebas psicométricas requeridas
13. Descarga su CV en PDFAl final, queda como candidato activo visible en el directorio para los recruiters. Ver detalles en Registro, Membresía y pago y Perfil profesional.
Flujo 2 · Empresa publica una vacante
1. Admin HUMAE crea la Company (datos fiscales, contactos)
2. Admin invita a un company_user (email) → recibe correo de bienvenida
3. company_user entra a /me/empresa/vacantes → "Nueva vacante"
4. Llena el formulario (título, descripción, responsabilidades, salario,
skills requeridas, idiomas, ubicación, tipo de contratación, prioridad)
5. Guarda la vacante como "borrador"
6. Valida datos, la publica → pasa a estado "activa"
7. HUMAE recibe notificación in-app: "Nueva vacante activa"
8. Reclutador la toma en su pipelineLa vacante es privada: solo la empresa dueña y los recruiters HUMAE la ven.
Ver: Publicar una vacante y Máquinas de estado.
Flujo 3 · Reclutador presenta candidatos
1. Reclutador entra a /recruiter/directorio
2. Filtra candidatos: skill "React", idioma "Inglés B2+",
ubicación CDMX, salario ≤ 50K, disponibilidad inmediata
3. Abre el perfil detallado de 3 candidatos prometedores
4. Descarga su CV, revisa psicométricos, añade a favoritos
5. En cada candidato, clic "Asignar a vacante" → elige vacante activa
6. Candidato queda en pipeline como "sourced" (etapa 1)
7. Reclutador mueve al candidato a "presented" (etapa 2)
8. Se dispara AssignmentStageChangedNotification al company_user
9. company_user ve al candidato en su panel, revisa, hace comentarios
10. company_user solicita entrevista
11. Reclutador agenda con ScheduleInterviewDialog
(fecha, hora, modalidad online/presencial, enlace Meet/Zoom)
12. Candidato y company_user reciben InterviewScheduledNotificationVer: Directorio, Pipeline, Entrevistas.
Flujo 4 · Entrevista → cierre
1. Entrevista en estado "propuesta"
2. Candidato confirma → "confirmada" (envía notificación)
O reprograma → "reprogramada" → "propuesta" con nueva fecha
O cancela → "cancelada" (terminal)
3. La entrevista sucede (presencial, videollamada, teléfono)
4. Reclutador marca como "realizada" y captura feedback
5. Si pasa: mueve asignación a "finalist" (etapa 4)
6. company_user confirma el hire → asignación "hired" (etapa 5)
7. Vacancy pasa a "finalista_seleccionado" y luego "cubierta"
8. Todos los candidatos no seleccionados pasan a "rejected" con motivo
9. Se archiva el caso, queda en reportesEste flujo alimenta los KPIs de tiempo-de-cierre y efectividad del reclutador. Ver: Entrevistas del candidato, Gestión de entrevistas, Reportes.
Vista temporal (quién hace qué y cuándo)
T+0 Candidato Registro + pago + perfil básico
T+1d Candidato Completa psicométricos
T+2d Empresa Publica vacante
T+3d Reclutador Filtra directorio, encuentra match
T+3d Reclutador Asigna candidato → sourced
T+3d Reclutador Presenta candidato → presented
T+4d Empresa Solicita entrevista
T+4d Reclutador Agenda (propuesta)
T+4d Candidato Confirma entrevista
T+7d Todos Entrevista sucede
T+7d Reclutador Marca realizada + feedback
T+8d Empresa Confirma hire → finalist → hired
T+8d Sistema Vacancy cubierta, notificaciones finalesTiempo-objetivo del flujo completo: 7–10 días desde publicación de vacante hasta contratación. Se mide con el reporte time-to-fill.
Qué se notifica en cada flujo
| Evento | Canal | Destinatario | Cuándo |
|---|---|---|---|
MembershipActivated | email + in-app | Candidato | Tras webhook Stripe exitoso |
VacancyPublished | in-app | Recruiters HUMAE | Al publicar una vacante |
AssignmentPresented | in-app + email | company_user | Recruiter presenta candidato |
InterviewScheduled | email + in-app | Candidato + company_user | Recruiter agenda |
InterviewConfirmed | email + in-app | Recruiter + company_user | Candidato confirma |
InterviewCancelled | email + in-app | Todas las partes | Cualquiera cancela |
CandidateHired | email + in-app | Candidato + company_user | Asignación → hired |
Catálogo completo: Notificaciones.
Siguiente
Para ver la foto técnica general: Arquitectura de alto nivel →

