RevisaCV
Feedback de CV con IA, entrenada como reclutador — de un prototipo en WordPress a una web con SEO técnico y GEO propio en 15 idiomas.
Ver producto →Resumen rápido
- Rol
- Builder solo (V1 y V3) · con Christian Pasquel (V2)
- Periodo
- Diciembre 2023 → presente (3 versiones)
- Stack técnico
- Azure → Hetzner + N8N → Vercel + Supabase + Claude Code
- Producto
- revisacv.com
El problema
Salí de Rappi en 2023 y, como cualquiera en búsqueda activa, empecé a pulir mi CV. En una conversación alguien me tiró la idea de revisarlo con ChatGPT. Lo probé, y terminé metido de lleno: mejorando el prompt una y otra vez, buscando qué hacía que un CV pasara (o no) los filtros ATS, leyendo buenas prácticas de redacción para reclutamiento.
En algún punto el prompt dejó de ser algo que usaba solo para mí. Si a mí me estaba dando feedback accionable y específico —no genérico— probablemente le sirviera a cualquiera en el mismo momento de incertidumbre que yo. Ese fue el origen: no un plan de negocio, sino un prompt que se volvió lo bastante bueno como para dejar de guardármelo.
La construcción
V1 — Web gratuita (diciembre 2023)
La primera versión fue, literalmente, “construye con lo que sepas usar”. Elegí Azure porque quería aprender más de esa nube, no porque fuera la opción más barata o simple — una decisión consciente de usar el proyecto también como excusa para aprender infraestructura.
- Azure — App Service dentro de una máquina virtual, alojando la web y el servidor de emails.
- WordPress + Spectra para el front, con Photoshop para el logo.
- Solid (plugin de seguridad de WordPress) para contraseñas fuertes, bloqueo de usuarios con emails comprometidos y protección contra fuerza bruta.
- Zapier como orquestador: recibía el CV, llamaba a la API de OpenAI para el análisis, inyectaba el resultado en una plantilla HTML (armada con ayuda de ChatGPT, pensada para verse bien también en dark mode) y disparaba el envío por email.
Anuncié la web el 22 de enero de 2024 en LinkedIn. El MVP no tenía ninguna capa de monetización — era 100% gratis, pensado para validar si la necesidad era real antes de complicar nada más.
V2 — Bot de WhatsApp, con Christian Pasquel (octubre 2024)
Con la validación de V1 en mano pero el costo de Azure pesando, el objetivo de V2 fue directo: bajar el costo de infraestructura a casi cero y probar un canal distinto — WhatsApp, donde ya está la gente, sin fricción de “entrar a una web”.
- Hetzner para la infra (mucho más barato que Azure).
- N8N manejando todo el flujo conversacional y orquestando el análisis contra la API de OpenAI.
- Webflow para una web estática, solo como landing promocional — el producto real vivía en el chat, no en la web.
El trade-off fue explícito: menos control y personalización (todo el “producto” corría dentro de las limitaciones de un flujo de WhatsApp) a cambio de una infraestructura casi gratis y de reunirse con la gente en un canal que ya usaban a diario.
V3 — Web con publicidad (agosto 2026)
V2 demostró que el análisis funcionaba y que la gente lo valoraba, pero chocó con dos paredes: traer tráfico a un bot de WhatsApp es difícil, y depender de una plataforma de terceros es frágil (los cambios de WhatsApp terminaron rompiendo el modelo — más detalle en Escalamiento). V3 vuelve a una web propia, pero con un enfoque completamente distinto de distribución: en vez de pagar o pelear tráfico canal por canal, apostar por SEO técnico multi-idioma como canal orgánico de largo plazo, monetizado con publicidad en vez de venta directa.
- Vercel aloja el frontend.
- Supabase como backend (auth, storage, Edge Functions, Postgres) — reemplaza toda la orquestación manual de N8N/Zapier por infraestructura administrada.
- Login sin contraseña vía magic link por email, con plantillas propias traducidas a los 15 idiomas — coherente con el resto del producto, nada de una pantalla de login en un solo idioma mientras todo lo demás está localizado.
- Gemini como modelo LLM para el análisis (reemplaza a OpenAI).
- Claude para el diseño técnico y visual del producto, y Claude Code como la herramienta de desarrollo end-to-end.
- Contenido y UI en 15 idiomas, con buenas prácticas de SEO técnico (hreflang, sitemap, metadata) replicadas en cada uno — la apuesta de distribución central de esta versión.
- GEO (Generative Engine Optimization): la distribución no apunta solo a buscadores tradicionales, sino también a que agentes de IA (ChatGPT, Perplexity, Claude, etc.) puedan leer el sitio directamente. Esto incluyó prerendering real (SSR) de las páginas públicas — una SPA en React es, por defecto, un
<div>vacío para cualquier crawler que no ejecute JavaScript, y varios de los bots de IA más grandes no lo hacen — más datos estructurados (JSON-LD:Article,FAQPage,BreadcrumbList) para que un agente extraiga contenido sin parsear HTML,robots.txtcon permisos explícitos para GPTBot, ClaudeBot, PerplexityBot y Google-Extended, y unllms.txtcon un resumen curado del sitio como punto de entrada para agentes.
Escalamiento
Más que “qué se rompió al crecer” en el sentido clásico de tráfico/carga, cada versión de RevisaCV se rompió por un motivo distinto — y cada ruptura definió la siguiente versión:
- V1 → V2: no fue un problema de escala de usuarios (200 CVs en un mes no es mucho volumen), sino de costo fijo insostenible. Mantener Azure para ese volumen no cerraba, así que la prioridad de V2 pasó a ser bajar el costo de infraestructura casi a cero antes que agregar features.
- V2 → V3: acá sí hubo dos quiebres reales. Uno de distribución — llevar tráfico a un bot de WhatsApp resultó consistentemente difícil, sin un canal orgánico propio. Y uno de dependencia de plataforma — cambios en las políticas/condiciones de WhatsApp terminaron volviendo inviable el modelo tal como estaba armado, algo completamente fuera de mi control. Esa fragilidad fue la razón principal para volver a un canal propio (web + SEO) en vez de seguir optimizando dentro de WhatsApp.
- V3 está diseñada, desde el día uno, para evitar ambos quiebres anteriores: costo variable bajo (Supabase + Vercel en vez de Azure) y un canal de distribución que no depende de la buena voluntad de un tercero (SEO propio en 15 idiomas, en vez de un canal de mensajería ajeno).
Resultados
| Versión | Periodo | Resultado | Costo |
|---|---|---|---|
| V1 | Ene 2024 (1 mes) | +200 CVs revisados gratis, ~80 personas | Alto (Azure) |
| V2 | Oct 2024 – Dic 2025 | 1,870 CVs revisados · USD $150 de utilidad · 8% conversión sobre chats iniciados (benchmark: 5%) | USD $1.50/mes |
| V3 | Ago 2026 – presente | Recién lanzada, sin métricas consolidadas todavía — es el modelo que estoy probando ahora (pendiente de revisión de AdSense) | — |
No guardé evidencia (capturas, URLs, dashboards) de V1 ni V2 más allá de estos números — ambas ya no están online. Es, de hecho, uno de los aprendizajes de abajo.
Aprendizajes
- “Construye con lo que puedas y valida la necesidad” gana a construir lo óptimo desde el día uno. V1 costaba caro y no era la arquitectura correcta a largo plazo, pero cumplió su único trabajo real: confirmar que la necesidad existía antes de invertir más.
- Infraestructura barata es una ventaja real, pero no alcanza si no resuelve distribución. V2 bajó el costo a USD $1.50/mes, un logro en sí mismo, pero seguía sin resolver el problema de fondo: traer gente al producto.
- Nunca construyas el corazón de tu producto sobre una plataforma que no controlás. El bot de WhatsApp funcionaba bien técnicamente, pero un cambio de políticas ajeno a mí lo volvió inviable de un día para el otro. Es la razón de fondo por la que V3 apuesta a un canal propio (SEO) en vez de depender de un canal prestado.
- Guardá evidencia de cada iteración. No tener ni una URL ni una captura de V1 o V2 hoy es una pérdida real para poder mostrar el recorrido completo — a partir de ahora, documentar cada versión antes de apagarla.
- Cada versión cambió más que el stack: cambió el modelo de negocio. Gratis sin monetización (V1) → utilidad marginal directa por volumen (V2) → publicidad + escala vía SEO (V3). No fue una migración técnica en línea recta, fue tres apuestas de producto distintas usando el mismo core (feedback de CV con IA).
- El SEO ya no alcanza — ahora también hay que pensar en cómo te lee un agente. Una SPA sin prerendering es un
<div>vacío para crawlers que no ejecutan JavaScript, y esa es exactamente la categoría en la que caen varios de los bots de IA más usados hoy. Construir V3 pensando en GEO desde el inicio (no como un parche posterior) fue clave para que la apuesta de distribución de esta versión llegue tanto a buscadores tradicionales como a la nueva generación de agentes que la gente usa para encontrar respuestas.