Volver a proyectos
Plataforma de empleabilidadIngeniero de Software Full-Stack

CVMeld — Plataforma de empleabilidad con IA

Plataforma bilingüe que transforma un perfil profesional en un CV base recuperable y versiones adaptadas a cada oferta. Integra PDF, biblioteca personal, créditos y administración de IA; su API añade ranking, postulaciones, seguimiento y preparación de entrevistas.

Desafío

Adaptar un CV exige relacionar una trayectoria profesional con los requisitos de cada vacante sin perder el documento original ni mezclar recursos entre usuarios. La generación con IA introduce respuestas que deben validarse, costes y tiempos variables; el producto necesita controlar el acceso, contabilizar consumo y permitir recuperar documentos incluso si falla su renderizado.

Solución

Organicé el flujo web alrededor de un perfil persistente, una base activa recuperable y adaptaciones independientes por oferta. El JSON del documento se conserva antes de compilar su PDF, de modo que un fallo de renderizado no elimina el contenido y permite reconstruirlo sin repetir la inferencia. La biblioteca permite consultar, recuperar y eliminar documentos con descargas firmadas. Añadí planes, créditos, sesiones revocables y administración de proveedores; en la API implementé además ranking, cartas, seguimiento y entrevistas, como módulos diferenciados del generador web actual.

Arquitectura y decisiones

Frontend Next.js y React con TypeScript, Tailwind CSS y traducciones con next-intl; API FastAPI con Pydantic y SQLAlchemy async sobre PostgreSQL. La generación resuelve proveedores configurados por etapa mediante LiteLLM, sanea y valida el JSON y aplica una reparación dirigida cuando falla el esquema. El JSON persistido es la fuente del documento; Typst compila el PDF en segundo plano, con archivos por usuario en R2 y URLs firmadas. Los endpoints verifican sesión activa y propiedad de los recursos. El consumo pasa por autorización previa y liquidación con bloqueo de la cuenta de créditos, registro contable e idempotencia por usuario, clave y payload. La ingesta normaliza y deduplica ofertas y comprueba URLs y redirecciones contra SSRF. Los módulos API de empleabilidad combinan ranking determinista y cualitativo, etapas de revisión y registro de resultados.

Testing y calidad

Las pruebas pytest cubren versiones de CV y conservación de la base, propiedad de recursos y bloqueo de URLs privadas, validación y reparación de respuestas de IA, fallos de PDF, almacenamiento R2, sesiones, créditos y cuotas. Hay casos de ranking, postulaciones, resultados y entrevistas con proveedores simulados. Playwright contempla autenticación, restricciones de rutas, idioma, estados del feed y reconexión.

Impacto

Permite reutilizar un perfil, conservar una base recuperable y organizar documentos específicos para cada vacante. Separar datos, generación y PDF facilita recuperar entregables sin repetir llamadas de IA, mientras créditos, cuotas y registros de consumo dan al administrador herramientas para controlar la operación del servicio.

Puntos clave

  • Modelé un perfil profesional reutilizable, con CV en español e inglés y recuperación de la versión base anterior
  • Implementé adaptaciones por URL o descripción que conservan la base y registran versiones con oferta, palabras clave y análisis de compatibilidad
  • Separé el JSON validado de su PDF: reparación dirigida de respuestas, compilación Typst en segundo plano y descargas firmadas desde R2
  • Construí ingesta de ofertas con normalización, deduplicación por URL y contenido, controles SSRF y asociaciones por usuario
  • Integré autorización de consumo, liquidación atómica de créditos y cuotas, e idempotencia para reintentos con la misma clave
  • Desarrollé módulos API de ranking híbrido, generación y revisión de postulaciones, seguimiento e entrevistas con ejemplos STAR y simulación textual