Tomàs Puig i Font
Volver a proyectos

Trabajo seleccionado

ApplyCraft

Proyecto en desarrollo que genera una carta de presentación, un mensaje de LinkedIn y un correo de candidatura, con investigación opcional de la empresa y generación en streaming.

Visión general

ApplyCraft parte de un perfil reutilizable del candidato y de información específica de cada candidatura para preparar tres documentos distintos. El perfil se guarda localmente en el navegador e incluye experiencia, formación y datos de contacto; la candidatura añade empresa, puesto, idioma, tono, oferta opcional e instrucciones adicionales.

Ventana del perfil de ApplyCraft con un ejemplo en inglés: resumen, experiencia, formación y datos de contacto.Ventana del perfil de ApplyCraft con un ejemplo en inglés: resumen, experiencia, formación y datos de contacto.
Perfil reutilizable: las capturas muestran la interfaz en inglés, en modos claro y oscuro.

Personalización de la candidatura

Cada candidatura se configura con la empresa, el puesto, el idioma de salida, el tono y el modelo. También se puede indicar una persona de contacto, pegar una oferta y añadir instrucciones para destacar experiencias concretas. Si no hay oferta, el mensaje de LinkedIn se plantea como una solicitud de conexión espontánea.

Formulario de candidatura de ApplyCraft en inglés con empresa, puesto, idioma, tono, modelo, oferta de trabajo e instrucciones adicionales.Formulario de candidatura de ApplyCraft en inglés con empresa, puesto, idioma, tono, modelo, oferta de trabajo e instrucciones adicionales.
Configuración de una candidatura concreta; la interfaz de la aplicación está en inglés.

Generación e investigación

La carta de presentación, el mensaje de LinkedIn y el correo se generan en paralelo y se muestran progresivamente mediante streaming. Cada resultado puede regenerarse de forma independiente. Una fase previa opcional utiliza Gemini con búsqueda web para obtener un resumen factual de la empresa; si no está configurada o falla, la generación continúa sin ese contexto.

Tres resultados de ejemplo en inglés de ApplyCraft: carta de presentación, mensaje de LinkedIn y correo de candidatura, con controles para copiar y regenerar.Tres resultados de ejemplo en inglés de ApplyCraft: carta de presentación, mensaje de LinkedIn y correo de candidatura, con controles para copiar y regenerar.
Tres textos independientes para la misma candidatura, mostrados en inglés.
  • Salida en catalán, español, inglés o francés.
  • Comportamiento distinto del mensaje de LinkedIn según si se ha facilitado una oferta.
  • Perfil persistente en el navegador y controles específicos por candidatura.

Abstracción de proveedores

Gemini, OpenAI y DeepSeek implementan una misma interfaz de proveedor de texto en streaming. OpenAI y DeepSeek comparten una implementación compatible con el protocolo de chat completions, mientras que Gemini tiene una implementación propia y la opción de búsqueda fundamentada. Los modelos disponibles se filtran según los proveedores configurados en el servidor.

Secretos y despliegue

Las llamadas a los modelos se realizan desde Route Handlers de Next.js. Las claves se leen de variables de entorno exclusivamente en el servidor, sin prefijo público, y el navegador solo se comunica con los endpoints internos de la aplicación. El repositorio deja claro que es un proyecto local en desarrollo: antes de un despliegue público con claves compartidas habría que añadir limitación de peticiones y protección contra abusos.