Перейти к содержимому
AI HR Bot

· AI HR Bot · 11 мин чтения

HR чат-бот для Slack: что отвечает, что читает и чего не выдумывает

Наберите «HR чат-бот для Slack» в поиске — и в выдаче окажутся два разных продукта под одним названием. Первый — универсальный ассистент в окне Slack: спросите что угодно, получите гладкий абзац, собранный из интернета вообще. Второй подключён к фактам вашей же компании: он читает конкретный источник, прежде чем ответить, и умеет выполнить то, о чём его попросили. AI HR Bot — второго рода, в границах HR: вопросы по политикам, отпуска и мелкие заявки между ними.

Эта страница — подробный разбор того, что делает второй вид, раздел за разделом, с названными числами и разрешениями Slack, а не с их пересказом. Если вы сравниваете несколько таких ботов, в последнем разделе — список вопросов, который можно задать любому поставщику, включая нас.

Границы — до аргументов: бесплатный тариф покрывает рабочее пространство Slack до 5 человек, и на любом тарифе есть все возможности — ответы по политикам, заявки на отпуск, Память сотрудника и политики отпусков с ежемесячным начислением. С шестого человека тариф «Команда» стоит $5 за человека в месяц — за каждого, а не только за тех, кто сверх пяти. Ничто ниже не требует великодушного прочтения страницы цен.

Вот второй вид, в канале:

#ask-hr

Анна

Сколько у меня осталось дней отпуска?

AI HR BotAPP

У вас доступно 11.66 дня отпуска.

Анна

Можно взять день отпуска в следующую пятницу?

AI HR BotAPP

Готово — один день отпуска на следующую пятницу. Заявка у вашего руководителя; баланс отпуска обновится после одобрения.

В #ask-hr. Число — это хранимый баланс, округлённый вниз: бот никогда не называет больше дней, чем есть на самом деле.

Зачем HR-боту жить в Slack

Проблема не в том, что HR-ответов нет. Проблема в том, что их не читают. Справочник подробный, страница с политиками актуальна — и всё равно каждую неделю приходят одни и те же пять вопросов, потому что найти ответ стоит больше внимания, чем спросить человека.

HR-инструмент за логином — это инструмент, куда заходят, уже зная, что именно нужно, а большинство HR-вопросов не такие: они мелкие, срочные и чуть неловкие, чтобы произносить их вслух. Slack — то место, где эти вопросы уже задаются, поэтому ответ, положенный туда же, убирает единственный настоящий барьер.

Поэтому работа делится надвое. Бот, который только говорит, — это поисковая строка с хорошими манерами. Полезный отвечает на вопрос и делает то, ради чего вопрос задавали: оформляет заявку, запускает согласование, двигает баланс. Обе половины ниже, в этом порядке.

Откуда берутся ответы

Вопрос по политике получает ответ из ваших же записей базы знаний, подобранных под заданный вопрос, — из справочника, который загрузил или надиктовал ваш руководитель HR, а не из представлений интернета о справочниках. У бота нет инструмента для веб-поиска: когда ответа нет, он не может пойти в сеть и выдать чужую политику за вашу. Ответ попадает в базу знаний, только когда руководитель HR загружает его или обучает бота.

База знаний хранит два вида искомого, и при каждом поиске они просматриваются вместе. Запись базы знаний — это авторская пара «вопрос — ответ»: пароль от вайфая, политика отпусков, рабочие часы. Её пишет человек, и со временем таких записей становится больше. Фрагмент — это непрерывный кусок документа, который отдал боту ваш руководитель HR: загруженного файла знаний или текста, написанного прямо в дашборде. От файла остаётся извлечённый текст, а не исходный бинарник, поэтому новая редакция заменяет старую целиком, а не правится по месту.

Именно это обычно прячется за словом «AI» в названии. Модель — это товар с полки, и у любого поставщика она напишет тот же гладкий абзац. Один HR чат-бот для Slack отличается от другого тем, что ему разрешено читать — и тем, что он делает, когда читать оказалось нечего.

Что происходит, когда читать нечего

