RevisaCV
AI resume feedback trained like a recruiter — from a WordPress prototype to a self-owned web app with technical SEO and GEO in 15 languages.
View product →Quick summary
- Role
- Solo builder (V1 and V3) · with Christian Pasquel (V2)
- Period
- December 2023 → present (3 versions)
- Tech stack
- Azure → Hetzner + N8N → Vercel + Supabase + Claude Code
- Product
- revisacv.com
The problem
I left Rappi in 2023 and, like anyone in an active job search, started polishing my resume. In one conversation someone threw out the idea of reviewing it with ChatGPT. I tried it, and got completely absorbed: refining the prompt over and over, researching what made a resume pass (or fail) ATS filters, reading up on recruiting best practices.
At some point the prompt stopped being something I only used for myself. If it was giving me actionable, specific feedback — not generic — it would probably help anyone else in the same uncertain moment I was in. That was the origin: not a business plan, but a prompt that had gotten good enough that I stopped keeping it to myself.
The build
V1 — Free web app (December 2023)
The first version was, literally, “build with what you know.” I chose Azure because I wanted to learn more about that cloud, not because it was the cheapest or simplest option — a conscious decision to also use the project as an excuse to learn infrastructure.
- Azure — App Service inside a virtual machine, hosting both the web app and the email server.
- WordPress + Spectra for the front end, with Photoshop for the logo.
- Solid (a WordPress security plugin) for strong passwords, blocking users with compromised emails, and brute-force protection.
- Zapier as the orchestrator: received the resume, called the OpenAI API for the analysis, injected the result into an HTML template (built with help from ChatGPT, designed to look good in dark mode too) and triggered the email send.
I announced the web app on LinkedIn on January 22, 2024. The MVP had no monetization layer at all — it was 100% free, meant to validate whether the need was real before adding any complexity.
V2 — WhatsApp bot, with Christian Pasquel (October 2024)
With V1’s validation in hand but Azure’s cost weighing on me, V2’s goal was direct: drop infrastructure cost to nearly zero and try a different channel — WhatsApp, where people already are, with no friction of “going to a website.”
- Hetzner for the infrastructure (much cheaper than Azure).
- N8N handling the entire conversational flow and orchestrating the analysis against the OpenAI API.
- Webflow for a static site, used only as a promotional landing page — the actual product lived in the chat, not on the web.
The trade-off was explicit: less control and customization (the whole “product” ran within the limits of a WhatsApp flow) in exchange for near-free infrastructure and meeting people on a channel they already used daily.
V3 — Ad-supported web app (August 2026)
V2 proved the analysis worked and that people valued it, but it hit two walls: driving traffic to a WhatsApp bot is hard, and depending on a third-party platform is fragile (WhatsApp’s changes eventually broke the model — more on that in Scaling). V3 goes back to an owned web app, but with a completely different distribution approach: instead of paying or fighting for traffic channel by channel, betting on multi-language technical SEO as a long-term organic channel, monetized with ads instead of a direct sale.
- Vercel hosts the frontend.
- Supabase as the backend (auth, storage, Edge Functions, Postgres) — replaces all the manual N8N/Zapier orchestration with managed infrastructure.
- Passwordless login via email magic link, with its own templates translated into 15 languages — consistent with the rest of the product, no single-language login screen while everything else is localized.
- Gemini as the LLM for the analysis (replaces OpenAI).
- Claude for the product’s technical and visual design, and Claude Code as the end-to-end development tool.
- Content and UI in 15 languages, with technical SEO best practices (hreflang, sitemap, metadata) replicated in each one — the central distribution bet of this version.
- GEO (Generative Engine Optimization): distribution isn’t aimed only at traditional search engines, but also at letting AI agents (ChatGPT, Perplexity, Claude, etc.) read the site directly. This included real prerendering (SSR) of public pages — a React SPA is, by default, an empty
<div>to any crawler that doesn’t execute JavaScript, and several of the biggest AI bots don’t — plus more structured data (JSON-LD:Article,FAQPage,BreadcrumbList) so an agent can extract content without parsing HTML, arobots.txtwith explicit permissions for GPTBot, ClaudeBot, PerplexityBot, and Google-Extended, and anllms.txtwith a curated site summary as an entry point for agents.
Scaling
More than “what broke as it grew” in the classic traffic/load sense, each version of RevisaCV broke for a different reason — and each break defined the next version:
- V1 → V2: it wasn’t a user-scale problem (200 resumes in a month isn’t much volume), but an unsustainable fixed cost one. Keeping Azure running for that volume didn’t add up, so V2’s priority became cutting infrastructure cost to near zero before adding any features.
- V2 → V3: here there were two real breaking points. One of distribution — driving traffic to a WhatsApp bot was consistently hard, with no owned organic channel. And one of platform dependency — changes to WhatsApp’s policies/terms eventually made the model unviable as built, something completely outside my control. That fragility was the main reason to go back to an owned channel (web + SEO) instead of continuing to optimize inside WhatsApp.
- V3 is designed, from day one, to avoid both previous breaking points: low variable cost (Supabase + Vercel instead of Azure) and a distribution channel that doesn’t depend on a third party’s goodwill (owned SEO in 15 languages, instead of a borrowed messaging channel).
Results
| Version | Period | Result | Cost |
|---|---|---|---|
| V1 | Jan 2024 (1 month) | 200+ resumes reviewed for free, ~80 people | High (Azure) |
| V2 | Oct 2024 – Dec 2025 | 1,870 resumes reviewed · $150 USD profit · 8% conversion on chats started (benchmark: 5%) | $1.50 USD/month |
| V3 | Aug 2026 – present | Just launched, no consolidated metrics yet — this is the model I’m currently testing (pending AdSense review) | — |
I didn’t keep evidence (screenshots, URLs, dashboards) of V1 or V2 beyond these numbers — neither is online anymore. That’s actually one of the lessons below.
Lessons
- “Build with what you can and validate the need” beats building the optimal thing from day one. V1 was expensive and wasn’t the right long-term architecture, but it did its one real job: confirming the need existed before investing further.
- Cheap infrastructure is a real advantage, but it’s not enough if it doesn’t solve distribution. V2 cut cost to $1.50 USD/month, an achievement in itself, but it still didn’t solve the underlying problem: bringing people to the product.
- Never build your product’s core on a platform you don’t control. The WhatsApp bot worked well technically, but a policy change outside my control made it unviable overnight. That’s the underlying reason V3 bets on an owned channel (SEO) instead of depending on a borrowed one.
- Keep evidence of every iteration. Not having a single URL or screenshot of V1 or V2 today is a real loss for showing the full journey — going forward, document each version before shutting it down.
- Each version changed more than the stack: it changed the business model. Free with no monetization (V1) → direct marginal profit by volume (V2) → ads + scale via SEO (V3). It wasn’t a straight-line technical migration, it was three different product bets using the same core (AI resume feedback).
- SEO alone isn’t enough anymore — you also have to think about how an agent reads you. A SPA without prerendering is an empty
<div>to crawlers that don’t execute JavaScript, and that’s exactly the category several of today’s most-used AI bots fall into. Building V3 with GEO in mind from the start (not as a later patch) was key to making this version’s distribution bet reach both traditional search engines and the new generation of agents people use to find answers.