CVAssembler es una herramienta modular escrita en Python que permite construir, unificar y exportar CVs profesionales usando secciones en Markdown y plantillas dinámicas.
Incluye scripts CLI escritos con typer, plantillas personalizables, soporte para CI/CD y generación automática de PDF mediante pypandoc y xelatex.
- 🧩 Secciones modulares (
sections/) → perfiles, educación, experiencia, habilidades, proyectos… - 🎨 Plantillas personalizables (
templates/default.md) - 🛠️ Core en Python para unir secciones y exportar a PDF/HTML
- 📦 Scripts CLI (
scripts/) listos para automatizar generación y exportación - 🔄 CI/CD integrado (GitHub Actions)
- 🧪 Tests automáticos con pytest + ruff
CVAssembler/
├── core/ # Lógica interna: builder, parser, exporter
├── scripts/ # Scripts de automatización CLI
├── templates/ # Plantillas base (Markdown)
├── sections/ # Secciones modulares del CV
├── output/ # Archivos generados (.md / .pdf)
├── certificates/ # Certificados opcionales del usuario
├── tests/ # Pruebas automáticas
├── docs/ # Documentación (changelog, etc.)
└── .github/workflows/ # CI/CD (lint, tests, demo PDF)python scripts/merge_sections.pyEsto genera:
output/CV.md
python scripts/export_pdf.py --input output/CV.md --output output/Esto genera:
output/CV.pdf
python scripts/generate_cv.py --pdfModo demo (usado en CI/CD):
python scripts/generate_cv.py --demo --pdfSe encuentra en:
templates/default.md
Incluye placeholders como:
{{nombre_completo}}
{{email}}
{{experiencia}}
{{habilidades_tecnicas}}| Script | Función |
|---|---|
| merge_sections.py | Une todas las secciones en un solo Markdown |
| export_pdf.py | Convierte un Markdown a PDF con Pandoc |
| generate_cv.py | Pipeline completo (merge + PDF) |
| demo (CI/CD) | Genera automáticamente demo_CV.pdf |
-
CI ejecuta:
- Ruff (lint)
- Pytest (tests unitarios)
-
Se prueban:
- Unión de secciones
- Parser de secciones
- Exporter con mocking de pypandoc
- Ejecuta automáticamente:
- Formato con Ruff
- Test suite con pytest
- Cuando CI pasa correctamente:
- Genera un demo_CV.md
- Exporta demo_CV.pdf
- Lo sube como artifact en GitHub
Esto garantiza que cualquiera que haga fork tiene un CV funcional desde el primer minuto.
En la carpeta sections/ ya existe un CV completo de demostración con placeholders totalmente genéricos.
Los usuarios solo deben abrirlos y reemplazar los valores.
- Python ≥ 3.12
- pypandoc
- typer
- pandoc (se instala dentro del CI/CD)
- xelatex (se instala dentro del CI/CD)
Este proyecto está bajo licencia MIT.
Puedes usarlo, modificarlo y adaptarlo libremente.
Pull requests y mejoras son bienvenidas.