overleaf-resume
Overleaf Resume
Редактируйте и компилируйте свои резюме локально, а не на сайте Overleaf,
с помощью MCP-сервера, который синхронизирует исходные файлы с Overleaf при необходимости. Работает
с любым количеством проектов Overleaf бок о бок — каждый инструмент синхронизации принимает явный
project_id, так что ничего не привязано к одному «единственному» проекту.
Создано для бесплатных аккаунтов Overleaf (без доступа к Git/API). Если ваш
аккаунт имеет интеграцию с Git (платный план), просто git clone ваш проект
— этот инструмент вам не нужен.
Как это работает
Ежедневное редактирование: после того как проект загружен (см. ниже), редактируйте его
.tex-файл напрямую вprojects/<name>/, затем компилируйте локально с помощью Tectonic — без обращения к Overleaf:tools/tectonic.exe projects/<name>/<main file>.texЭто создаёт PDF-файл рядом с ним. (
tools/tectonic.exe— это автономный бинарник, уже настроенный в этом репозитории — он в gitignore, так как это большой загруженный бинарник, а не исходный код.)Синхронизация с Overleaf: поскольку это бесплатный аккаунт Overleaf (без доступа к Git/API), MCP-сервер (
overleaf_mcp/) управляет реальным, авторизованным сеансом Chromium с помощью Playwright, чтобы загружать исходники проекта и отправлять правки обратно в его онлайн-редактор — те же действия, которые вы бы выполняли вручную в браузере.
Related MCP server: LaTeX Resume MCP
Структура проекта
Каждый загруженный проект Overleaf попадает в свою собственную подпапку, поэтому несколько резюме могут сосуществовать без конфликтов:
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/ находится в gitignore — там хранится ваше реальное содержимое резюме (загруженное
из Overleaf), поэтому оно остаётся локальным и никогда не попадает в коммиты.
Одноразовая настройка
Шаги 1–2 уже выполнены в этом репозитории (в .venv/ установлены зависимости
и загружен браузер Chromium для Playwright; tools/tectonic.exe
готов к использованию). Они перечислены здесь на случай, если вам нужно повторить их на
другой машине или после чистой проверки.
Создайте виртуальное окружение и установите зависимости:
python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt playwright install chromiumПолучите Tectonic:
winget/chocoмогут требовать права администратора, которые не всегда доступны. Надёжный вариант без администратора — скачать бинарник для Windows напрямую и поместить его вtools/: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 existsПроверьте с помощью
tools/tectonic.exe --version.Войдите в Overleaf один раз, чтобы MCP-сервер мог повторно использовать сеанс:
.venv/Scripts/python.exe scripts/overleaf_login.pyОткроется окно браузера со страницей входа в Overleaf. Войдите с помощью email + пароля, а не «Войти через Google» — Google блокирует свою форму входа в любом автоматизированном браузере, поэтому для аккаунтов, использующих только Google, сначала нужно установить пароль в Overleaf (Account Settings). Затем сеанс сохраняется в
.auth/storage_state.json(в gitignore — никогда не коммитьте и не делитесь им). Повторно запускайте этот скрипт, когдаoverleaf_login_statusсообщает, что сеанс истёк.В этом репозитории
.mcp.jsonавтоматически регистрирует сервер в Claude Code. Перезапустите Claude Code (или выполните/mcp), чтобы он подхватил серверoverleaf-resume.Вызовите
overleaf_list_projects, чтобы увидеть все ваши проекты Overleaf и их идентификаторы, затемoverleaf_pull(project_id)для тех, с которыми вы хотите работать. Файлы попадают вprojects/<name>/.
Инструменты MCP
overleaf_login_status— проверяет, действителен ли сохранённый сеанс.overleaf_list_projects— список всех проектов Overleaf (имя + id).overleaf_pull(project_id, local_dir?)— загружает исходники этого проекта вprojects/<name>/(или вlocal_dir, если указан), создавая резервные копии любых существующих файлов.tex/.cls/.sty/.bibв.backups/перед этим.overleaf_push(project_id, file_path)— отправляет текущее содержимое локального файла обратно в онлайн-редактор этого проекта Overleaf.file_pathуказывается относительно корня репозитория, напримерprojects/<your-project-name>/resume.tex.
project_id всегда обязателен — нет единого проекта по умолчанию, поэтому
это работает одинаково, есть ли у вас одно резюме или несколько. Используйте
overleaf_list_projects, когда нужно найти нужный.
Устранение неполадок локальной компиляции
Overleaf по умолчанию компилирует с помощью pdfLaTeX; Tectonic использует движок на основе XeTeX. Две проблемы, которые это выявило на популярных шаблонах в стиле "Jake's Resume", на случай, если вы тоже с ними столкнётесь:
\pdfglyphtounicode/\input{glyphtounicode}/\pdfgentounicode=1— это примитивы только для pdfTeX. Заключите их в условия, чтобы оба движка работали:\usepackage{iftex} \ifPDFTeX \input{glyphtounicode} \fi ... \ifPDFTeX \pdfgentounicode=1 \fiПары
\begin{itemize}...\end{itemize}изenumitem(через макросы\resumeSubHeadingListStart/Endэтого шаблона) должны оставаться сбалансированными даже в закомментированных секциях — случайный, несопоставленный\end{itemize}, оставшийся после комментирования блока, приводит к загадочнойUndefined control sequenceглубоко внутри внутренностейenumitem(\enit@enditemize). Это не различие Tectonic/Overleaf — это вызовет ошибку и на собственном компиляторе Overleaf, если посмотреть на количество ошибок.
Предостережения
Этот инструмент автоматизирует реальный веб-интерфейс Overleaf с вашим собственным авторизованным сеансом — для бесплатных проектов нет публичного API. Он может сломаться, если Overleaf изменит свой интерфейс, а сохранённый сеанс иногда истекает (повторно запустите
scripts/overleaf_login.py).Первая компиляция
tectonicтребует доступа к сети для загрузки пакетов LaTeX; последующие компиляции кэшируются и работают офлайн..auth/storage_state.jsonсодержит живые куки сеанса — держите его вне системы контроля версий.
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