Skip to content

Glosario

Términos clave del dominio HUMAE y del sistema técnico.

Dominio de negocio

Candidato — Persona registrada que busca empleo, paga membresía y construye un perfil profesional.

Recruiter HUMAE — Colaborador interno de la empresa HUMAE. Busca candidatos en el directorio y los presenta a empresas cliente.

Company user — Usuario designado por una empresa cliente. Gestiona sus vacantes y revisa los candidatos presentados por HUMAE.

Admin — Rol con privilegios globales. Configura catálogos, revisa reportes, gestiona usuarios.

Vacante — Puesto que una empresa quiere llenar. Internamente se llama Vacancy (no Job, para evitar colisión con el queue de Laravel).

Asignación — Relación formal entre un candidato y una vacante. Modelo VacancyAssignment.

Pipeline — El tablero kanban que muestra las asignaciones en sus distintas etapas (sourcedhired).

Etapa — Cada columna del pipeline. Enum AssignmentStage.

Entrevista — Reunión agendada entre un candidato y una empresa, dentro del contexto de una asignación.

Ronda — Número secuencial de entrevistas dentro de una misma asignación (primera, segunda, técnica, final, etc.).

Membresía — Acceso activo del candidato al directorio. 499 MXN / 6 meses.

Directorio — Buscador de candidatos activos. Acceso exclusivo de recruiters HUMAE y admin.

Favorito — Candidato marcado por un recruiter para revisión posterior. No implica asignación.

Note — Comentario textual sobre una asignación, escrito por recruiter (privado) o company_user (compartido).

Psicométrica — Prueba estandarizada que evalúa personalidad o aptitud. El MVP incluye Big Five.

Big Five — Modelo de 5 dimensiones de personalidad: Apertura, Responsabilidad, Extraversión, Amabilidad, Neuroticismo.

Reverse scoring — Invertir la puntuación de una pregunta Likert cuando mide la dimensión opuesta.

Categoría del candidato (CandidateKind) — Marca binaria del perfil (employee / intern) que indica bajo qué tipo de proceso desea ser considerado el candidato. Punto 2 del PDF cosasfaltanteshumae.

Tipo de candidato requerido (VacancyTargetKind) — Marca de la vacante (employee / intern / any) que define qué categoría de candidatos busca. Default any.

Áreas de interés laboral — Una o varias áreas funcionales (multi-select desde catálogo) que el candidato indica en su perfil. Una de ellas se marca como principal (is_primary). Punto 1 del PDF cosasfaltanteshumae.

Área principal — De entre todas las áreas seleccionadas por el candidato, la que marcó con la estrella ⭐. Aparece arriba en la UI, suma 100 % al eje "Áreas" del matching y se sincroniza con el campo legacy candidate_profiles.functional_area_id.

Otra área (texto libre) — Campo other_area_text (máx. 200 chars) en el perfil para áreas no presentes en el catálogo. No participa del matching estructurado.

Matching estructurado — Cálculo determinista de compatibilidad vacante↔candidato implementado por MatchingService. Devuelve un score 0–100 ponderado en 6 ejes (categoría, áreas, educación, experiencia, skills, salario) con un breakdown explicable. No es ML.

Score — Total entre 0 y 100 que devuelve el matching. Ordena la lista de "Sugerencias de candidatos" en el pipeline.

Breakdown — Desglose del score por eje. Permite explicar al cliente por qué un candidato está arriba o abajo en las sugerencias.

CV PDF — Documento profesional generado automáticamente por HUMAE desde los datos del perfil.

Self-service registration — Registro público iniciado por el propio interesado en /register/{candidato|reclutador|empresa}. Para candidatos es directo; para reclutadores y empresas, queda en pending_approval.

Pending approval — Estado de un User que se auto-registró como reclutador o empresa y aún no ha sido aprobado por un admin. No puede iniciar sesión hasta que cambie a active.

Compuertas de login — Validaciones que corren después de Hash::check() en POST /auth/login. Si el email no está verificado o el status no es active, devuelve 403 con un errors.code específico (email_unverified, pending_approval, account_inactive) que el frontend usa para mostrar el toast adecuado.

PendingUserRegistrationNotification — Correo + database notification que se envía a todos los users con rol admin cuando alguien se registra como reclutador o empresa. Contiene nombre, correo, motivo y un CTA a /admin/usuarios?status=pending_approval.

