AAYMA
RU
Войти

Career Quest

Платформа, которая по профилю сотрудника подбирает 1–3 шага развития с объяснением, показывает радар компетенций, моделирует альтернативные…

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

О проекте

Команда: Gophers
Кейс HackAlem.ai: Менеджмент — Halyk Bank · кейс 1
Стадия: Рабочий MVP

Задача кейса: «Career Quest»: AI-навигатор, связывающий навыки сотрудника с шагами развития

Суть

Платформа, которая по профилю сотрудника подбирает 1–3 шага развития с объяснением, показывает радар компетенций, моделирует альтернативные траектории Career Twin и даёт HR-дашборд.

Как устроено

Анализатор профиля считает разрывы навыков до следующего грейда, critical_skills и метрики истории активностей. Скоринговый движок оценивает gap, history (штрафы за drop/no-show), availability и fit и выбирает топ-1..3 события. LLM-explainer пишет обоснование на kk/ru/en по цепочке OpenAI gpt-4o-mini → NVIDIA API → эвристика, с кэшем и бюджетом 8 с. Отметка «выполнено» пересчитывает навыки. Career Twin строит быстрый и гибкий путь с учётом формата и часов в неделю и прогнозирует readiness %.

Ключевые решения

  • gap analysis
  • weighted scoring
  • multi-LLM fallback chain
  • heuristic fallback
  • role-based access (X-Role)
  • path planning

Особенности

Есть отдельный тест на проверочный профиль жюри с конфликтом факторов (System Design против Public Speaking). Работу разделили между AI-агентами через AGENTS.md и заранее согласованный OpenAPI-контракт. Цепочка fallback из трёх LLM-провайдеров.

Стек

Python · FastAPI · React · TypeScript · Vite · Docker Compose · OpenAPI 3.1 · pytest

Модели

OpenAI gpt-4o-mini · NVIDIA API


Проект создан за 5 часов на финале хакатона HackAlem.ai (23 сентября 2026, Астана). Код — BAITC-Hacks/hack-463da2da-gophers.

README

README.md

Career Quest — AI-навигатор развития сотрудника

Хакатон: HackAlem AI | Трек: Halyk Bank | Команда: Gophers

Платформа геймификации жизненного цикла сотрудника с объяснимыми AI-рекомендациями развития, динамическим радаром компетенций и моделированием альтернативных карьерных траекторий (Career Twin).


🌟 Ключевые возможности

  1. Профиль сотрудника и радар компетенций:

    • Наглядная карта hard/soft навыков (текущий уровень vs требования следующего грейда).
    • Выделение критичных навыков (critical_skill) для повышения.
    • История активностей за 24 месяца со статусами прохождения.
  2. Объяснимые AI-рекомендации (Explainability):

    • Подбор 1–3 релевантных шагов с обоснованием минимум по 3 факторам: грейд, разрывы компетенций, история участия (штрафы за drop/no-show), критичность для промоушена и пререквизиты.
    • Multi-LLM Pipeline: OpenAI gpt-4o-mini (основная) $\to$ NVIDIA API (фолбэк) $\to$ Heuristic Fallback (без падений при отсутствии ключей/сети).
    • Локализация обоснования на 3 языка: казахский (kk), русский (ru), английский (en).
  3. Интерактивный цикл развития (Completion):

    • Отметка активности как выполненной пересчитывает навыки с учетом правила роста (gain до max_level) и обновляет траекторию в реальном времени.
  4. Career Twin (Альтернативные карьерные пути):

    • Сравнение «Быстрого пути» (максимальная скорость закрытия разрывов) и «Гибкого пути» с учетом ограничений сотрудника (формат: онлайн / офлайн / в своем темпе, доступные часы в неделю).
    • Прогноз готовности к следующему грейду (readiness %).
  5. HR-дашборд и приватность:

    • Агрегированная аналитика по проседающим навыкам и вовлеченности в разрезе департаментов.
    • Строгое соблюдение приватности: данные об индивидуальной вовлеченности скрыты от коллег, доступ к HR-аналитике защищен ролью (X-Role: hr).
  6. Проверочные профили жюри (Jury-Ready):

    • Эндпоинт POST /admin/load-dataset для загрузки дополнительных тестовых профилей и истории в формате стартового кита.
    • Успешно проходит проверочный сценарий жюри с конфликтом факторов (System Design vs Public Speaking).

