Skip to content

Favoritos y notas

Dos herramientas complementarias para que el recruiter recuerde candidatos y deje rastro de sus evaluaciones.

Favoritos del directorio

Permite marcar candidatos prometedores para revisarlos después, sin asignarlos formalmente a una vacante todavía.

Cómo funciona

  • Modelo: DirectoryFavorite con columnas (recruiter_id, candidate_profile_id).
  • Unique constraint: (recruiter_id, candidate_profile_id) — no duplicados.
  • Cada recruiter tiene su propia lista de favoritos. No se comparte entre recruiters.

Endpoints

AcciónMétodo / Ruta
Agregar a favoritosPOST /api/v1/recruiter/favorites con candidate_profile_id
Quitar de favoritosDELETE /api/v1/recruiter/favorites/{candidateId}
Listar mis favoritosGET /api/v1/recruiter/favorites

UI

  • Botón de estrella en cada DirectoryCandidateCard del directorio.
  • Estado local optimista: cambia el ícono apenas click, revierte si falla.
  • Página dedicada /recruiter/favoritos con todos los candidatos marcados.

Estadísticas cruzadas

Desde /admin/reportes/candidatos-mas-buscados:

  • Se cuenta cuántos recruiters han marcado a cada candidato como favorito.
  • Útil para saber quiénes están recibiendo más atención.

Notas por asignación

Cada VacancyAssignment tiene dos espacios de notas:

  • recruiter_notes — notas privadas del equipo HUMAE.
  • company_notes — notas de la empresa cliente. Visibles también al recruiter.

Modelo de historial

Además del campo único en el VacancyAssignment (última nota), hay una tabla VacancyAssignmentNote que guarda el timeline completo:

VacancyAssignmentNote
├─ vacancy_assignment_id   FK
├─ author_id               FK User (quien escribió)
├─ body                    text (markdown permitido)
├─ visibility              'recruiter' | 'company' | 'all'
├─ created_at

Endpoints

AcciónRuta
Listar notas de asignaciónGET /vacancies/{vid}/assignments/{aid}/notes
Crear notaPOST /vacancies/{vid}/assignments/{aid}/notes
Editar nota propia (≤ 30 min)PATCH /notes/{id}
Borrar nota propia (≤ 5 min)DELETE /notes/{id}

Reglas de visibilidad

Implementadas en VacancyAssignmentNotePolicy:

QuiénVe notas recruiterVe notas companyVe notas all
Recruiter HUMAE
Admin
Company user✅ (si es de SU empresa)
Candidato

UI

Dentro de la tarjeta de asignación, clic en "Notas (N)" abre un panel lateral con:

  • Timeline cronológico (más reciente arriba).
  • Avatar + nombre + fecha relativa del autor.
  • Texto con markdown renderizado.
  • Form al final para agregar nueva nota.
  • Checkbox "Visible para la empresa" si el autor es recruiter (por default las notas de recruiter son privadas).

Notas globales del candidato (opcional)

Fase 2: agregar CandidateProfileNote con notas cross-asignación. Ej: "Este candidato rechaza remoto" → se aplica a todas sus asignaciones futuras.

Menciones @

Fase 2: soporte para @usuario en notas con notificación in-app al mencionado.

Tiempo de edición / borrado

Para prevenir reescritura del histórico:

  • Editar: permitido dentro de los primeros 30 minutos tras crear.
  • Borrar: permitido dentro de los primeros 5 minutos.

Después, una nota queda inmutable. Para "corregir", crear otra nota aclaratoria.

Exportación

(Fase 2): exportar el timeline de notas de una asignación a PDF o Word para compartir con el cliente.

Notificaciones

  • Nueva nota del company_user → in-app al recruiter asignado.
  • Nueva nota del recruiter (si marcada visible para empresa) → in-app al company_user.
  • Nota de @mención → in-app al mencionado (fase 2).

Errores comunes

ErrorHTTP
"Esta nota ya no puede editarse" (pasó el tiempo)403
"No puedes ver notas privadas de otra empresa"403
"Markdown inválido"422

Siguiente

Con todo el kit del recruiter documentado, pasa a la sección de empresas: Dashboard de empresa →

Manual de usuario HUMAE · Uso interno