Skip to main content
Glama

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.

Структура продукта

Три слабо связанных компонента:

  1. Расширение для Chrome. Определяет, когда на активной вкладке открыто описание вакансии на поддерживаемом сайте (LinkedIn, Greenhouse, Lever, Ashby, Workday, обычный текст). Предлагает действие Generate Tailored Resume. Отправляет описание вакансии (JD) в локальный бэкенд и открывает интерфейс проверки, когда черновик готов.

  2. Локальный бэкенд + веб-приложение. Владеет банком опыта, конвейером адаптации, матрицей доказательств и рендерером LaTeX/PDF. По умолчанию работает на localhost. Поставляется с интерфейсом проверки: сравнение бок о бок (diff) с базовым резюме, ссылки на доказательства для каждого пункта, тепловая карта покрытия ключевыми словами, предупреждения о неподтверждённых утверждениях, одобрение/отклонение/редактирование для каждого пункта.

  3. Адаптеры провайдеров (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.

Карта документации

Файл

Назначение

docs/product-requirements.md

Пользовательские истории, критерии приёмки, не-цели, принципы UX

docs/technical-architecture.md

Схема системы, компоненты, интерфейс адаптера провайдера, валидация LaTeX

docs/data-model.md

Схема банка опыта, ссылки на доказательства, схема артефакта адаптированного резюме

docs/security-and-privacy.md

Модель угроз, обоснование разрешений расширения, хранение ключей, потоки данных

docs/roadmap.md

Поэтапный план разработки от M0 (скелет) до M5 (многопользовательское облако)

docs/adr/001-local-first-provider-agnostic.md

Протокол фундаментального архитектурного решения

docs/example-experience-bank.yaml

Пример банка, полученный только из приватного .private/alan-resume-source.tex мейнтейнера

CONTRIBUTING.md

Принципы разработки, стандарты кодирования, подход к ревью

Структура репозитория (целевая)

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.

  1. Local-first, однопользовательский MVP. Облако и многопользовательский режим — вопросы v2. См. docs/adr/001-local-first-provider-agnostic.md.

  2. Собственная учётная запись провайдера (BYO). Мы не предоставляем LLM как сервис. Пользователь выбирает OpenAI, Anthropic или Ollama, а мы обращаемся к нему с их учётными данными.

  3. LaTeX — источник истины для адаптированного артефакта. PDF — это результат сборки. Базовый шаблон пользователя (templates/resume.template.tex, при необходимости дополняемый приватным файлом, например .private/alan-resume-source.tex) задаёт границы макета.

  4. Python-бэкенд, расширение на TypeScript + веб-интерфейс. Соответствует экосистеме ML/LaTeX на бэкенде и браузерной платформе на фронтенде.

  5. Сначала Chrome. Firefox/Safari могут последовать за ним за счёт совместимости с MV3, как только интерфейс стабилизируется.

  6. Банк принадлежит пользователю. Пользователь может в любой момент экспортировать полный банк в YAML и удалить локальную БД одной командой.

  7. Каждый сгенерированный пункт несёт данные о происхождении (provenance). Ни один пункт не попадает в PDF без хотя бы одной ссылки evidence_id в артефакте адаптированного резюме.

Открытые вопросы

Отслеживаются в docs/roadmap.md#open-questions.

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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