Это более важная половина, потому что именно отсюда берётся уверенный неверный ответ. Политика отпусков, выдуманная с безупречной грамматикой, — и человек бронирует неделю, которой у него нет.

Вежливая просьба к модели это не чинит. Промпт — это инструкция, а не гарантия, и любой поставщик, обещающий, что его бот «никогда не галлюцинирует», делает заявление, которого промпт не вынесет. Положиться можно на конструкцию вокруг модели: на то, что она читает перед ответом, и на то, что происходит в момент, когда читать нечего. Вот эта конструкция, в обоих местах, где она срабатывает:

#ask-hr

Анна

Как оформить компенсацию за участие в конференции?

AI HR BotAPP

У меня нет ответа на этот вопрос — лучше уточнить напрямую у вашей HR-команды.

В #ask-hr. Совпадений в базе знаний нет — бот говорит об этом честно, а не угадывает.

AI HR Bot

AI HR BotAPP

Hey — an employee just asked: "Как оформить компенсацию за участие в конференции?"

I didn't have an answer. Can you teach me? Reply with the answer and I'll save it for next time. Or say 'dismiss' if it's not something I should know.

Майя

Отправьте чек на finance@ в течение 30 дней — всё, что меньше $500, одобряется автоматически.

AI HR BotAPP

Saved. Next time someone asks, I'll have an answer for them. Thanks!

Тем временем: личное сообщение первому HR-руководителю из списка. Один ответ становится сохранённым знанием.

Когда ни одна запись не проходит порог схожести, системный промпт предписывает точную формулировку отказа — вплоть до «Do NOT guess» — вместо того чтобы оставить модель импровизировать, и вопрос без ответа в любом случае записывается как пробел в базе знаний. Дальше бот открывает отдельную ветку в личных сообщениях с первым руководителем HR, указанным для рабочего пространства, — с одним человеком, а не рассылкой, — и просит научить его. Ответ в этой ветке становится сохранённым ответом для следующего, кто спросит.

Если тот же вопрос вернётся в течение суток, он запишется снова, но второго сообщения не будет: частый пробел — это сигнал, а не поток отвлечений. Предписанный отказ по-прежнему остаётся инструкцией к модели, и эта страница не будет делать вид, что инструкция — закон природы; но запись, личное сообщение и сохранённый ответ конструктивны и держатся независимо от того, что сделает модель.

Что вы с этого получаете — список вопросов, на которые ваш справочник не ответил, в том порядке, в каком их действительно задавала команда. Справочник растёт ровно там, где был тонким. Полный разбор — в что происходит, когда HR-бот не знает ответа.

Что он делает, а не только говорит

«Можно мне выходной в следующую пятницу?» оформляет заявку на отпуск и запускает цепочку согласования тем же действием — карточка приходит руководителю в Slack личным сообщением с кнопками «Согласовать» и «Отклонить», а не в очередь, которую никто не открывает.

Заявка — это формальное обращение одного из четырёх видов: отгул (по болезни, оплачиваемый или без содержания), отпуск, удалённая работа или опоздание. Она проходит цепочку согласования — упорядоченную последовательность согласующих, заданную отдельно для каждого рабочего пространства и каждого вида заявки. Свежая установка заводит цепочку для каждого вида заявки, так что ничего не нужно проектировать до первой заявки. По умолчанию это руководитель сотрудника, затем его контактное лицо HR. Собственные шаги в собственном порядке доступны на любом тарифе.

Карточка несёт всё, что нужно для решения — кто просит, какой отдел, какие даты, — без сопроводительной записки и ссылок наружу. Отклонение требует причины, и сотрудник её видит: отказ с одной фразой — это разговор, а отказ без неё — загадка, которую кому-то придётся разгадывать.

Руководитель HR никогда не заперт за чужим шагом: он может согласовать или отклонить любую заявку в ожидании внутри рабочего пространства, независимо от того, на ком сейчас стоит цепочка. А раздел заявок в дашборде намеренно доступен только для чтения — решения принимаются в Slack, там же, где карточка. Набор карточек нарисован на странице цепочек согласования, а как заявка на отпуск проходит согласование проводит одну заявку через всю последовательность.

