AAYMA
RU
Войти

Career Quest

Employee-first MVP в стиле мобильного приложения Halyk: карьерная лестница, персональные рекомендации курсов и заданий по навыковым разрывам, Coins…

Рабочий MVP
Команда «nazhmdt» 5💬 0 комментариевс 23 сентября 2026 г.

О проекте

Команда: 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.md

hack-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. Затем проверьте:

  1. Главная — новости компании и баланс Coins.
  2. Развитие — персональные задания, курсы и тесты.
  3. AI-агент — нажмите «С чего начать развитие?» или задайте свой вопрос.
  4. Курс/тест — откройте демо-карточку и завершите сценарий.
  5. Coins — убедитесь, что награда добавилась в баланс.
  6. Профиль — проверьте настройки языка, темы и уведомлений.

Для проверки изолированных профилей можно выйти и войти кодом 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.

Звёзды
⭐ 0
Форки
0
Язык
Python
Последний push
в прошлом месяце
Коммиты
34
Авторы
1
Файлы
33
Ветки
1

Авторы коммитов

nzhumadil 34

История коммитов

  • 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 комментариев

Войдите, чтобы комментировать

Пока нет комментариев — будьте первым.