maxcv

Análisis y optimización con Claude Opus 4.6 · Anthropic

Cómo funciona

MaxCV es open source (MIT). Aquí puedes ver exactamente qué pasa cuando subes tu CV.

El pipeline, paso a paso

01

Subes tu CV

Pegas texto o adjuntas un PDF en tu navegador. Si es PDF, se envía al backend donde Claude lo lee nativamente (sin librerías de parsing). Tu archivo nunca se guarda en disco.

02

Sanitización de input

El texto pasa por sanitizeInput() que elimina bytes nulos y caracteres de control. Se trunca a 35,000 caracteres máximo. Rate limiting: 7 peticiones/hora por IP (en memoria, sin base de datos).

03

Prompt constitucional

Tu CV se envía a la API de Claude con un system prompt que incluye principios éticos explícitos: no discriminar, no inventar, no inflar scores, referenciar solo contenido real del CV. El prompt completo está en src/lib/prompts/analyze.txt — es auditable.

04

Claude analiza y reescribe

Un solo API call con temperature: 0 (determinístico). Claude devuelve JSON con: score (0-100), análisis en 6 dimensiones con evidencia, fortalezas, mejoras, y un CV completamente reescrito. Prompt caching activado para reducir costo y latencia.

05

Validación y render

El backend parsea el JSON, valida que tenga score + analysis + improved_cv, y lo devuelve al frontend. Si Claude no responde JSON válido, se muestra un error honesto — nunca resultados inventados.

06

Resultado en tu navegador

Ves tu score, las 6 dimensiones con criterios específicos (pass/warning/fail), sugerencias con before/after, y tu CV mejorado listo para copiar. Todo en tu navegador. Nada se almacena.

Stack técnico

FrontendNext.js 16 + React 19 + Tailwind CSS 4
TipografíaGeist + Geist Mono (Vercel)
IAClaude API (Anthropic SDK)
DeployVercel (auto-deploy en push a master)
AnalyticsVercel Analytics (anónimo, agregado)
Base de datosNinguna. Cero. Nada.
Dependencias6 deps de producción, 0 librerías UI externas
LicenciaMIT

Arquitectura de archivos

src/
├─ app/
│  ├─ api/analyze/route.ts  ← Endpoint principal (Claude API call)
│  ├─ api/parse/route.ts    ← PDF → texto (Claude nativo)
│  ├─ page.tsx              ← Página principal
│  ├─ privacy/page.tsx      ← Aviso de privacidad
│  ├─ terms/page.tsx        ← Términos de uso
│  ├─ security/page.tsx     ← Seguridad & privacidad
│  └─ how/page.tsx          ← Esta página
├─ components/
│  ├─ Analyzer.tsx          ← Componente principal (~450 líneas)
│  ├─ Header.tsx / Footer.tsx
│  └─ ResumeText.tsx        ← Render de texto con bullet indent
└─ lib/
   ├─ prompts/analyze.txt   ← System prompt constitucional
   ├─ i18n.ts               ← Todas las traducciones ES/EN
   ├─ analytics.ts          ← Eventos de conversión
   ├─ rateLimit.ts          ← Rate limiting (in-memory)
   └─ apiUtils.ts           ← sanitizeInput + stripMarkdown

Principios de diseño

🔍

Transparencia radical

El código fuente está público. El prompt de IA está en el repo. Los pesos del scoring están documentados. Puedes verificar cada promesa que hacemos.

🧠

Anti-alucinación

Cada sugerencia debe referenciar contenido real del CV. Si algo no está en tu CV, no se menciona. Consejo genérico = falla del sistema.

⚖️

Cero discriminación

No penalizamos career gaps, caminos no lineales ni educación no tradicional. No inferimos género, edad, etnia ni nacionalidad.

🛡️

Privacidad por diseño

Sin base de datos, sin cuentas, sin cookies de tracking. Tu CV existe solo durante el análisis y se descarta inmediatamente.

Fork, clona, contribuye

MaxCV es MIT. Puedes clonarlo, modificarlo, y lanzar tu propia versión. Solo necesitas una API key de Anthropic.

git clone https://github.com/pixan-ai/maxcv.git
cd maxcv
npm install
echo "ANTHROPIC_API_KEY=tu-key" > .env.local
npm run dev
Ver repositorio en GitHub →

Última actualización: Abril 2026