Числа, которые он называет

Спросите, сколько у вас дней отпуска, и в ответ придёт число вроде 11.66. Эта дотошность и есть смысл.

20
2025-01-15
2026-01-15

1.66 дн./месяц

Полных месяцев
12
Хранится в учёте
20.0004 дн.
Что сообщает бот
20 дн.

Предполагается, что политика действует с даты найма и ничего не потрачено. Балансы хранятся с точностью до четырёх знаков; бот сообщает два, округляя вниз — он никогда не называет больше дней, чем есть на самом деле.

Баланс отпуска растёт на одно начисление за каждый завершённый месяц, и оно приходит в месячную годовщину сотрудника по времени рабочего пространства: приняты 15-го — месяц завершается 15-го. Приняты 31-го — февраль завершается 28-го, потому что счёт прижимается к концу короткого месяца; прижатие занимает день, но не сдвигает годовщину.

Ставка хранится с четырьмя знаками после запятой, поэтому 20 дней в год — это 1.6667 в месяц, а двенадцать таких начислений дают 20.0004 на счету. Бот сообщает число, обрезанное до двух знаков и округлённое вниз: услышав «11 дней» при фактических 10.99, вы забронировали бы день, которого у вас нет. Ошибка всегда в сторону осторожности, а не видимой щедрости.

Три края стоит назвать — именно это делает середину правдоподобной. Начисление привязано к более поздней из двух дат: даты приёма и момента создания политики отпусков, так что рабочее пространство никогда не должно дней за стаж, предшествующий его собственной политике. Без даты приёма не начисляется ничего: бот не угадывает стаж, а отсутствующая дата показывается руководителю HR как единственная поломка, которую он действительно может починить. И баланс — это сумма начислений, а не величина, пересчитанная из стажа, поэтому ручная правка руководителя HR никогда не затирается следующим проходом.

Баланс отпуска двигается, когда заявка согласована, а не когда подана, — поэтому число, которое чат-бот называет, пока карточка ещё ждёт, и есть фактический остаток. Полная арифметика — в как начисляется баланс отпуска, те же расчёты отдельно — в калькуляторе начисления отпуска, а повседневная версия — в как вести учёт отпусков в Slack.

Одна асимметрия, которую часто упускают: баланс отгулов покрывает только оплачиваемые отгулы. Отгулы по болезни и без содержания не учитываются и ничего не расходуют.

Что он может читать

Этот вопрос стоит задать любому HR-боту первым, и Slack отвечает на него точно — на экране согласия, на языке, который большинство закрывает не читая: разрешения.

Наши названы публично одним списком, который можно сверить с тем, что показывает Slack, и ровно два из разрешений Slack читают сообщения: im:history покрывает ветки личных сообщений, в которых участвует бот, — разговоры с самим ботом, чтобы переписка сохраняла контекст, — а app_mentions:read покрывает сообщения, которые упоминают его в канале, чтобы он мог ответить. Всё остальное в вашем Slack остаётся за пределами запроса.

Это исключение и есть причина читать список. Нет channels:history, нет groups:history, нет mpim:history — бот не может читать ваши каналы, ваши приватные каналы и вашу личную переписку с другими людьми, даже в канале, куда его добавили. Нет разрешения на поиск по рабочему пространству. И у запроса вовсе нет пользовательской половины: без user_scope он никогда не действует от вашего имени.

Остальное в списке пишет или сопоставляет имена. chat:write и im:write отправляют ответы и открывают личные сообщения. assistant:write управляет собственной панелью ассистента в Slack. files:read и files:write проносят голосовое сообщение внутрь и озвученный ответ наружу. reactions:write ставит отметку :eyes: в момент, когда приходит личное сообщение. users:read сопоставляет аккаунт Slack с сотрудником и определяет его руководителя и контактное лицо HR, а users:read.email читает адрес, на который нужно отправить приглашение в Google Календарь, — это нужно встречам.