AccountApprovedNotification / AccountRejectedNotification — Correos al usuario cuando un admin aprueba o rechaza su solicitud. El de rechazo incluye un reason opcional capturado desde el dialog de admin.

Estados

Terminal — Estado del que no se puede salir. Ej: vacancy cubierta, asignación hired, entrevista realizada.

FSMFinite State Machine. Define qué transiciones entre estados son válidas.

Máquina de estados — Sinónimo de FSM.

Transición — Cambio de un estado a otro. HUMAE valida cada una con el servicio correspondiente.

Técnico

API envelope — Formato estándar de respuesta del backend: {success, message, data, meta, errors}.

Sanctum — Librería de autenticación de Laravel. HUMAE la usa en modo SPA (cookies) y modo token.

Spatie Permission — Librería para roles y permisos granulares en Laravel. HUMAE tiene 4 roles y 45 permisos.

Policy — Clase de Laravel que autoriza acciones por recurso. Ej: VacancyPolicy::update.

FormRequest — Clase Laravel que valida inputs antes de llegar al controller.

API Resource — Clase Laravel que transforma modelos Eloquent en JSON.

Eager loading — Cargar relaciones de Eloquent anticipadamente para evitar queries N+1.

N+1 — Patrón anti-performance. Hacer 1 query + N queries relacionadas en vez de usar with().

Webhook — Endpoint público que recibe notificaciones de proveedores externos (hoy sólo Stripe; el correo se trackea parseando /var/log/mail.log localmente).

HMAC — Firma criptográfica usada para validar webhooks.

Idempotencia — Propiedad de una operación que puede ejecutarse múltiples veces sin cambiar el resultado.

Soft delete — Marcar un registro como deleted_at sin borrarlo realmente. Permite restauración.

Rate limit — Límite de requests por intervalo, para prevenir abuso.

TanStack Query — Librería de data fetching en el frontend (antes React Query).

Zustand — Librería de state management client-side en React.

Zod — Librería de validación de schemas TypeScript.

shadcn/ui — Colección de componentes React copiables basados en Radix + Tailwind.

Motion — Librería de animación (anteriormente framer-motion, ahora motion v12).

Next.js App Router — API de enrutado de Next.js basada en carpetas. Soporta Server Components.

Server Component — Componente React renderizado en el servidor. Default en Next 13+.

Client Component — Componente con "use client"; usa hooks, eventos, etc.

Integraciones

Stripe Checkout — Sesión de pago hospedada por Stripe. HUMAE redirige al candidato allá.

Payment Intent — Objeto Stripe que representa un intento de cobro.

Customer — Identificador opaco de un cliente en Stripe (guardado en stripe_customer_id).

Signed URL — URL temporal con firma criptográfica. Usada para verificación de email y password reset.

Storage local — Archivos guardados en storage/app/ del propio servidor del backend. Disco public (avatares) vs local (documentos privados). Reemplaza a proveedores SaaS de blob storage.

LocalFileStorage — Helper en App\Helpers\ que encapsula Storage::disk(...) + Intervention Image (resize) para uploads de avatares y documentos.

Postfix — MTA instalado en el mismo servidor del backend; Laravel le entrega los correos por SMTP a 127.0.0.1:25 y Postfix encola + envía saliente. Reemplaza a proveedores SaaS de correo transaccional.

MailHog — Servidor SMTP de desarrollo que captura correos en http://localhost:8025. Se usa en dev en lugar de Postfix.

Arquitectura

Monorepo — Repositorio que contiene múltiples proyectos (humae_backend/, humae_frontend/, humae_docs/).

Bounded context — Agrupación lógica de funcionalidad con un lenguaje común. HUMAE tiene 12.

Service layer — Capa que contiene la lógica de negocio, separada de los controllers.

Repository pattern — NO usado en HUMAE (se usa Eloquent directamente en services).

DTO — Data Transfer Object. En HUMAE se usan FormRequests + arrays, no clases DTO formales.

Conventional Commits — Formato de commit estándar: feat(...):, fix(...):, etc.

Semantic versioning — Formato MAJOR.MINOR.PATCH.

Siguiente

Últimas dudas comunes: Preguntas frecuentes →

Manual de usuario HUMAE · Uso interno