86 lines
5.2 KiB
Markdown
86 lines
5.2 KiB
Markdown
# HR Candidate Matcher
|
||
|
||
Веб-сервис для сопоставления резюме с требованиями вакансии. Помогает рекрутёрам быстро оценивать кандидатов по прозрачным критериям и готовить вопросы для интервью.
|
||
|
||
## Возможности
|
||
|
||
- **Извлечение требований** — анализ текста вакансии с выделением ключевых навыков, опыта и образования
|
||
- **Редактирование критериев** — настройка обязательности, веса (1–5) и синонимов для поиска
|
||
- **Сопоставление** — таблица соответствий с цитатами из резюме и статусами
|
||
- **Вопросы для интервью** — генерация вопросов по неподтверждённым требованиям
|
||
- **Экспорт** — выгрузка сводки в текстовом файле
|
||
- **Приватность** — данные не покидают браузер, localStorage с явным согласием
|
||
|
||
## Экраны
|
||
|
||
1. **Ввод** — два поля (вакансия и резюме), кнопка «Извлечь требования»
|
||
2. **Критерии** — редактируемый список требований
|
||
3. **Сопоставление** — таблица с цитатами и индикатором покрытия
|
||
4. **Интервью** — сгенерированные вопросы, копирование, экспорт
|
||
|
||
## Запуск
|
||
|
||
Проект работает в браузере без сервера. Откройте `index.html` в любом современном браузере.
|
||
|
||
### Структура файлов
|
||
|
||
```
|
||
index.html — разметка и стили
|
||
aiAdapter.js — демонстрационный AI (детерминированные правила)
|
||
matcher.js — логика сопоставления
|
||
ui.js — управление интерфейсом
|
||
storage.js — работа с localStorage
|
||
app.js — точка входа
|
||
```
|
||
|
||
## Особенности
|
||
|
||
- **Демо-режим AI** — детерминированная логика на словарях и шаблонах (без реальной ML-модели)
|
||
- **Словари навыков** — frontend, backend, database, devops, mobile, qa, soft skills
|
||
- **Распознавание отрицаний** — «без опыта React» не считается подтверждением
|
||
- **Покрытие требований** — сумма весов подтверждённых / сумма весов всех × 100
|
||
- **Клавиатурная навигация** — Escape (назад), Ctrl+Enter (действие), Ctrl+S (сохранить)
|
||
|
||
## Ограничения демо-версии
|
||
|
||
- Нет подключения к реальной AI-модели
|
||
- Анализ только по ключевым словам и шаблонам
|
||
- Данные хранятся только в localStorage браузера
|
||
|
||
## Дизайн-система
|
||
|
||
Проект использует дизайн-систему KT AI:
|
||
- Токены: `var(--kt-ai-*)` для цветов, отступов, шрифтов
|
||
- Компоненты: кнопки, карточки, поля форм
|
||
- Иконки: спрайт Lucide (97 иконок)
|
||
|
||
## Проверки
|
||
|
||
- Пустые тексты — валидация с фокусом на первом ошибочном поле
|
||
- Отсутствие критериев — сообщение с предложением извлечь требования
|
||
- Синонимы — поиск по альтернативным названиям навыков
|
||
- Отрицания — не считаются подтверждением
|
||
- Резюме без раздела навыков — статус «Уточнить» или «Не найдено»
|
||
- Закрытие вкладки — данные сохраняются в localStorage (кроме резюме без явного сохранения)
|
||
|
||
## Горячие клавиши
|
||
|
||
- `Ctrl+Enter` — Извлечь требования / Применить критерии
|
||
- `Ctrl+S` — Сохранить данные
|
||
- `Escape` — Назад к предыдущему экрану
|
||
|
||
## Экспорт
|
||
|
||
Формат: текстовый файл `.txt` с датой экспорта, покрытием требований, результатами сопоставления и вопросами для интервью.
|
||
|
||
## Конфиденциальность
|
||
|
||
- Данные не отправляются на сервер
|
||
- localStorage используется только с явного согласия
|
||
- Кнопка «Очистить всё» удаляет все данные без возможности восстановления
|
||
- Формулировки в интерфейсе нейтральные и уважительные
|
||
|
||
## Лицензия
|
||
|
||
Учебный проект для песочницы Vibe42.
|