job-resume-agent
job-resume-agent
Система адаптации резюме, основанная на доказательствах. Получив описание вакансии, обнаруженное в браузере, и структурированный банк опыта, собранный пользователем, она создаёт резюме в формате LaTeX/PDF, читаемое ATS, где каждый пункт прослеживается до конкретного доказательства, предоставленного пользователем. Любая формулировка, которую модель вывела, обобщила или перефразировала, наглядно помечается и должна быть одобрена пользователем перед экспортом.
Продукт отказывается выдумывать. Если требуемый навык или достижение не подкреплено доказательствами, система прямо сообщает об этом, а не выдумывает их.
Статус: проверка концепции. Репозиторий включает детерминированный MCP-сервер, модуль привязки доказательств, безопасный рендерер LaTeX, CLI и тесты. В него пока не входят расширение для Chrome и адаптеры внешних LLM-провайдеров.
Быстрый старт
Требуется Python 3.11+.
python -m pip install -e ".[dev]"
resume-agent tailor --bank docs/example-experience-bank.yaml --jd path/to/job-description.txt --json
resume-agent tailor --bank docs/example-experience-bank.yaml --jd path/to/job-description.txt --export --out ./outЧтобы запустить MCP-сервер через stdio:
resume-agent serveДля личного использования задайте RESUME_AGENT_BANK_PATH, указывающий на локальный банк с вашими собственными данными. Храните заполненное резюме и личный банк в каталоге .private/; этот каталог игнорируется Git. Пример банка, включённый в репозиторий, содержит контактные данные-заглушки и безопасен для публикации.
Зачем это нужно
Большинство инструментов «адаптации резюме с помощью ИИ» оптимизируют совпадение ключевых слов и плавность текста в ущерб фактической достоверности. Они без колебаний добавят «руководил командой из 10 человек» или «сократил задержку на 40%», даже если пользователь никогда ничего такого не утверждал. Это карьерный риск для пользователя и проблема доверия для получателя резюме.
Этот проект придерживается противоположной позиции: модель — это поисковик и редактор, работающий с собственными доказательствами пользователя, а не генератор достижений. Адаптация означает отбор, переупорядочивание и переформулирование — но никогда выдумывание. Критерии приёмки, реализующие этот принцип, описаны в docs/product-requirements.md.
Структура продукта
Три слабо связанных компонента:
Расширение для Chrome. Определяет, когда на активной вкладке открыто описание вакансии на поддерживаемом сайте (LinkedIn, Greenhouse, Lever, Ashby, Workday, обычный текст). Предлагает действие Generate Tailored Resume. Отправляет описание вакансии (JD) в локальный бэкенд и открывает интерфейс проверки, когда черновик готов.
Локальный бэкенд + веб-приложение. Владеет банком опыта, конвейером адаптации, матрицей доказательств и рендерером LaTeX/PDF. По умолчанию работает на
localhost. Поставляется с интерфейсом проверки: сравнение бок о бок (diff) с базовым резюме, ссылки на доказательства для каждого пункта, тепловая карта покрытия ключевыми словами, предупреждения о неподтверждённых утверждениях, одобрение/отклонение/редактирование для каждого пункта.Адаптеры провайдеров (BYO account). Пользователь подключает собственную учётную запись OpenAI, Anthropic или локальную (Ollama). Мы не проксируем запросы через наши серверы, а в режиме local-first не храним ключи провайдеров в размещённой БД — см.
docs/security-and-privacy.md.
Публичный эталонный LaTeX-шаблон находится в templates/resume.template.tex и служит визуальным и структурным ориентиром для рендерера. Персональные данные (имя, email, ссылки, телефон, гражданство) объявлены в шаблоне как макросы, чтобы их можно было переопределить приватным оверлеем. Исходник резюме самого мейнтейнера, содержащий реальные PII, находится в .private/alan-resume-source.tex и игнорируется Git — относитесь к нему как к каноническому рабочему примеру того, как выглядит заполненный шаблон, а не как к файлу, который поставляется с репозиторием. Минимальный банк опыта, созданный на основе этого приватного исходника, находится в docs/example-experience-bank.yaml.
Что не входит в задачи (v1)
Никакой помощи в выдумывании. Никаких «предложить пункт, который вы могли бы добавить». Никаких «заполнить правдоподобную метрику».
Никакого размещённого мультитенантного SaaS. MVP работает локально (local-first). Облачная синхронизация отложена (см. дорожную карту).
Никакого автоматического отклика. Мы не отправляем заявки, не пишем рекрутерам и не составляем сопроводительные письма. Это вне рамок проекта.
Никакого скрейпинга закрытых досок вакансий. Расширение читает текущую открытую страницу в собственной сессии браузера пользователя; оно не обходит сайты.
Никакого хранения API-ключей провайдеров на серверной стороне в v1. Ключи хранятся в связке ключей ОС или в локальном хранилище расширения.
Никакого «рейтинга» резюме. Числовые оценки ATS — псевдонаука без участия самой ATS. Мы показываем покрытие ключевыми словами и покрытие доказательствами, а не оценку.
Никакого скрейпинга LinkedIn для наполнения банка опыта. Импорт возможен только вручную или из загруженного пользователем PDF/LaTeX.
Карта документации
Файл | Назначение |
Пользовательские истории, критерии приёмки, не-цели, принципы UX | |
Схема системы, компоненты, интерфейс адаптера провайдера, валидация LaTeX | |
Схема банка опыта, ссылки на доказательства, схема артефакта адаптированного резюме | |
Модель угроз, обоснование разрешений расширения, хранение ключей, потоки данных | |
Поэтапный план разработки от M0 (скелет) до M5 (многопользовательское облако) | |
Протокол фундаментального архитектурного решения | |
Пример банка, полученный только из приватного | |
Принципы разработки, стандарты кодирования, подход к ревью |
Структура репозитория (целевая)
job-resume-agent/
├── templates/
│ └── resume.template.tex # public, PII-free reference LaTeX template
├── .private/ # git-ignored; maintainer's real resume source lives here
├── README.md
├── CONTRIBUTING.md
├── docs/ # (this repo, today)
├── apps/
│ ├── extension/ # Chrome MV3 extension (TS)
│ ├── backend/ # FastAPI (Python) + SQLite
│ └── web/ # React review UI
├── packages/
│ ├── providers/ # provider adapter interface + impls
│ ├── tailoring/ # retrieval, rewrite, evidence-matrix builder
│ ├── latex/ # renderer, validator, PDF pipeline
│ └── schema/ # shared Zod/Pydantic schemas
└── tests/
└── fixtures/ # JD samples, expected evidence matricesВ отслеживаемом дереве сегодня существуют только templates/resume.template.tex, README.md, CONTRIBUTING.md и docs/. Каталог .private/ присутствует в локальной копии мейнтейнера, но игнорируется Git и не поставляется. Остальное — цель фазы M1 (см. дорожную карту).
Зафиксированные допущения
Это разумные допущения, которые данный дизайн принимает без уточнения у пользователя. Изменить их можно, открыв ADR.
Local-first, однопользовательский MVP. Облако и многопользовательский режим — вопросы v2. См.
docs/adr/001-local-first-provider-agnostic.md.Собственная учётная запись провайдера (BYO). Мы не предоставляем LLM как сервис. Пользователь выбирает OpenAI, Anthropic или Ollama, а мы обращаемся к нему с их учётными данными.
LaTeX — источник истины для адаптированного артефакта. PDF — это результат сборки. Базовый шаблон пользователя (
templates/resume.template.tex, при необходимости дополняемый приватным файлом, например.private/alan-resume-source.tex) задаёт границы макета.Python-бэкенд, расширение на TypeScript + веб-интерфейс. Соответствует экосистеме ML/LaTeX на бэкенде и браузерной платформе на фронтенде.
Сначала Chrome. Firefox/Safari могут последовать за ним за счёт совместимости с MV3, как только интерфейс стабилизируется.
Банк принадлежит пользователю. Пользователь может в любой момент экспортировать полный банк в YAML и удалить локальную БД одной командой.
Каждый сгенерированный пункт несёт данные о происхождении (provenance). Ни один пункт не попадает в PDF без хотя бы одной ссылки
evidence_idв артефакте адаптированного резюме.
Открытые вопросы
Отслеживаются в docs/roadmap.md#open-questions.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Tailor resumes, generate cover letters, render CVs as PDF, and browse 22+ templates.
Turn a description into a shareable, editable PDF — invoices, certificates, reports, resumes.
A personal RAG database you build from chat, so AI creates work that sounds like you.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bao-and-Banh-Mi/job-resume-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server