Carific.ai: Construyendo un Analizador de Currículum de IA con Next.js 16, Vercel AI SDK y PDF.js

En este artículo relato cómo construimos un analizador de currículum potenciado por IA para Carific.ai y las lecciones que aprendimos en el camino. El objetivo era claro: permitir que los usuarios suban un currículum en PDF o peguen texto, proporcionen la descripción del puesto y reciban retroalimentación automática y específica para mejorar su candidatura, con resultados que se muestren en tiempo real mientras se generan.

Quienes desarrollamos esta herramienta en Q2BSTUDIO, empresa especializada en desarrollo de software a medida, aplicaciones a medida, inteligencia artificial, ciberseguridad y servicios cloud aws y azure, buscamos que la experiencia sea fluida tanto para candidatos como para equipos de recursos humanos interesados en automatizar procesos y extraer inteligencia de negocio.

Problemas con PDF.js y Next.js: al integrar pdfjs-dist en un proyecto Next.js surgió el conocido error Setting up fake worker failed Cannot read properties of undefined reading WorkerMessageHandler. La solución que funcionó fue usar la compilación legacy de pdfjs y resolver la ruta del worker con import.meta.url para que el bundler de Next.js sirva correctamente pdfjs-dist/legacy/build/pdf.mjs y pdfjs-dist/legacy/build/pdf.worker.min.mjs. Este ajuste evita dolores de cabeza en despliegues y compatibilidad con ESM.

Validaciones con Zod v4: migrar entre versiones puede romper validaciones copiadas de tutoriales antiguos. Zod v4 cambió el campo required_error por error y renombró errors a issues en los objetos de excepción. La lección fue unificar los límites de validación en constantes compartidas para tener una sola fuente de verdad y evitar duplicidades que luego causan desincronización entre cliente y servidor.

Streaming de respuestas IA: la integración con el SDK de Vercel AI para generar respuestas por streaming simplificó mucho la UX. En el servidor se inicia la petición al modelo y se expone un endpoint que retransmite el texto en tiempo real. En el cliente se consume el stream y se va actualizando la interfaz palabra a palabra, lo que mejora notablemente la percepción de velocidad frente a un spinner tradicional.

Bugs menores que aprenden a morder: controles para evitar condiciones de carrera al subir archivos, bloqueo de nuevas subidas con una bandera isProcessing, y límites para proteger el navegador cuando se reciben PDFs enormes. Recomendamos imponer MAX_PAGES y MAX_TEXT_LENGTH para fallar temprano y comunicar al usuario cómo recortar su documento. Además optimizamos la concatenación de texto usando array join en lugar de concatenación repetida para evitar comportamiento cuadrático en documentos largos.

Arquitectura final: el backend expone un endpoint de streaming para analizar currícula, un módulo que extrae texto de PDFs con protecciones de límites, y la lógica de IA separada para facilitar pruebas y cambios de modelo. En el frontend un formulario permite subir PDF o pegar texto, adjuntar la descripción del puesto y visualizar resultados en streaming con un renderer que admite markdown.

Buenas prácticas y aprendizaje rápido: usar la build legacy de pdfjs cuando sea necesario, revisar la versión de librerías antes de copiar ejemplos, centralizar constantes de validación, evitar condiciones de carrera en cargas de archivo y proteger al cliente de PDFs demasiado grandes.

En Q2BSTUDIO aplicamos estos mismos principios en nuestros servicios de software a medida y soluciones de inteligencia artificial para empresas. Si buscas desarrollar una aplicación personalizada o integrar agentes IA en tus flujos, conoce nuestras capacidades en desarrollo de aplicaciones y software a medida y en servicios de inteligencia artificial para empresas. También ofrecemos ciberseguridad, pentesting, servicios cloud aws y azure, automatización de procesos, y soluciones de business intelligence y power bi para transformar datos en decisión efectiva.

Por qué publicamos el código y los errores: la mayor parte de los problemas vienen por combinaciones de versiones y entornos de despliegue. Documentar las soluciones ayuda a ahorrar horas de investigación. Si quieres colaborar en este tipo de proyectos o necesitas una solución a medida para tu empresa, en Q2BSTUDIO estamos listos para ayudar con software a medida, ia para empresas, agentes IA y proyectos de inteligencia de negocio.

Resumen práctico: usar legacy build de pdfjs y import.meta.url para workers, centralizar límites de validación con constantes, proteger el cliente de PDFs grandes, y aprovechar streaming de IA para mejorar la UX. Si te interesa que hagamos una prueba de concepto o quieres incorporar esta funcionalidad en tus procesos de selección, contáctanos y te mostraremos cómo podemos integrar esto con tus sistemas existentes.

En Q2BSTUDIO desarrollamos soluciones completas que van desde el análisis de datos hasta la implementación en la nube y la protección de tus activos digitales. Trabajemos juntos para llevar tu proyecto al siguiente nivel con inteligencia artificial, ciberseguridad y servicios cloud aws y azure.