Skip to content

references: добавить проекты по работе с резюме (генерация, хранение, адаптация под вакансию) #671

Closed

Description

@axisrow

Контекст

Добавить в проект новую группу reference-проектов — по работе с резюме (генерация, хранение, адаптация под вакансию). Это отдельный трек от уже утверждённых трёх references по автооткликам (#590), у которых другая предметная область.

Мотив: цель пользователя — максимизация дохода, и качество резюме напрямую на неё влияет. Сейчас в hhru резюме — внешний артефакт на hh.ru; мы его только поднимаем (bump) и читаем. Идея адаптации резюме под конкретную вакансию, машинно-читаемого хранения и предсказуемой генерации в проекте не проработана.

Кандидаты по задачам

Задача Проекты
Проверить и адаптировать резюме под конкретную вакансию Resume Matcher
Собрать резюме через веб-интерфейс Reactive Resume, OpenResume
Получить предсказуемый машинно-читаемый PDF RenderCV, sb2nov/resume
Хранить резюме как структурированные данные JSON Resume CLI, YAMLResume
Нужен готовый минималистичный LaTeX-шаблон McDowell CV

Метрики (снято 2026-08-26 через GitHub API)

Отсортировано по звёздам.

Проект ★ Коммиты Контриб. Open PR Open issues Язык Лицензия Последний push
AmruthPillai/Reactive-Resume 41741 5754 221 6 112 TypeScript MIT 2026-08-25
srbhr/Resume-Matcher 28247 1456 83 44 22 TypeScript Apache-2.0 2026-08-11
rendercv/rendercv 17431 1961 59 33 40 Python MIT 2026-05-01
xitanggg/open-resume 8862 36 6 46 98 TypeScript AGPL-3.0 2024-10-29
sb2nov/resume 6933 51 12 14 21 TeX MIT 2026-05-17
jsonresume/resume-cli 4719 596 61 0 6 JavaScript MIT архивирован
dnl-blkv/mcdowell-cv 2704 38 3 4 14 TeX MIT 2024-05-10
yamlresume/yamlresume 1503 454 18 8 20 TypeScript MIT 2026-08-26

Что сразу видно из метрик

Звёзды здесь плохой одиночный критерий — их надо читать вместе с активностью и лицензией:

  • jsonresume/resume-cli архивирован. 4.7k звёзд, но репозиторий заморожен. Сам формат JSON Resume при этом остаётся живым стандартом — как reference стоит рассматривать спецификацию формата, не этот CLI.
  • open-resume — AGPL-3.0. Несовместима с портированием кода в наш проект; допустим только clean-room перенос поведения. Плюс последний push — октябрь 2024, 36 коммитов, 6 контрибьюторов, 46 открытых PR при 98 issues: соотношение говорит о заброшенности.
  • mcdowell-cv — 38 коммитов, 3 контрибьютора, push май 2024. Это по сути готовый шаблон, а не развивающийся проект. Для роли «взять LaTeX-шаблон» этого достаточно, но как источник архитектурных решений он бесполезен.
  • rendercv — единственный на Python, что важно для нашей кодовой базы: потенциальное переиспользование, а не только идей. 1961 коммит, 59 контрибьюторов, MIT.
  • Reactive-Resume — самый живой (5754 коммита, 221 контрибьютор, push вчера), но это полноценное веб-приложение, а мы CLI-first. Ценность — в модели данных и наборе полей, не в архитектуре.
  • Resume-Matcher ближе всего к реально нужной нам задаче (адаптация резюме под вакансию), Apache-2.0, активен. 44 открытых PR при 22 issues — стоит проверить, не разъезжается ли проект.

Что сделать

Это issue на фиксацию references, не на портирование. Дальнейшая работа — отдельным research-issue по образцу #590.

  • Зафиксировать ревизии (commit SHA) выбранных проектов, чтобы research был воспроизводим.
  • Отсеять кандидатов, не проходящих по лицензии/активности: open-resume (AGPL + заброшен), resume-cli (архивирован — брать спецификацию формата вместо кода).
  • Определить, какая из задач таблицы вообще релевантна hhru. Проект CLI-first и работает с резюме, которое живёт на hh.ru, — веб-конструктор резюме и генерация PDF могут оказаться вне скоупа целиком. Это главный вопрос, и ответить на него надо до любого research по коду.
  • Для прошедших фильтр — research по исходникам (не по README), с привязкой к file:line.

Критерии приёмки

  • Список references зафиксирован с ревизиями и лицензиями.
  • По каждому отсеянному явно записана причина отсева.
  • Есть ответ на вопрос, какие задачи из таблицы релевантны CLI-инструменту для hh.ru, а какие нет.
  • Ни одна рекомендация не основана только на README или числе звёзд.

Activity

  1. axisrow commented on Aug 29, 2026

    @axisrow
    OwnerAuthor

    Отложено (2026-08-29)

    Решение пользователя: сейчас не приоритет. Воркера не спавнить, пока не будет явной просьбы.

    Что изменилось с момента заведения issue

    Тело писалось 2026-08-26 с посылкой «идея адаптации резюме под вакансию в проекте не проработана». За три дня эпик #750 закрыл три из пяти задач таблицы своими силами, без портирования:

    Кластеры при этом сняты с живой выдачи hh.ru (#752, 432 вакансии), а не заимствованы у reference-проекта.

    Что осталось бы делать при возврате к задаче

    Главный вопрос issue («какие задачи таблицы релевантны CLI-инструменту, работающему с резюме на hh.ru») теперь имеет предварительный ответ: релевантен один кандидат — Resume-Matcher (Apache-2.0, активен), это сверка резюме с вакансией. Остальные семь отсеиваются:

    • веб-конструкторы (Reactive-Resume, OpenResume) и генерация PDF (RenderCV, sb2nov, McDowell) — про резюме как локальный артефакт, у нас оно живёт в чужом UI и правится по DOM;
    • open-resume — AGPL-3.0 + заброшен (push 2024-10);
    • resume-cli — архивирован (брать спецификацию формата, не код);
    • JSON Resume / YAMLResume — задачу структурированного хранения уже закрыл feat(config): структурированные факты кандидата для адаптации резюме #751.

    То есть при возврате разумный скоуп — узкий research по одному Resume-Matcher по образцу #590, а не аудит восьми проектов.

    Метрики в теле снимались 2026-08-26 и к моменту возврата устареют — пересчитать.

  2. axisrow commented on Aug 30, 2026

    @axisrow
    OwnerAuthor

    Ресерч завершён (2026-08-30), README обновлён

    PR: (создаётся, см. ниже). Метрики в теле issue пересчитывать не стал —
    скоуп уже сузился комментарием от 2026-08-29 до одного кандидата
    (Resume-Matcher), пересчёт восьми проектов был бы избыточен для узкого
    research.

    Разбор по коду (не по README)

    srbhr/Resume-Matcher — единственный прошедший фильтр. Ревизия
    116f9cc3b00e1ac91734a6c2679bf41ea64a0edc (main, push 2026-08-11),
    Apache-2.0, Python (FastAPI) backend + TypeScript frontend.

    Прочитан код apps/backend/app/services/:

    • ats.py — чисто локальный (без LLM) скоринг совпадения резюме/вакансии:
      keyword_match (0.55) + skills_coverage (0.25) + section_completeness (0.20).
    • improver.py::_ALLOWED_PATH_PATTERNS / _BLOCKED_FIELD_NAMES — LLM
      правит резюме под вакансию только через regex-whitelist путей
      (summary, description-поля, списки skills/languages/certs); поля вроде
      company/institution/title/years в blocklist — LLM физически не может их
      тронуть.
    • refiner.py::validate_master_alignment — постфактум-проверка: любой
      навык/сертификат/работодатель в адаптированной версии, которого нет в
      исходном («мастер») резюме, репортится как fabricated_* critical-нарушение.

    Это предметный аналог нашего входного гейта в questionnaires/
    (STRICT_CLUSTERS + templates.is_compliance_text, см. CLAUDE.md) —
    только на другом конце: не gate до генерации, а verify после. Полезно
    как референс для будущей задачи «адаптация резюме под вакансию», если она
    появится отдельным issue.

    Отсеяно (причины зафиксированы в README)

    • Reactive-Resume, OpenResume — веб-конструкторы резюме с нуля, вне
      скоупа (наше резюме живёт на hh.ru, правится по DOM). OpenResume
      дополнительно AGPL-3.0 (портирование кода закрыто) + заброшен (push 2024-10).
    • RenderCV, sb2nov/resume, McDowell CV — генерация локального PDF/LaTeX,
      вне скоупа по той же причине (наш артефакт — не файл).
    • jsonresume/resume-cli — архивирован, брать нечего кодово.
    • YAMLResume — задача структурированного хранения резюме уже закрыта
      внутри проекта (CandidateFacts, feat(config): структурированные факты кандидата для адаптации резюме #751), без заимствования.

    Ответ на главный вопрос issue

    Из восьми задач таблицы кандидатов CLI-инструменту для hh.ru релевантна
    ровно одна — адаптация резюме под вакансию (Resume-Matcher). Веб-
    конструктор, генерация PDF и отдельное JSON/YAML-хранение резюме вне
    скоупа: у нас резюме — внешний артефакт на hh.ru, а не локальный файл.

    Правка README: новая подгруппа «Адаптация и хранение резюме» в разделе
    «Похожие проекты» (после «Поднятие резюме»).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions