Add resume pipeline and demo

This commit is contained in:
apuc committed 2026-10-28 22:48:56 +03:00
commit e8d65963a0
4 files changed
+117

No files matched your search

+10
View File
@@ -0,0 +1,10 @@
# Keep this repository limited to the reusable pipeline and synthetic demo.
/*
!/.gitignore
!/ПАЙПЛАЙН_ПОДГОТОВКИ_РЕЗЮМЕ.md
!/formatted/
# No real candidate resumes, source files, images, or other formatted PDFs.
/formatted/*
!/formatted/Цветовая_легенда.md
!/formatted/Резюме_Иванов_Алексей_Тестовый_Фулстек.pdf
@@ -0,0 +1,17 @@
# Цветовая легенда резюме
Цвет левой колонки показывает целевую вакансию. Для читаемости выбраны светлые пастельные оттенки; сам цвет не влияет на содержание резюме.
| № | Вакансия | Цвет | Примеры / применение |
|---:|---|---|---|
| 29 | Специалист по внедрению ИИ | `#DCEFEA` — светлая бирюза | Самир Шупляков |
| 30 | Специалист по работе с ИИ | `#EAE4F4` — светлая лаванда | Самир Шупляков; Денис Романченко* |
| 31 | Фулстек-разработчик | `#FFF2CC` — цвет резюме Нины Ковалёвой | Ковалёва Нина, Косухин Максим, Солоницын Михаил (base); Евгений Гострик (целевая позиция) |
| 32 | Data-инженер | `#E2EDDB` — светло-зелёный | Шупляков Самир; Солоницын Леонид (base) |
| 33 | Специалист по информационной безопасности | `#F3DEDE` — светло-розовый | Пока нет резюме кандидата в основной папке |
| 34 | Проектный менеджер | `#EFEFFF` — цвет резюме Дарьи Садах | Садах Дарья (base) |
| 35 | ИИ контент-креатор | `#F6E1D2` — светло-персиковый | Пока нет резюме кандидата в основной папке |
`*` Резюме Дениса Романченко озаглавлено «ИИ-инженер». Отнесение к вакансии № 30 — ближайшее соответствие по названию и содержанию, а не подтверждённая целевая позиция. В резюме Евгения Гострика теперь указана целевая позиция «Фулстек-разработчик» и применён цвет № 31; описанный опыт и навыки сохранены без добавления неподтверждённых технологий.
Исходные PDF кандидатов в основной папке оставлены без изменений. Цветные версии с именами по шаблону `Резюме_Фамилия_Имя.pdf` находятся в `formatted/`; цветовые образцы из `base` также скопированы туда с такими именами.
@@ -0,0 +1,90 @@
# Пайплайн подготовки резюме
Инструкция для передачи ассистенту. Цель — приводить резюме к согласованному виду, сопоставлять цвет колонки с вакансией и не терять факты или исходные документы.
## 1. Структура папок и имена файлов
- `base/` — визуальные эталоны. Использовать для сравнения макета и палитры, не брать из них личные сведения кандидатов.
- Основная папка — исходные резюме. Считать их оригиналами и не перезаписывать.
- `formatted/` — итоговые файлы для просмотра и передачи. PDF называть `Резюме_Фамилия_Имя.pdf`; для нескольких версий одного человека добавить позицию, например `Резюме_Фамилия_Имя_Data_Engineer.pdf`.
- `formatted/Цветовая_легенда.md` — актуальное соответствие вакансий цветам.
- `formatted/Резюме_Иванов_Алексей_Тестовый_Фулстек.pdf` — пример оформления на полностью вымышленных данных.
Если у кандидата несколько целевых позиций, формировать отдельную версию под каждую, с подходящим названием и цветом. Не смешивать несколько вакансий в одном заголовке.
## 2. Сначала установить целевую вакансию
Перед оформлением прочитать предоставленный список вакансий и сопоставить заголовок исходного резюме с вакансией. Текущая палитра:
| № | Вакансия | Цвет левой колонки |
|---:|---|---|
| 29 | Специалист по внедрению ИИ | `#DCEFEA` — светлая бирюза |
| 30 | Специалист по работе с ИИ | `#EAE4F4` — светлая лаванда |
| 31 | Фулстек-разработчик | `#FFF2CC` — цвет резюме Нины Ковалёвой |
| 32 | Data-инженер | `#E2EDDB` — светло-зелёный |
| 33 | Специалист по информационной безопасности | `#F3DEDE` — светло-розовый |
| 34 | Проектный менеджер | `#EFEFFF` — цвет резюме Дарьи Садах |
| 35 | ИИ контент-креатор | `#F6E1D2` — светло-персиковый |
Для 31 и 34 брать именно оттенки соответствующих резюме-эталонов. Если должность кандидата не совпадает с вакансией однозначно, спросить пользователя, а не присваивать категорию как установленный факт. Резюме Евгения Гострика, например, оформлено как отклик на Fullstack, но фактический опыт QA оставлен QA-опытом.
## 3. Обработка содержания
1. Извлечь из исходника имя, контакты, навыки, опыт, даты, образование, языки, проекты и дополнительную информацию.
2. Сверить важные детали с исходным PDF, особенно даты, названия организаций, контакты и уровни образования.
3. Перенести факты в структуру эталона: имя/целевая позиция; контакты и краткий профиль; навыки и языки; опыт; образование; проекты/курсы/дополнительная информация, если они есть.
4. Разрешается исправлять явные опечатки и унифицировать оформление, но не менять смысл и не дописывать неуказанные технологии, обязанности, метрики, даты или достижения.
5. Если целевая позиция отличается от предыдущей работы кандидата, обозначать её как «целевая позиция»/«желаемая должность», а не представлять как подтверждённую квалификацию.
6. Не заполнять пробелы догадками. При неоднозначности задавать один конкретный вопрос пользователю.
## 4. Оформление
- Держать стиль эталонов: спокойная двухколоночная композиция, светлая цветная левая колонка, белая основная область, чёткие заголовки и читаемый текст.
- Цвет относится к вакансии, а не к человеку. Все версии одной позиции используют один оттенок.
- Фото использовать только если оно есть в исходнике и предназначено для этого резюме. Не подставлять случайные фотографии.
- Сохранять контакты и личные сведения только в итоговом резюме, не копировать их в инструкции, скрипты, логи и тестовые файлы.
- Если исходник содержит больше материала, чем помещается на страницу, лучше использовать дополнительные страницы, чем делать текст нечитаемым или выбрасывать важные факты.
## 5. Проверка перед передачей
Для каждого PDF:
- открыть и визуально просмотреть все страницы;
- проверить имя файла по шаблону `Резюме_Фамилия_Имя.pdf` и цвет по вакансии;
- убедиться, что фото и текст не перекрыты, строки не обрезаны, символы кириллицы отображаются корректно;
- проверить извлечением текста, что имя, должность, даты опыта и образование присутствуют;
- сравнить содержание с исходником: форматирование может измениться, факты — нет;
- проверить, что в `formatted/` нет временных генераторов, черновиков и дублирующих устаревших версий.
Тестовый образец `formatted/Резюме_Иванов_Алексей_Тестовый_Фулстек.pdf` содержит только вымышленные данные и предназначен для проверки процесса, не для отклика на работу.
## 6. Безопасность и Git
В резюме могут быть телефоны, электронная почта, даты рождения, адреса, фотографии и сведения о третьих лицах. До отправки в удалённый Git:
1. Уточнить у владельца, что целевой репозиторий приватный и какие именно резюме разрешено туда загружать. Даже приватный Git — внешняя копия персональных данных.
2. Исключить из коммита файлы, которые не нужны: оригиналы, тестовые или рабочие черновики, фото вне резюме, временные скрипты и локальные настройки.
3. Никогда не добавлять пароли, токены, cookies, локальные конфиги или логи. Пароль, отправленный в чат, считать раскрытым и заменить.
4. Для HTTPS использовать Git Credential Manager/персональный токен в защищённом хранилище; не передавать секрет в URL remote, команде, `.git/config`, скрипте или сообщении ассистенту.
5. Перед и после коммита проверить `git status`, staged diff и remote. Добавлять только явно разрешённые файлы, не применять `git add .` без проверки.
Пример безопасной последовательности после отдельного подтверждения на загрузку:
```powershell
git status --short --branch
git remote -v
git diff --stat
git add formatted/Резюме_Фамилия_Имя.pdf formatted/Цветовая_легенда.md ПАЙПЛАЙН_ПОДГОТОВКИ_РЕЗЮМЕ.md
git diff --cached --stat
git diff --cached --name-only
# Просмотреть staged diff и проверить, что в списке нет лишних PDF и секретов.
git commit -m "Add formatted resume"
git push -u origin <branch>
git status --short --branch
```
Если папка ещё не Git-репозиторий или remote пустой/имеет неизвестную историю, сначала проверить remote и согласовать ветку. Не инициализировать, не перезаписывать историю и не делать force-push без явного согласования.
## 7. Короткое задание для следующего ассистента
> Прочитай `ПАЙПЛАЙН_ПОДГОТОВКИ_РЕЗЮМЕ.md` и `formatted/Цветовая_легенда.md`. Для каждого исходного резюме определи целевую вакансию, сохрани исходник, подготовь отдельный PDF в стиле `base/` с именем `formatted/Резюме_Фамилия_Имя.pdf` и цветом вакансии. Не выдумывай данные и не копируй персональные сведения из эталонов. При неоднозначной должности сначала спроси меня. Проверь каждый PDF визуально и по тексту. Ничего не загружай в Git и не используй секреты, пока я отдельно не подтвержу объём публикации и безопасную авторизацию.