GPT 5.6 y ChatGPT Codex: creando un analizador de CVs con IA de principio a fin
OpenAI acaba de lanzar una nueva familia de modelos GPT 5.6 compuesta por tres variantes: Sol, Terra y Luna. Sol es el flagship, el modelo más avanzado, capaz de desarrollar proyectos completos y crear planificaciones largas; Terra es el modelo balanceado para trabajo diario, con rendimiento competitivo con GPT-5.5 a la mitad del costo; y Luna es la opción más económica y rápida, que consume muchos menos tokens y aun así rinde cerca de los niveles de 5.5 en varias pruebas. En precios de API: Sol cuesta $5/$30 por millón de tokens (input/output), Terra $2.50/$15 y Luna $1/$6.
En este artículo vamos a probar estos modelos en la práctica creando un proyecto desde cero: un analizador de CVs con IA. La idea es simple: subimos el currículum de alguien que postula a un trabajo, el sistema hace el match entre la vacante disponible y el perfil del candidato, y le asigna un puntaje automáticamente a través de una API de IA. Además, vamos a desplegarlo en producción y testearlo de forma automatizada, todo desde la misma herramienta.
Codex ahora se llama ChatGPT
Un detalle importante antes de empezar: la aplicación de Codex ya no se llama así. La app de escritorio de Codex se convirtió en la nueva aplicación de ChatGPT para macOS y Windows, que ahora combina tres modos en una sola interfaz: Chat, Work y Codex. Codex sigue existiendo como la experiencia de código dentro de la app (incluso puedes dejarlo como vista por defecto), mientras que la app anterior de ChatGPT pasó a llamarse ChatGPT Classic. Si buscas Codex para descargarlo, lo que vas a obtener es el instalador de ChatGPT, y puedes autenticarte de la misma forma que lo hacías antes.
Para el proyecto de hoy, creamos una carpeta en el escritorio llamada cv-ai-reviewer y la abrimos desde la aplicación con la opción de seleccionar proyecto. Con eso, cada chat que abramos ya tendrá el contexto de la carpeta del proyecto.
Paso 1: Planificar con GPT 5.6 Sol
Lo primero es cambiar el modelo. En la parte inferior de la interfaz aparece el selector, donde cambiamos de 5 a 5.6 Sol, el modelo más avanzado. También podemos ajustar el grado de esfuerzo del modelo: desde uno más rápido pero con respuestas menos elaboradas, hasta el nuevo nivel max, pensado para problemas que requieren deliberación extendida. Y por encima de eso existe el modo Ultra, que en lugar de simplemente razonar más, coordina varios subagentes en paralelo (cuatro por defecto) para dividir y acelerar proyectos complejos — a cambio de un consumo de tokens muchísimo mayor. Para este proyecto, el esfuerzo alto es más que suficiente; si tienes un plan más elevado, puedes subir el nivel para obtener mejores respuestas.
Luego activamos el modo plan y le damos un prompt como este:
Crea un sistema analizador de hojas de vida o CVs que al subirlos utilice una API de IA para analizar los documentos y guardar la información extraída en tablas de base de datos. Además, puntúa en base a experiencia y coloca comentarios o recomendaciones del perfil para mejorar el CV.
El modelo responde con una serie de preguntas para afinar el plan:
- ¿Quién va a usar el sistema? → Equipo reclutador.
- ¿En base a qué se calcula el puntaje? → Según la vacante disponible.
- ¿Qué herramientas usar? → Arquitectura propia (backend y frontend propios, ya que estamos en el escritorio).
- ¿Qué estrategia de IA? → La API de MiniMax (aunque también podrías usar OpenAI, Claude o Gemini; en mi caso ya tengo esa suscripción).
- ¿Qué capacidad incluir en la primera versión? → Gestión completa: login, módulos de base de datos, etc.
- ¿Cómo preparar la arquitectura? → Desarrollo local.
- ¿MVP para varias empresas o una sola? → Una sola empresa.
- ¿Qué archivos se subirán? → PDFs y documentos de Word, analizados con OCR (que la propia IA vea el documento y extraiga la información).
- ¿Cómo puntuar? → Rúbrica híbrida: varias métricas que se combinan en un puntaje final.
Después de unos momentos obtenemos el plan completo. En su propuesta inicial, el modelo eligió FastAPI para el backend, Next.js para el frontend y PostgreSQL como base de datos. Nada mal, pero en mi caso prefiero otro stack, así que se lo pedí directamente:
Cambia FastAPI por Node con Express y de frontend Vite.js con React.
Algo que noté de GPT 5.6 Sol en esfuerzo alto es que sus respuestas son relativamente cortas y directas — no trata de ser verboso. Y algo más interesante todavía: estos últimos modelos ya no solo crean carpetas de backend y frontend, sino que consideran estructurar el proyecto como monorepo y añaden pruebas, linting y fase de construcción. Es decir, incluyen los pasos que un proyecto real necesita.
Paso 2: Implementar y ejecutar
Con el plan aprobado, le damos a implementar y el modelo comienza a crear todo el proyecto en unos cinco pasos. Después de unos minutos tenemos el proyecto completo, con tests y build ejecutados.
Le pedimos que lo ejecute y podemos verlo directamente en el navegador integrado (o en uno aparte). El resultado: un login funcional con credenciales de prueba que el mismo modelo nos entrega, y un dashboard que mantiene el mismo tema visual que el login.
Paso 3: Delegar el testing a GPT 5.6 Luna
Aquí viene una de las partes más interesantes del flujo de trabajo. Como estamos dentro del proyecto, podemos abrir una nueva sesión de chat y delegar las pruebas a un modelo más barato: GPT 5.6 Luna, el modelo más rápido y económico de la familia, que consume muchos menos tokens y aun así rinde cerca de los niveles de 5.5 en varias pruebas.
El prompt es algo así:
Testea las funcionalidades del proyecto controlando el navegador y añadiendo datos seed para comprobar el funcionamiento de todas las partes de la aplicación.
Luna abre el navegador y empieza a probar la aplicación por su cuenta: entra al sitio, intenta crearse una cuenta, navega por las secciones, e incluso puedes ver los pasos que va ejecutando. Esto es muy útil porque nos permite trabajar en paralelo: en una pestaña planificamos y desarrollamos con Sol (el modelo potente), y en otra delegamos pruebas de interfaz o correcciones simples a Luna. No necesitamos gastar los tokens del modelo más caro en tareas pequeñas.
Este proceso puede tomar 10 minutos o más dependiendo del tamaño del proyecto. Al finalizar, Luna reportó que el login y el dashboard funcionaban correctamente, pero que faltaba configurar la API key de MiniMax para el análisis con IA.
Paso 4: Integrar la API de IA con OCR
Le pasamos la clave de MiniMax directamente en el chat, con una instrucción adicional:
Aquí está la clave de MiniMax. Usa también este modelo como OCR.
¿Por qué? Porque el modelo estaba instalando paquetes como Poppler y Tesseract (herramientas open source de análisis de documentos), pero si ya tenemos un modelo inteligente con capacidades multimodales, ese mismo modelo puede analizar los documentos que se suban, no solo generar resúmenes y recomendaciones.
El resultado: integró MiniMax M3 (uno de los últimos modelos con soporte de OCR) como analizador principal, dejó Tesseract como fallback en caso de que falle la comunicación con la API, y añadió la clave como variable de entorno.
Con la API integrada, volvimos a lanzar las pruebas automáticas con el navegador. Esta vez la IA subió un documento, lo procesó y asignó un puntaje: 89 de 100 para el candidato de prueba.
Paso 5: Probar con datos reales
Para validar por nosotros mismos, buscamos el CV de un backend developer (en formato imagen) y le pedimos una mejora rápida:
Permite cargar imágenes y también permite hacer drag and drop.
Con la actualización lista, arrastramos la imagen del CV, el sistema lo recibe y lo envía a la mesa de revisión. Después de pasar por la API de IA, el veredicto: 18 sobre 100. El candidato no hacía buen match con la vacante — sus habilidades no coincidían con las métricas esperadas — y la IA lo detectó correctamente.
A partir de aquí hay mucho margen de mejora: dar al reclutador una sección para definir sus propias métricas, cambiar la forma de evaluación, añadir opciones de contacto o descarga de reportes. Pero lo notable es que con apenas tres o cuatro prompts, la aplicación ya estaba hecha.
Paso 6: Desplegar en Railway con el CLI
Hay muchas opciones de nube (Vercel, AWS, Google Cloud), pero en mi caso uso Railway por su simplicidad: permite desplegar base de datos, frontend y backend en un mismo proyecto.
La clave aquí es el Railway CLI, la herramienta de consola que permite manipular tu nube desde la terminal. Y como ChatGPT Codex puede ejecutar comandos del sistema, si instalamos el CLI, el agente puede desplegarlo todo por nosotros.
Los pasos:
- Instalar el CLI según tu sistema operativo (en Windows, por ejemplo, con Scoop). Puedes abrir una terminal directamente desde la interfaz de ChatGPT con el botón
+. - Autenticarse con
railway login, que abre el navegador para autorizar el acceso. - Instalar el agent skill de Railway: Railway ofrece un skill en formato markdown que describe todos los comandos del CLI, para que el agente no tenga que descubrirlos desde cero. Se instala con un script (
skills.sh) que puedes ejecutar en la terminal o simplemente pegarle el comando al chat con un "instala este skill".
Con todo listo, abrimos un chat, invocamos el skill con /railway y le decimos:
Despliega este proyecto.
No hace falta indicar cuál proyecto — la carpeta ya está seleccionada en el contexto. El agente crea el proyecto en Railway con todos los servicios (base de datos, backend, frontend), configura las variables de entorno que le pasamos antes, y al final nos entrega las URLs de producción. Entramos con las credenciales que él mismo generó y tenemos la misma aplicación funcionando, ahora con un dominio provisto por Railway.
Paso 7: Testing en producción con TestSprite
Para la validación final usé TestSprite, una plataforma de testing con IA que combina framework de testing, automatización del navegador y reportes automáticos en una sola herramienta.
El flujo es similar al de Railway:
- Instalamos su CLI a nivel global (le puedes pegar el comando al chat y decirle "instala esto").
- Ejecutamos
testsprite setup, que pide una API key. La creamos desde el panel de TestSprite en la sección API keys. - Le decimos al agente: "Haz el test de este proyecto cv-ai-reviewer que está desplegado en Railway."
Lo interesante es la orquestación: el agente primero usa el skill de Railway para obtener la URL de producción, y luego se la pasa a TestSprite. La plataforma analiza el código, entiende de qué se trata la aplicación (detectó correctamente que era un analizador de CVs), genera los tests por su cuenta y los ejecuta.
El proceso puede tomar 20 minutos o más según el tamaño del proyecto. Al finalizar obtenemos:
- El código de cada test, revisable.
- Un reporte legible con el estado de cada prueba (pasadas, pendientes, bloqueadas o fallidas).
- Videos y evidencia paso a paso: puedes reproducir exactamente lo que hizo la IA — entrar al login, colocar credenciales, dar clic en ingresar, verificar la interfaz.
Y aquí TestSprite encontró un bug real: el reporte de puntaje no era visible desde la vista del candidato. Era correcto — solo habíamos creado el dashboard para quien contrata, no para quien postula. Le pedimos al agente (cambiando a Sol, el modelo más potente):
Corrige los errores y vuelve a ejecutar los tests.
Unos 7 minutos después, más tests en verde, incluyendo el principal: subir un candidato con sus datos y que el sistema lo evalúe y puntúe. También pasó la verificación de acceso del administrador, aunque quedaron algunas funcionalidades por implementar que seguiríamos iterando de la misma forma.
Incluso podemos pedir tests adicionales bajo demanda:
Crea un test para verificar el registro del usuario y el forgot password.
Nuestro propio modelo diseña la planificación del test, ejecuta los comandos, y TestSprite lo corre (consumiendo un par de créditos de la plataforma).
Conclusiones
Crear un proyecto completo con GPT 5.6 es sorprendentemente simple. Las herramientas son las mismas de siempre — solo el modelo se actualizó — pero la diferencia en calidad de respuesta es notoria. Algunas lecciones del proceso:
- Usa el modelo correcto para cada tarea. Sol consume muchos más tokens; no lo actives para todo. Para pruebas pequeñas, correcciones de interfaz o tareas simples, Luna es más que suficiente y muchísimo más barata.
- Los agent skills cambian el juego. Instalar el skill de Railway o el CLI de TestSprite convierte al agente en un operador de tu infraestructura, no solo un generador de código.
- El testing automatizado con IA ya es viable en producción. Entre el navegador integrado de Codex y plataformas como TestSprite, gran parte del QA manual desaparece.
- No necesitas un plan caro. Todo este proyecto se hizo con la suscripción de $20. La elección de modelo y esfuerzo depende del uso que le des y del plan que tengas.
Si tienes dudas sobre los modelos o alguna herramienta en específico, déjalas en los comentarios del video.