overleaf-resume
Overleaf Resume
Edita y compila tu(s) currículum(s) localmente en lugar de en el sitio web de Overleaf, con un servidor MCP que sincroniza los archivos fuente con Overleaf cuando sea necesario. Funciona con cualquier número de proyectos de Overleaf en paralelo: cada herramienta de sincronización toma un project_id explícito, por lo que nada está vinculado a un único proyecto "el".
Diseñado para cuentas gratuitas de Overleaf (sin acceso a Git/API). Si tu cuenta tiene integración con Git (plan de pago), simplemente haz git clone de tu proyecto — no necesitas esto.
Cómo funciona
Edición diaria: una vez que un proyecto se ha descargado (ver más abajo), edita su archivo
.texdirectamente enprojects/<name>/, y luego compila localmente con Tectonic — no se necesita ir y volver a Overleaf:
tools/tectonic.exe projects/<name>/<main file>.texEsto produce un PDF justo al lado. (tools/tectonic.exe es un binario independiente ya configurado en este repositorio — ignorado por git porque es un binario grande descargado, no código fuente).
Sincronización con Overleaf: dado que esta es una cuenta gratuita de Overleaf (sin acceso a Git/API), un servidor MCP (
overleaf_mcp/) controla una sesión real de Chromium con sesión iniciada mediante Playwright para descargar el código fuente de un proyecto y enviar las ediciones de vuelta a su editor en línea — las mismas acciones que harías manualmente en el navegador.
Related MCP server: LaTeX Resume MCP
Estructura del proyecto
Cada proyecto de Overleaf que descargues se coloca en su propia subcarpeta, de modo que varios currículums pueden coexistir sin colisiones:
projects/
<your-project-name>/
resume.tex (or whatever the project's main file is named)
...other pulled files (.cls, .sty, images)
.backups/ # timestamped backups made before each re-pull
<another-project-name>/
...projects/ está en .gitignore — contiene el contenido real de tu currículum (descargado de Overleaf), por lo que permanece local y nunca se sube al repositorio.
Configuración inicial
Los pasos 1-2 ya están hechos en este repositorio (.venv/ tiene las dependencias instaladas y el navegador Chromium de Playwright descargado; tools/tectonic.exe está listo para usar). Se enumeran aquí por si necesitas repetirlos en otra máquina o después de una clonación limpia.
Crea un entorno virtual e instala las dependencias:
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
playwright install chromiumObtén Tectonic:
winget/chocopueden requerir derechos de administrador que no siempre están disponibles. La opción fiable sin administrador es descargar el binario de Windows directamente y colocarlo entools/:
gh release download tectonic@0.17.0 --repo tectonic-typesetting/tectonic \
--pattern "tectonic-0.17.0-x86_64-pc-windows-msvc.zip" --dir tools
# then unzip it so tools/tectonic.exe existsVerifica con tools/tectonic.exe --version.
Inicia sesión en Overleaf una vez para que el servidor MCP pueda reutilizar la sesión:
.venv/Scripts/python.exe scripts/overleaf_login.pySe abre una ventana del navegador con la página de inicio de sesión de Overleaf. Inicia sesión con correo electrónico + contraseña, no con "Iniciar sesión con Google" — Google bloquea su formulario de inicio de sesión dentro de cualquier navegador automatizado, por lo que las cuentas solo de Google necesitan una contraseña configurada en Overleaf primero (Configuración de la cuenta). La sesión se guarda en .auth/storage_state.json (ignorado por git — nunca lo subas ni lo compartas). Vuelve a ejecutar este script cada vez que overleaf_login_status indique que la sesión ha caducado.
El
.mcp.jsonde este repositorio registra el servidor con Claude Code automáticamente. Reinicia Claude Code (o ejecuta/mcp) para que detecte el servidoroverleaf-resume.Llama a
overleaf_list_projectspara ver todos tus proyectos de Overleaf y sus ids, luegooverleaf_pull(project_id)para el/los que quieras trabajar. Los archivos se colocan enprojects/<name>/.
Herramientas MCP
overleaf_login_status— comprueba si la sesión guardada sigue siendo válida.overleaf_list_projects— lista todos los proyectos de Overleaf (nombre + id).overleaf_pull(project_id, local_dir?)— descarga el código fuente de ese proyecto enprojects/<name>/(o enlocal_dirsi se indica), haciendo una copia de seguridad de cualquier archivo.tex/.cls/.sty/.bibexistente en.backups/primero.overleaf_push(project_id, file_path)— envía el contenido actual de un archivo local de vuelta al editor en línea de ese proyecto de Overleaf.file_pathes relativo a la raíz de este repositorio, por ejemploprojects/<tu-nombre-de-proyecto>/resume.tex.
project_id siempre es obligatorio — no hay un único proyecto predeterminado, por lo que esto funciona igual si tienes un currículum o varios. Usa overleaf_list_projects siempre que necesites buscar uno.
Solución de problemas de compilaciones locales
Overleaf compila con pdfLaTeX por defecto; Tectonic usa un motor basado en XeTeX. Dos problemas que esto sacó a la luz en las plantillas populares estilo "Jake's Resume", por si también te encuentras con ellos:
\pdfglyphtounicode/\input{glyphtounicode}/\pdfgentounicode=1son primitivas solo de pdfTeX. Protégelas para que ambos motores funcionen:
\usepackage{iftex}
\ifPDFTeX
\input{glyphtounicode}
\fi
...
\ifPDFTeX
\pdfgentounicode=1
\fiLos pares
\begin{itemize}...\end{itemize}deenumitem(a través de las macros\resumeSubHeadingListStart/Endde esta plantilla) deben mantenerse equilibrados incluso en secciones comentadas — un\end{itemize}suelto y sin emparejar que quede después de comentar un bloque produce un crípticoUndefined control sequenceen lo profundo de los internals deenumitem(\enit@enditemize). Esto no es una diferencia entre Tectonic y Overleaf — fallará también en el compilador propio de Overleaf si miras el contador de errores.
Advertencias
Esto automatiza la interfaz web real de Overleaf con tu propia sesión iniciada — no hay API pública para proyectos de plan gratuito. Puede romperse si Overleaf cambia su interfaz, y la sesión guardada caducará ocasionalmente (vuelve a ejecutar
scripts/overleaf_login.py).La primera compilación de
tectonicnecesita acceso a la red para descargar paquetes de LaTeX; las compilaciones posteriores se almacenan en caché y funcionan sin conexión..auth/storage_state.jsoncontiene cookies de sesión activas — mantenlo fuera del control de versiones.
This server cannot be deployed
Maintenance
Related MCP Connectors
Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.
Build, version and render resumes as PDFs from Claude or any MCP client.
A hosted LaTeX editor your assistant can actually use. Search 1,019 free templates, create and edit projects, and compile them to PDF on a real TeX Live farm, getting back the PDF or the compile log when a build fails. Thirteen tools behind OAuth 2.1, with nothing to install and nothing to run locally.
Build an ATS-friendly resume and check it against a job description, fully offline.
Related MCP Servers
- AlicenseBqualityDmaintenanceAutomatically generates and updates CVs/resumes by aggregating data from git commits, Jira tickets, Credly certifications, and existing PDF resumes, with LaTeX formatting support.1415MIT
- AlicenseAqualityCmaintenanceEnables creating, editing, and compiling LaTeX resumes directly from Claude using built-in templates, with support for managing multiple resume files and automatic PDF generation.11MIT
- AlicenseAqualityCmaintenanceTailors LaTeX résumés, CVs, and cover letters to job descriptions by injecting truthfully-selected content from a master CV, compiling PDFs, and logging applications.111MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to tailor a resume to any job description by extracting keywords, analyzing gaps and ATS compliance, managing versions, and compiling PDF/LaTeX outputs entirely locally without external API keys.MIT