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