🚀 Быстрый запуск и деплой (One-Command Deploy)

Запуск через Docker Compose (Рекомендуемый способ для жюри)

Все сервисы (бэкенд, фронтенд, датасет) поднимаются одной командой:

# 1. Склонируйте репозиторий и перейдите в папку проекта
git clone https://github.com/BAITC-Hacks/hack-463da2da-gophers.git
cd hack-463da2da-gophers

# 2. (Опционально) Создайте .env и укажите ключи для LLM-объяснений:
cp .env.example .env
# Заполните OPENAI_API_KEY и/или NVIDIA_API_KEY в .env (при их отсутствии работает мгновенный heuristic fallback)

# 3. Запустите проект одной командой:
docker compose up --build

После запуска доступны:


💻 Локальный запуск для разработки

Бэкенд (Python 3.11+ / FastAPI):

cd backend
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

# Запуск тестов (45 тестов):
pytest

# Запуск сервера:
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload

Фронтенд (React / TypeScript / Vite):

cd frontend
npm install
npm run build    # Проверка типов и сборка
npm run dev      # Запуск дев-сервера на http://localhost:5173

🏗️ Архитектура проекта

hack-463da2da-gophers/
├── backend/
│   ├── app/
│   │   ├── ai/                      # AI-ядро
│   │   │   ├── core/                # Анализатор профиля, расчет гэпов и скоринг
│   │   │   ├── llm/                 # Мультиязычный LLM Explainer (OpenAI/NVIDIA/Heuristic)
│   │   │   └── recommender.py       # Главный оркестратор рекомендаций
│   │   ├── api/                     # FastAPI эндпоинты, Pydantic схемы, хранилище
│   │   │   ├── routes.py            # REST API маршруты
│   │   │   ├── store.py             # In-memory хранилище датасета с валидацией
│   │   │   └── career_paths.py      # Движок Career Twin
│   │   └── main.py                  # Точка входа FastAPI
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── pages/                   # Страницы сотрудника, HR-дашборда, Career Twin
│   │   ├── api/                     # Клиент API по OpenAPI контракту
│   │   ├── i18n.ts                  # Локализация на kk/ru/en
│   │   └── theme/                   # Темная и светлая темы Halyk
├── docs/
│   └── openapi.yaml                 # OpenAPI 3.1.0 спецификация контракта
├── career_quest_dataset/            # Датасет стартового кита (200 профилей, 40 событий)
└── docker-compose.yml               # Единый конфигуратор запуска

📡 Спецификация API (OpenAPI 3.1)

МетодЭндпоинтОписаниеЗаголовки / Доступ
GET/healthПроверка работоспособности сервисаПубличный
GET/employeesСписок всех сотрудников компанииX-Role: hr
GET/employees/{id}Профиль сотрудника, радар навыков, историяX-Role: employee / hr
POST/recommendations/{id}AI-рекомендации с обоснованием (≥3 фактора)X-Role: employee / hr
POST/employees/{id}/complete/{event_id}Отметка о прохождении и пересчет навыковX-Role: employee / hr
POST/employees/{id}/career-pathsМоделирование путей Career TwinX-Role: employee / hr
GET/hr/dashboardHR-аналитика проседающих компетенцийX-Role: hr
POST/admin/load-datasetЗагрузка проверочных датасетов жюриX-Role: hr

🎯 Сценарий демонстрации для жюри (Demo Script)

  1. Открытие профиля сотрудника:

    • Перейдите на http://localhost:5173.
    • Выберите сотрудника E0028 (Middle Backend Engineer).
    • Продемонстрируйте радар компетенций (текущий уровень vs требования Senior) и историю активностей.
  2. Генерация AI-рекомендаций:

    • В блоке рекомендаций отображаются релевантные курсы и воркшопы.
    • Раскройте карточку: отображаются 3+ фактора скоринга и связное человечное обоснование на казахском/русском/английском языке.
  3. Интерактивный сдвиг прогресса:

    • Нажмите «Выполнено» на одной из карточек.
    • Навык мгновенно вырастает с соблюдением max_level, радар перестраивается, а рекомендации автоматически пересчитываются.
  4. Проверка Career Twin:

    • Разверните блок «Выбрать другой путь».
    • Укажите фильтр (например, только online, 4 часа в неделю) $\to$ система построит быстрый и гибкий маршруты с прогнозом готовности к промоушену.
  5. HR-дашборд и безопасность:

    • Перейдите во вкладку «HR-дашборд».
    • Показаны топ-проседающие компетенции по департаментам и общая вовлеченность при сохранении приватности личных оценок.
  6. Проверочный конфликтный кейс жюри:

    • Запустите команду тестирования конфликтного профиля: pytest backend/app/ai/tests/test_jury_check.py — убедитесь, что алгоритм не ведется на поверхностный гэп и отдает приоритет критическому навыку с учетом истории пропусков.

