Разработка AI-системы для автоматизации onboarding

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка AI-системы для автоматизации onboarding
Средняя
~1-2 недели
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Автоматизация онбординга сотрудников с AI

Онбординг нового сотрудника — это 2–4 недели повторяющихся объяснений, которые даются каждому. AI-система автоматизирует информационную часть (ответы на вопросы, доступ к документам, введение в процессы), оставляя живым только то, что требует человеческого контакта.

Архитектура AI-онбординга

from anthropic import Anthropic
from pydantic import BaseModel
from typing import Literal, Optional
import json
from datetime import datetime, timedelta

client = Anthropic()

class NewEmployee(BaseModel):
    employee_id: str
    name: str
    department: str
    role: str
    start_date: str
    manager_id: str
    mentor_id: Optional[str] = None
    it_systems_access: list[str] = []
    completed_steps: list[str] = []

class OnboardingPlan(BaseModel):
    employee_id: str
    steps: list[dict]  # {id, title, description, due_day, completed, category}
    day_1_schedule: list[dict]
    week_1_goals: list[str]
    key_contacts: list[dict]

class AIOnboardingSystem:

    def __init__(self, company_kb_path: str):
        self.company_kb = self._load_knowledge_base(company_kb_path)
        self.conversation_history: dict[str, list] = {}

    def _load_knowledge_base(self, path: str) -> str:
        """Загружает корпоративную базу знаний"""
        from pathlib import Path
        kb_parts = []
        for md_file in Path(path).rglob("*.md"):
            kb_parts.append(md_file.read_text())
        return "\n\n".join(kb_parts[:20])  # Топ-20 файлов

    def create_onboarding_plan(self, employee: NewEmployee) -> OnboardingPlan:
        """Создаёт персонализированный план онбординга"""

        response = client.messages.create(
            model="claude-sonnet-4-5",
            max_tokens=4096,
            messages=[{
                "role": "user",
                "content": f"""Создай план онбординга для нового сотрудника.

Сотрудник:
- Имя: {employee.name}
- Должность: {employee.role}
- Отдел: {employee.department}
- Дата выхода: {employee.start_date}

Информация о компании:
{self.company_kb[:2000]}

Верни JSON:
{{
  "steps": [
    {{
      "id": "step_1",
      "title": "...",
      "description": "...",
      "due_day": 1,
      "category": "admin|technical|social|culture",
      "completed": false
    }}
  ],
  "day_1_schedule": [
    {{"time": "09:00", "activity": "...", "with_whom": "..."}}
  ],
  "week_1_goals": ["..."],
  "key_contacts": [
    {{"role": "...", "purpose": "..."}}
  ]
}}

Включи шаги на 30 дней."""
            }]
        )

        text = response.content[0].text
        data = json.loads(text[text.find("{"):text.rfind("}") + 1])
        return OnboardingPlan(employee_id=employee.employee_id, **data)

    def answer_question(
        self,
        employee: NewEmployee,
        question: str,
        session_id: str,
    ) -> str:
        """Отвечает на вопрос нового сотрудника"""

        history = self.conversation_history.get(session_id, [])

        system_prompt = f"""Ты — AI-помощник по онбордингу для нового сотрудника {employee.name}.
Должность: {employee.role}, отдел: {employee.department}.

База знаний компании:
{self.company_kb[:3000]}

Правила:
- Отвечай конкретно и структурированно
- Если информации нет в базе — честно скажи и предложи к кому обратиться
- Для срочных вопросов (доступы, оборудование) — направляй к HR/IT немедленно
- Используй имя сотрудника в ответах"""

        messages = history + [{"role": "user", "content": question}]

        response = client.messages.create(
            model="claude-sonnet-4-5",
            max_tokens=1024,
            system=system_prompt,
            messages=messages,
        )

        answer = response.content[0].text

        # Обновляем историю
        history.append({"role": "user", "content": question})
        history.append({"role": "assistant", "content": answer})
        self.conversation_history[session_id] = history[-20:]  # Храним последние 10 обменов

        return answer

    def generate_daily_checklist(self, employee: NewEmployee, day: int) -> list[dict]:
        """Генерирует чеклист задач на конкретный день"""

        response = client.messages.create(
            model="claude-haiku-4-5",
            max_tokens=1024,
            messages=[{
                "role": "user",
                "content": f"""Создай чеклист задач для нового сотрудника на день {day} онбординга.

Сотрудник: {employee.role} в отделе {employee.department}
Уже выполнено: {employee.completed_steps}

Верни JSON:
[{{
  "task": "...",
  "category": "admin|technical|social|learning",
  "priority": "must|should|nice",
  "estimated_minutes": 30,
  "resources": ["ссылка или инструкция"]
}}]

5-8 задач, реалистичных для одного дня."""
            }]
        )

        text = response.content[0].text
        start = text.find("[")
        end = text.rfind("]") + 1
        return json.loads(text[start:end])

    def send_proactive_tips(self, employee: NewEmployee, day: int) -> str:
        """Отправляет проактивные советы в начале дня"""

        tips_by_day = {
            1: "знакомство с командой и рабочим местом",
            3: "начало работы с основными инструментами",
            5: "первые рабочие задачи",
            14: "промежуточный чекин и вопросы",
            30: "итоги первого месяца",
        }

        if day not in tips_by_day:
            return ""

        response = client.messages.create(
            model="claude-haiku-4-5",
            max_tokens=512,
            messages=[{
                "role": "user",
                "content": f"""Напиши короткое (3-4 предложения) приветственное сообщение для нового сотрудника на день {day}.
Фокус дня: {tips_by_day[day]}.
Тон: дружелюбный, поддерживающий, конкретный.
Имя: {employee.name}."""
            }]
        )

        return response.content[0].text