Каждое из них, с обоснованием, разобрано в что может читать HR-бот в Slack.

Что ещё внутри

Две возможности, которые не про вопросы и не про отпуска. Дни рождения входят в ассистента на любом тарифе, включая бесплатный: напоминание за семь дней руководителям HR и собственному руководителю сотрудника и одно общее поздравление в сам день, не раньше девяти утра по времени рабочего пространства. День рождения хранится как месяц и день — год отбрасывается на входе, поэтому в системе нечем ответить, сколько кому лет. Правила — на странице дней рождения, а сравнение по стоимости, с которым обычно приходят, — в бесплатной альтернативе BirthdayBot.

Память сотрудника, доступная на любом тарифе, позволяет разговору продолжаться через недели, а не начинаться каждый раз с нуля. Она принадлежит конкретному сотруднику и остаётся внутри его ветки: поздравление с днём рождения никогда не берёт из неё ничего, потому что публичный пост, раскрывающий сказанное боту по секрету, — это инцидент, а не проявление внимания.

Сколько это стоит

Бесплатный тариф покрывает рабочее пространство Slack до 5 человек; считаются только активные полноправные участники, никогда не боты, гости или деактивированные аккаунты. С шестого человека «Команда» стоит $5 за человека в месяц — $4 в месяц при оплате за год ($48 в год), — и оплачивается каждый, а не только те, кто сверх пяти. За присоединившихся платите со дня, когда они пришли, а за ушедших перестаёте платить со следующего продления. «Команда» начинается с 14-дневного бесплатного пробного периода, который запускается сам, без карты. На любом тарифе есть все возможности, без ограничений на записи базы знаний или число руководителей HR, так что тарифы различаются только размером и ценой. Enterprise — это индивидуальные условия по договору, оплата по счёту, приоритетная поддержка и помощь с запуском. Цены в долларах США, без учёта налогов, а оплатой вы управляете сами: карта, счета, помесячная или годовая оплата и отмена — всё в дашборде.

Как выбрать

Пять вопросов, которые разделяют эти продукты, в порядке значимости. Это те вопросы, которые мы хотели бы услышать о себе.

Откуда берутся его ответы? Если поставщик не может назвать источник, источник — интернет, и вашей команде достанется чужая политика голосом вашей компании.

Что он делает, когда не знает? «Он никогда не ошибается» — это не ответ. Спросите, что именно записывается при неудаче и кому об этом сообщают. У продукта без ответа здесь нет пути от плохого ответа к хорошему.

Какие разрешения Slack он запрашивает? Прочитайте экран согласия, прежде чем нажать «Разрешить». channels:history означает, что бот может читать каждый канал, где он состоит. user_scope означает, что он может действовать от вашего имени. Спросите, зачем нужно каждое разрешение, и насторожитесь, если список длиннее, чем проданные вам возможности.

Он действует или только отвечает? Ответ на «сколько у меня дней отпуска» — это поисковая строка. Оформить заявку и провести согласование — вот часть, которая снимает работу с чьей-то недели.

Что происходит с арифметикой на краях? Спросите, как он округляет, что делает с принятым 31-го числа и что делает, когда даты приёма нет. Ответы покажут, думал ли об этом кто-нибудь, — а округление вверх выдаёт сразу.

Как запустить

Для установки нужны руководитель HR, рабочее пространство Slack и тот самый экран согласия. Цепочки заводятся сами, поэтому первая заявка работает до всякой настройки. В первый день стоит заняться обучением: загрузить справочник, описать политики, которые не записаны больше нигде, и ответить на первые пробелы в базе знаний по мере их появления. База знаний с вашими настоящими ответами — и есть вся разница между двумя видами чат-ботов, с которых началась эта страница.

Руководство по установке описывает настройку, руководство руководителя HR — как держать справочник честным, а руководство сотрудника — то, что стоит потом вставить в канал. Если вы хотите сперва увидеть форму целиком, HR-автоматизация в Slack — это та же картина, разложенная на четыре рутины.

Начать бесплатно

Подключается к вашему Slack примерно за 2 минуты.