👥 Команда разработчиков

Проект разработан командой Gophers для хакатона HackAlem AI (Halyk Bank Track).

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

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

tsuyundi 28almaltynbek 12Mr.RobotDumbazz 10

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

  • 2026-09-23 17:55docs: complete production README with deployment guide and architectureMr.RobotDumbazz
  • 2026-09-23 17:52feat(front): align employee and HR requests with API accesstsuyundi
  • 2026-09-23 17:41fix(api): align available steps with trajectory rulesalmaltynbek
  • 2026-09-23 17:41feat(api): enforce employee and HR access scopesalmaltynbek
  • 2026-09-23 17:41fix(api): validate jury upload recordsalmaltynbek
  • 2026-09-23 17:41test(api): cover recommendation eligibility for all profilesalmaltynbek
  • 2026-09-23 17:39fix(front): improve language menu contrast and Kazakh typographytsuyundi
  • 2026-09-23 17:35feat(front): add language switcher and activity timelinetsuyundi
Все коммиты (50)
  • 2026-09-23 17:28feat(front): add official Halyk Bank logotsuyundi
  • 2026-09-23 17:24feat(front): surface career paths near profiletsuyundi
  • 2026-09-23 17:21feat(front): add alternative career pathstsuyundi
  • 2026-09-23 17:08feat(api): add Career Twin path planneralmaltynbek
  • 2026-09-23 17:01docs: add Career Twin MVP ownership planalmaltynbek
  • 2026-09-23 16:27feat(front): add Halyk brand contexttsuyundi
  • 2026-09-23 16:24feat(front): apply green gold visual themetsuyundi
  • 2026-09-23 16:21feat(front): elevate visual design systemtsuyundi
  • 2026-09-23 16:14docs: describe secure OpenAI setup for juryalmaltynbek
  • 2026-09-23 16:10feat(front): add employee profile selectortsuyundi
  • 2026-09-23 16:08fix(front): keep recommendation selection compatibletsuyundi
  • 2026-09-23 16:08feat(front): support selected employee recommendationstsuyundi
  • 2026-09-23 16:05fix(front): resolve localized heading typetsuyundi
  • 2026-09-23 16:05feat(front): localize profile UI labelstsuyundi
  • 2026-09-23 16:03feat(front): expand interface translationstsuyundi
  • 2026-09-23 15:55feat(front): show gap closing activitiestsuyundi
  • 2026-09-23 15:54feat(front): add profile language localizationtsuyundi
  • 2026-09-23 15:51feat(front): load live HR dashboardtsuyundi
  • 2026-09-23 15:49test(api): cover jury profile dataset uploadalmaltynbek
  • 2026-09-23 15:48feat(front): refresh profile after completiontsuyundi
  • 2026-09-23 15:44feat(front): complete recommendations through APItsuyundi
  • 2026-09-23 15:40feat(front): load live recommendations with statestsuyundi
  • 2026-09-23 15:32docs: add integration follow-up checklistMr.RobotDumbazz
  • 2026-09-23 15:26feat(front): add live API client methodstsuyundi
  • 2026-09-23 15:25feat(api): align recommendation response with contractalmaltynbek
  • 2026-09-23 15:21docs: add demo readiness planalmaltynbek
  • 2026-09-23 15:13feat(front): show progress after recommendation completiontsuyundi
  • 2026-09-23 15:08feat(front): add privacy-safe HR dashboardtsuyundi
  • 2026-09-23 15:03feat(ai): support backend recommendation integrationalmaltynbek
  • 2026-09-23 14:54feat(front): add recommendation cardstsuyundi
  • 2026-09-23 14:29feat(ai): LLM-слой explainer — OpenAI→NVIDIA→heuristic, кэш до конца дня, бюджет 8 c (замещаю 2-й контекст)Mr.RobotDumbazz
  • 2026-09-23 14:28feat(front): add employee profile and skills viewtsuyundi
  • 2026-09-23 14:25test(ai): этап 4 — проверочный профиль жюри: SD побеждает PS при негативной истории, контроль симметрииMr.RobotDumbazz
  • 2026-09-23 14:24feat(ai): этап 2b — recommender.py: интеграция core+llm, фолбэк-объясненияMr.RobotDumbazz
  • 2026-09-23 14:23feat(ai): этап 2 — скоринговый движок: gap/history/availability/fit, фильтры, топ-1..3Mr.RobotDumbazz
  • 2026-09-23 14:22feat(front): scaffold Vite React applicationtsuyundi
  • 2026-09-23 14:22feat(front): remove generated TypeScript artifactstsuyundi
  • 2026-09-23 14:21feat(ai): этап 1 — анализ профиля: разрывы навыков, critical_skills, метрики историиMr.RobotDumbazz
  • 2026-09-23 14:12feat(api): implement Career Quest backend endpointsalmaltynbek
  • 2026-09-23 14:01feat(ai): контракт AI-ядра (contracts.py) + параллельные зоны core/ (GLM) и llm/ (Codex)Mr.RobotDumbazz
  • 2026-09-23 13:53docs: роли по трекам (Backend=Алмас, Frontend=Тим), инструмент не определяет рольMr.RobotDumbazz
  • 2026-09-23 13:40feat(ai): этап 0 — скелет репо, роли агентов (AGENTS.md), TODO, docker-compose, OpenAPI-контрактMr.RobotDumbazz