Автоматические задачи HR и IT

class OnboardingAutomation:
    """Автоматизирует административные задачи онбординга"""

    def create_it_request(self, employee: NewEmployee) -> dict:
        """Генерирует IT-запрос на доступы"""

        response = client.messages.create(
            model="claude-haiku-4-5",
            max_tokens=512,
            messages=[{
                "role": "user",
                "content": f"""Создай IT-заявку на настройку рабочего места.

Сотрудник: {employee.name}
Должность: {employee.role}
Отдел: {employee.department}

Стандартный список доступов для роли + специфические системы.
Верни JSON: {{"systems": [...], "priority": "high", "notes": "..."}}"""
            }]
        )

        text = response.content[0].text
        return json.loads(text[text.find("{"):text.rfind("}") + 1])

    def generate_welcome_email(self, employee: NewEmployee, plan: OnboardingPlan) -> str:
        """Генерирует персонализированное welcome письмо"""

        response = client.messages.create(
            model="claude-sonnet-4-5",
            max_tokens=1024,
            messages=[{
                "role": "user",
                "content": f"""Напиши welcome email для нового сотрудника.

Сотрудник: {employee.name}, {employee.role}
День выхода: {employee.start_date}
Первые три шага по плану: {json.dumps(plan.steps[:3], ensure_ascii=False)}
Расписание первого дня: {json.dumps(plan.day_1_schedule, ensure_ascii=False)}

Email должен быть: тёплым, конкретным, с чёткими инструкциями на первый день.
Не более 300 слов."""
            }]
        )

        return response.content[0].text

Практический кейс: IT-компания 150 сотрудников

Ситуация: нанимали 5–7 человек в месяц, HR тратил 60% времени на онбординг (одни и те же вопросы, объяснения, настройки).

Внедрение:

  • База знаний: 85 MD-файлов о компании, процессах, инструментах
  • Telegram-бот для вопросов нового сотрудника
  • Автоматические чеклисты на каждый день первого месяца
  • Интеграция с Jira (автосоздание задач)

Результаты:

  • Время HR на одного нового сотрудника: 8 часов → 2.5 часа
  • Вопросы первого месяца, решённые без HR: 73%
  • Скорость до первой продуктивной задачи: 21 день → 12 дней
  • Оценка онбординга сотрудниками: 3.4/5 → 4.6/5

Ключевой фактор: новые сотрудники не боялись задавать "глупые" вопросы боту — получали ответ немедленно, без ощущения что отвлекают коллег.

Сроки

  • AI-ассистент для ответов на вопросы: 3–5 дней
  • Персонализированный план онбординга: 1 неделя
  • Автоматические чеклисты + уведомления: 1 неделя
  • Полная интеграция с HR-системой и Jira: 2–3 недели