Career Quest
Employee-first MVP в стиле мобильного приложения Halyk: карьерная лестница, персональные рекомендации курсов и заданий по навыковым разрывам, Coins…
О проекте
Команда: nazhmdt
Кейс HackAlem.ai: Менеджмент — Halyk Bank · кейс 1
Стадия: Рабочий MVP
Задача кейса: «Career Quest»: AI-навигатор, связывающий навыки сотрудника с шагами развития
Суть
Employee-first MVP в стиле мобильного приложения Halyk: карьерная лестница, персональные рекомендации курсов и заданий по навыковым разрывам, Coins и достижения, AI-помощник по развитию и отдельная HR-панель.
Как устроено
Синтетический датасет (200 профилей, 40 активностей, 60 навыков, 2 743 записи истории) загружается и валидируется; движок recommendations.py определяет цель, считает разрывы навыков, отсекает обязательные и уже пройденные активности и ранжирует рекомендации с видимыми причинами. AI-коуч в разделе «Развитие» ходит в OpenAI Responses API через серверный /api/coach, без ключа отвечает локальными подсказками. Отдельный HR-сервер показывает сводку рисков и позволяет импортировать данные.
Ключевые решения
- skill gap analysis
- rule-based ranking
- gamification (Coins)
- offline fallback coach
Особенности
Без внешних зависимостей (только стандартная библиотека Python), есть задеплоенная демо-версия и сборка в один автономный HTML-файл; HR-контур вынесен в отдельный процесс, чтобы сотрудник видел только свой профиль.
Стек
Python stdlib http.server · HTML/CSS/JavaScript · OpenAI Responses API · unittest
Модели
gpt-4o-mini
Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-7f3075b1-nazhmdt.
README
README.mdhack-7f3075b1-nazhmdt
Репозиторий команды HackAlem AI для участника nazhmdt.
Выбран кейс 1: Career Quest — AI-навигатор развития сотрудника. Employee-first MVP с закрытым профилем, карьерной лестницей, заданиями, Coins и отдельным HR-контуром.
1. Название проекта
Рабочее название решения — Career Quest.
2. Краткое описание
Career Quest превращает развитие сотрудника в понятный маршрут: личный профиль → карьерная лестница → персональные задания и курсы → Coins и достижения → следующий уровень. Сотрудник видит только свой кабинет; HR получает отдельный контур для анализа индивидуальных и командных рисков.
3. Что реализовано
Реализованы демо-вход по коду сотрудника, личный кабинет в стиле мобильного приложения Halyk, карьерная лестница, прогресс, Coins, достижения, персональные рекомендации и выполнение активностей. В разделе «Развитие» добавлен AI-помощник: он объясняет интерфейс, помогает выбрать первый шаг и отвечает на вопросы о развитии. HR-сводка сохранена отдельным API-контуром и не показывается сотруднику в основном интерфейсе.
4. Как работает решение
Сценарий сотрудника: ввести код → открыть личный кабинет → увидеть текущую роль и следующий уровень → перейти в «Развитие» → задать вопрос AI-помощнику или выбрать рекомендованный курс/задание → выполнить его → получить Coins и обновлённый прогресс. Рекомендации строятся по навыкам, истории и карьерной цели, а причины видны сотруднику. Если ключ OpenAI не настроен, помощник использует локальные демо-ответы, поэтому основной сценарий всегда доступен жюри.
5. Технологии
Для ведения проекта используются Git, GitHub и AI-агент Codex. MVP написан на Python без внешних зависимостей: стандартный HTTP-сервер, HTML/CSS/JavaScript и синтетический датасет. AI-модель подключается опционально через OpenAI Responses API; рекомендации и локальный fallback работают детерминированно.
6. Архитектура проекта
В репозитории находятся:
README.md— описание текущего состояния проекта..gitignore— исключения для локальных секретов и генерируемых файлов.app/data_loader.py— загрузка и проверка JSON/CSV.app/recommendations.py— цели, gaps, фильтры и ranking рекомендаций.data/career_quest_dataset/— синтетический стартовый датасет.app/service.py— состояние сценария сотрудника и HR-сводка.app/server.py— локальный HTTP API и раздача интерфейса.app/static/— employee-first интерфейс с входом, карьерным маршрутом, Coins, заданиями, настройками и AI-помощником.scripts/build_static.py— сборка автономной демонстрационной версии для публикации.scripts/build_single_file.py— сборка файлаcareer-quest-standalone.htmlдля простого статического хостинга.tests/— проверки загрузки, recommendation engine и сценария выполнения активности.scripts/demo_recommendations.py— воспроизводимый пример для трёх профилей.hr_dashboard/— отдельный HR-сайт и сервер; employee-сайт остаётся без изменений.
Подробный анализ кейса находится в анализе кейса.
7. Установка и запуск
Для получения исходников необходимы Git и доступ к приватному репозиторию команды:
git clone https://github.com/BAITC-Hacks/hack-7f3075b1-nazhmdt.git
cd hack-7f3075b1-nazhmdt
Внешние зависимости для текущего MVP не нужны. Из корня репозитория выполните:
python3 -m unittest discover -s tests -v
python3 scripts/demo_recommendations.py
python3 -m app.server
После запуска откройте http://127.0.0.1:8000.
Для другого интерфейса/порта: python3 -m app.server --host 0.0.0.0 --port 8000. Адрес 127.0.0.1 доступен только пока процесс сервера запущен.
API-ключи нельзя добавлять в репозиторий.
AI-помощник и API-ключи
Для демонстрации ключ не нужен: без него чат отвечает локальными подсказками. Для реального ответа OpenAI добавьте ключ только в окружение локального сервера:
export OPENAI_API_KEY="ваш_ключ_openai"
python3 -m app.server
Модель можно заменить без изменения кода:
export OPENAI_MODEL="gpt-4o-mini"
Ключ используется только сервером в endpoint /api/coach, не попадает в JavaScript и не должен храниться в .env, GitHub или в HTML-файле. На хостинге ключ добавляется в защищённые runtime environment variables, если хостинг поддерживает серверные переменные. При размещении одного статического HTML-файла ключ добавлять нельзя — используется демо-режим.
NVIDIA API для текущего MVP не обязателен. Его можно подключить позже для отдельной модели, но ключ также должен храниться только в серверных переменных.
8. Как проверить решение
Проверочный сценарий использует профили E0001, E0002 и E0028. Тесты проверяют количество и связи данных, выбор цели, расчёт gaps, отсутствие обязательных и уже завершённых активностей в рекомендациях, а также сценарий просмотра профиля и выполнения активности.
Быстрая проверка жюри без API-ключа
API-ключ жюри не нужен: основной сценарий и локальный fallback AI-агента работают автономно.
git clone https://github.com/BAITC-Hacks/hack-7f3075b1-nazhmdt.git
cd hack-7f3075b1-nazhmdt
python3 -m app.server
Откройте http://127.0.0.1:8000/ и войдите кодом E0002. Затем проверьте:
- Главная — новости компании и баланс Coins.
- Развитие — персональные задания, курсы и тесты.
- AI-агент — нажмите «С чего начать развитие?» или задайте свой вопрос.
- Курс/тест — откройте демо-карточку и завершите сценарий.
- Coins — убедитесь, что награда добавилась в баланс.
- Профиль — проверьте настройки языка, темы и уведомлений.
Для проверки изолированных профилей можно выйти и войти кодом E0001 или E0028: сотрудник видит только собственный профиль.
Проверка AI-ответа через OpenAI
Для настоящего ответа модели ключ задаётся в окружении компьютера, где запущен сервер:
export OPENAI_API_KEY="ключ_жюри"
export OPENAI_MODEL="gpt-4o-mini"
python3 -m app.server
Ключ не нужен для оценки MVP и не должен добавляться в GitHub. Endpoint /api/coach использует его только на сервере. Если ключ не задан или временно недоступен, интерфейс автоматически возвращается к контекстному демо-ответу.
Полный сценарий проверки вынесен в docs/jury-check.md.
Отдельная HR-панель запускается отдельным процессом рядом с employee-сайтом. Сначала в одном терминале запустите основной сервер, затем во втором:
python3 -m hr_dashboard.server
Она открывается на http://127.0.0.1:8010/, использует код HR-DEMO-2026 и обновляет сводку каждые 15 секунд. Клик по сотруднику открывает подробную статистику: прогресс, карьерную цель, Coins, навыковые разрывы, рекомендации и последнюю активность. В HR-панели также можно загрузить дополнительные employees.json и activity_history.csv; employee-сайт при этом не изменяется. Подробности — в docs/hr-dashboard.md.
9. Данные и интеграции
В репозитории используется синтетический датасет Career Quest: 200 профилей, 40 активностей, 60 навыков и 2 743 записи истории. Опциональный AI-помощник использует OpenAI Responses API через серверный endpoint /api/coach; внешний ключ не передаётся в браузер. HR и банковские интеграции пока не подключены.
10. Ограничения
- LLM-слой подключается опционально; без ключа используется локальный fallback, а рекомендации формируются детерминированным ядром.
- Вход по коду и Coins работают в демонстрационном режиме; постоянная БД и интеграции с HR/банковскими системами не подключены.
- Состояние выполнения активности хранится в памяти процесса и сбрасывается после перезапуска.
11. Развёрнутая версия
Открыть демонстрацию Career Quest
12. Один файл для самостоятельного хостинга
После сборки проекта выполните:
python3 scripts/build_static.py
python3 scripts/build_single_file.py
Готовый career-quest-standalone.html содержит интерфейс, стили, JavaScript и демо-данные внутри одного файла. Файл собирается локально и намеренно не хранится в GitHub, чтобы оставить тебе личную версию для проверки. Его можно загрузить на статический хостинг. В таком режиме AI-помощник работает в демо-режиме; для OpenAI нужен серверный endpoint и защищённая переменная OPENAI_API_KEY.
Авторы коммитов
История коммитов
- 2026-09-23 17:48docs: complete jury HR walkthroughnzhumadil
- 2026-09-23 17:46feat: add HR dataset importnzhumadil
- 2026-09-23 17:41feat: add employee detail view to HR dashboardnzhumadil
- 2026-09-23 17:37fix: make HR dashboard resilientnzhumadil
- 2026-09-23 17:34fix: sync HR dashboard with employee servernzhumadil
- 2026-09-23 17:33feat: add separate HR dashboardnzhumadil
- 2026-09-23 17:25docs: add jury verification guidenzhumadil
- 2026-09-23 17:21fix: parse OpenAI agent responsesnzhumadil
Все коммиты (34)
- 2026-09-23 17:15docs: add safe API environment templatenzhumadil
- 2026-09-23 17:15fix: make standalone coach offline safenzhumadil
- 2026-09-23 17:11feat: make development coach agenticnzhumadil
- 2026-09-23 17:02feat: add AI development coachnzhumadil
- 2026-09-23 16:54fix: refresh localized asset bundlenzhumadil
- 2026-09-23 16:52fix: translate complete employee experiencenzhumadil
- 2026-09-23 16:48fix: normalize all language labels across navigation and profilenzhumadil
- 2026-09-23 16:43fix: bust browser cache for updated interfacenzhumadil
- 2026-09-23 16:40fix: make settings actionable and improve interface iconsnzhumadil
- 2026-09-23 16:31fix: translate demo content across all supported languagesnzhumadil
- 2026-09-23 16:28feat: add multilingual settings and notification centernzhumadil
- 2026-09-23 16:18fix: make profile settings actions demonstrablenzhumadil
- 2026-09-23 16:16feat: add news, course details and account settingsnzhumadil
- 2026-09-23 16:03feat: make employee navigation and gamification flows interactivenzhumadil
- 2026-09-23 15:53docs: align README with employee-first productnzhumadil
- 2026-09-23 15:51feat: make employee journey the primary productnzhumadil
- 2026-09-23 15:18feat: redesign employee experience around Halyk career flownzhumadil
- 2026-09-23 14:35feat: add static deployment fallbacknzhumadil
- 2026-09-23 14:34chore: register Career Quest sitenzhumadil
- 2026-09-23 14:33feat: add HR overview for third hour MVPnzhumadil
- 2026-09-23 14:28feat: add employee MVP web flownzhumadil
- 2026-09-23 14:16feat: add career quest recommendation enginenzhumadil
- 2026-09-23 14:10chore: remove unapproved planning draftsnzhumadil
- 2026-09-23 14:06docs: define product contract and AI decision layersnzhumadil
- 2026-09-23 13:45docs: analyze Career Quest case and define MVPnzhumadil
- 2026-09-23 13:04chore: prepare HackAlem repository and README structurenzhumadil
Структура репозитория (33 файлов)
.env.example .gitignore .openai/hosting.json README.md app/__init__.py app/data_loader.py app/recommendations.py app/server.py app/service.py app/static/app.js app/static/index.html app/static/styles.css data/career_quest_dataset/README.kz.md data/career_quest_dataset/README.md data/career_quest_dataset/README.ru.md data/career_quest_dataset/activity_history.csv data/career_quest_dataset/employees.json data/career_quest_dataset/events.json data/career_quest_dataset/skills.json docs/case-1-analysis.md docs/hr-dashboard.md docs/jury-check.md hr_dashboard/__init__.py hr_dashboard/app.js hr_dashboard/index.html hr_dashboard/server.py hr_dashboard/styles.css scripts/build_single_file.py scripts/build_static.py scripts/demo_recommendations.py tests/__init__.py tests/test_recommendations.py tests/test_service.py
Обсуждение 0 комментариев
Войдите, чтобы комментироватьПока нет комментариев — будьте первым.