Структура репозитория (67 файлов)
.env.example
.gitignore
AGENTS.md
HackAlem AI_ Career Quest - платформа геймификации жизненного цикла сотрудника..docx
README.md
TODO.md
backend/Dockerfile
backend/app/__init__.py
backend/app/ai/AGENTS.md
backend/app/ai/__init__.py
backend/app/ai/contracts.py
backend/app/ai/core/__init__.py
backend/app/ai/core/analyzer.py
backend/app/ai/core/scoring.py
backend/app/ai/llm/__init__.py
backend/app/ai/llm/explainer.py
backend/app/ai/recommender.py
backend/app/ai/tests/conftest.py
backend/app/ai/tests/fixtures.py
backend/app/ai/tests/test_analyzer.py
backend/app/ai/tests/test_explainer.py
backend/app/ai/tests/test_jury_check.py
backend/app/ai/tests/test_recommender.py
backend/app/ai/tests/test_scoring.py
backend/app/api/AGENTS.md
backend/app/api/__init__.py
backend/app/api/career_paths.py
backend/app/api/routes.py
backend/app/api/store.py
backend/app/api/test_career_paths.py
backend/app/api/test_eligibility.py
backend/app/api/test_endpoint_access.py
backend/app/api/test_jury_upload.py
backend/app/api/test_routes.py
backend/app/main.py
backend/requirements.txt
career_quest_dataset/case_1/career_quest_dataset/README.kz.md
career_quest_dataset/case_1/career_quest_dataset/README.md
career_quest_dataset/case_1/career_quest_dataset/README.ru.md
career_quest_dataset/case_1/career_quest_dataset/activity_history.csv
career_quest_dataset/case_1/career_quest_dataset/employees.json
career_quest_dataset/case_1/career_quest_dataset/events.json
career_quest_dataset/case_1/career_quest_dataset/skills.json
docker-compose.yml
docs/openapi.yaml
frontend/.env.example
frontend/AGENTS.md
frontend/Dockerfile
frontend/index.html
frontend/package-lock.json
frontend/package.json
frontend/public/halyk-logo.svg
frontend/src/App.tsx
frontend/src/api/client.ts
frontend/src/api/mock.ts
frontend/src/api/types.ts
frontend/src/i18n.ts
frontend/src/main.tsx
frontend/src/pages/CareerTwin.tsx
frontend/src/pages/Placeholders.tsx
frontend/src/pages/Recommendations.tsx
frontend/src/styles.css
frontend/src/theme/ThemeProvider.tsx
frontend/src/vite-env.d.ts
frontend/tsconfig.json
frontend/tsconfig.node.json
frontend/vite.config.ts

Обсуждение 0 комментариев

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

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