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

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка AI-системи для автоматизації onboarding
Середній
~1-2 тижні
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1284
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1196
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    901
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1119
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    586
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    853

Автоматизація онбордингу робітників з 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:
        """Генерує персоналізоване привітальне письмо"""

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

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

Письмо повинно бути: теплим, конкретним, з чіткими інструкціями на перший день.
Не більше 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 тижні