Pequeña experiencia creando un MVP con ayuda de Claude Code
Quien no tiene ideas que le rondan por la cabeza, unas que te harán millonario y otras que solo por disfrute por hacerlas. Para las primeras, lógicamente, aún no entiendo por qué no ocurren ;-), pero para las segundas siempre suele ser por falta de tiempo, por la familia-trabajo-día a día, o simplemente porque justo sale el nuevo capítulo de la serie favorita.
Este es un caso del segundo tipo, aunque llegó una invitación de Anthropic para gastar 250$ en Claude Code antes del 23 de noviembre. Así que lo aproveché, puse en pausa Netflix y a ver que sacaba. De esta forma probaba de qué es capaz el agente de Claude y, ya de paso, Anthropic consigue que muerda el anzuelo para mejorar el producto y engancharme como hacen todos. :-D
Lo primero que hice fue hacer un prompt muy mejorable para sacar una lista de nuevas ideas, a ver si sacaba alguna mejor que todas esas que estaban en el cajón:
Crea 10 ideas de proyectos para desarrollar en la web, utilizando nuevas tecnologías y agentes de IA que sean soluciones prácticas. Deben ser sencillos, rápidos de poner en producción y orientados al mercado español. Para cada proyecto, crea un roadmap atómico de implementación para avanzar paso a paso en la creación de la solución contigo. Finaliza cuando todo esté planificado, detallado y con una calidad del 95 sobre 100.
Hizo estas 10 "ideas":
- AgenteLegalBot - Asistente legal para autónomos
- MenuMaestro - Generador de menús con IA para restaurantes
- AlquilaYa AI - Búsqueda inteligente de pisos de alquiler
- CVGeniusES - Generador de CVs optimizados para ATS
- FacturaFácilAI - Sistema de facturación automática
- ProfesorIA - Tutor personalizado para oposiciones
- DietaAI - Nutricionista virtual adaptado a España
- MercadIA - Comparador de precios de supermercados
- ContratAI - Generador de contratos legales
- TurismoIA - Planificador de viajes por España
Mi elegido fue el generador de CVs optimizados para ATS. Quería probar algo sencillo donde practicar un poco de escritura de prompts en un caso práctico. Este era uno que podía incluso probar con mis datos y no necesitaba mucha información, además con el boom de la IA, andamos todos preocupados mirando el CV de reojo :-|
¿Qué es EasyCVMatch?
EasyCVMatch es una herramienta web que optimiza tu currículum para superar los filtros de los sistemas ATS (Applicant Tracking Systems). Los ATS son programas que utilizan las empresas para gestionar y filtrar automáticamente los CVs que reciben. Analizan palabras clave, formato y estructura, y pueden descartar candidatos válidos simplemente porque su CV no está optimizado para estos sistemas.
La aplicación toma tu CV actual y la descripción de una oferta de trabajo, y mediante IA genera una versión optimizada que:
- Incorpora las palabras clave relevantes de la oferta
- Mejora la estructura para ser más legible por los ATS
- Proporciona un score de compatibilidad y sugerencias de mejora
- Genera un documento descargable listo para enviar
El proceso en números
El desarrollo del MVP se completó en aproximadamente una semana, con los siguientes datos:
| Métrica | Valor |
|---|---|
| Sesiones de chat con Claude Code | 29 |
| Commits | 85 |
| Créditos consumidos | ~100$ |
| Tiempo total | ~7 días |
Después de varias sesiones de chat con Claude Code, y algunas con Github Copilot y varias iteraciones en cada una de ellas, múltiples optimizaciones del claude.md y con más o menos 100$ dólares consumidos, saqué un MVP al menos un poco interesante y que pude poner en práctica con mi propio currículum.
Por el camino saqué algunas conclusiones al utilizar un agente para desarrollar un MVP como "Solo developer":
TL;DR: Mantén el contexto del agente actualizado, no tengas miedo de tirar código y empezar de nuevo, supervisa como arquitecto y revisa cada cambio con ojo crítico.
- Optimiza el uso de las sesiones de chat. Vale más la pena desechar un desarrollo y empezar una sesión nueva, y esta vez con el contexto del agente mejorado, que intentar corregir el desarrollo ya avanzado en una sesión (tener claude.md, AGENTS.md, GEMINI.md, ... siempre actualizado).
- Las horas consumidas y líneas de código generado ya no valen tanto como si las hiciéramos nosotros. Más vale el valor que puedan ofrecer a la solución que la cantidad o calidad del código. Aunque cueste aceptarlo, vale más tirar y volver a empezar.
- Para el MVP no es necesario tener el código perfecto, pero sí que lo puedas leer todo sin demasiado esfuerzo. Mi consejo es ir recordándole al agente que es un MVP y no queremos demasiado código para seguir manteniendo la mantenibilidad, y dejarle claro cuántas personas están revisando el código. Hay que ponerse el gorro en todo momento de arquitecto, por lo que debes tener controlado todo; si no, será fácil que el código se desmadre. Si es así, recuerda el punto anterior: es mejor tirar y volver a empezar pero con mejor contexto.
- Sobre los modelos, decir que Google Gemini con su versión gratuita sigue siendo el mejor modelo si no se quiere gastar dinero al inicio, y según Google no utilizará los datos para mejorar sus productos (Aunque me cueste creerlo :-)). Para la validación de prompts y mejorarlos, vale la pena utilizar las herramientas de optimización de Anthropic o OpenAI.
- A los agentes les gusta crear bastante código, si no los revisas bien, te das cuenta de que son innecesarios. Un ejemplo que me pasó: la aplicación es multiidioma, pide un prompt con el CV y la oferta, y devuelve un CV optimizado con ciertas sugerencias de mejoras y un score. Todo esto puede devolverlo en un idioma determinado dependiendo de la petición. Pues en mi caso, en un punto estaba creando métodos auxiliares para traducir palabras del CV optimizado que devolvía el propio prompt:
function normalizeSectionTitle(title: string): string {
const normalized = title.toUpperCase().trim();
const mappings: Record<string, string> = {
'CONTACTO': 'CONTACT',
'CONTACT': 'CONTACT',
'INFORMACIÓN DE CONTACTO': 'CONTACT',
'CONTACT INFORMATION': 'CONTACT',
...
Lógicamente, esto se puede prevenir desde el propio prompt especificando bien cómo quieres la respuesta. Pero en una de estas, si no te fijas, es fácil despistarse. Este caso es fácil de ver, pero hay otros que son más complicados. Mi consejo es que es fácil caer en la tentación de aceptar cambios rápidamente sin darle demasiada importancia , ya queson cambios de UI o no tan core de la aplicación. Ojo con estos: son los peores y los que me hacían crecer rápidamente el código base.
Vamos a por el stack, al inicio tuve la tentación de probar algún stack con el que no estuviera familiarizado para aprovechar y aprender algo más, pero al final fui a tiro seguro y quedó de esta forma:
Frontend:
- Next.js + TypeScript
- CSS: Tailwind CSS
- i18n: next-intl
- Captcha: Cloudflare Turnstile (react-turnstile)
Backend:
Testing:
Proveedores IA:
- Google Generative AI (Gemini) por defecto — librería SDK @google/generative-ai
- Anthropic (Premium) — librería SDK @anthropic-ai/sdk
- Ollama (local)
Persistencia / Rate limiting:
Observabilidad y analítica:
- Sentry: Para un tracking de errores rápido, fiable, y cada vez añaden más mejoras.
- Vercel Analytics: No quiero liarme con banners de cookies, GDPR y algo rápido con unos mínimos. Vercel Analytics ya es más que suficiente.
Hosting:
- Vercel: Más fiable para el stack y para el MVP.
- GitHub: Código fuente y alguna GitHub Action para la integración continua.
- Cloudflare: DNS (prevención DDoS, etc.)
Cuando la tenga un poco más trabajada, la publicaré como proyecto público en GitHub. Pero mientras tanto, te invito a utilizarla a ver qué te parece: www.easycvmatch.com
Próximos pasos
El MVP parece que está funcional, pero tengo mejoras o correcciones en el roadmap, habrá que buscar otro hueco, algunas de ellas que se me ocurren son:
- Optimizar el prompt y las recomendaciones: Se puede mejorar mucho la calidad de las sugerencias y el análisis de compatibilidad con las ofertas de trabajo, aunque depende mucho del modelo es importante mejorar el prompt.
- Considerar si es viable sacar versión e-commerce: Ver si es viable avanzarlo y sacar una versión premium con mejores resultados utilizando modelos premium.
- Ampliar formatos de exportación: Añadir más opciones de descarga además de DOCX.
- Historial de CVs optimizados: Permitir a los usuarios guardar y comparar diferentes versiones.
Si has llegado hasta aquí, gracias!!!! Anímate y sube tu CV y cuéntame qué tal te ha ido.
Escrito por Miguel Ordóñez Revisado por GitHub Copilot