Меня зовут Сережа, я продакт в команде Подбора. Сегодня расскажу, как мы сделали генератор писем для рекрутеров на базе ChatGPT.

Почему рекрутер не может написать нормальное письмо сам?

Может, но:

  1. Рекрутеры тратят много времени на поиск кандидатов и на первый контакт. На создание персонального письма рекрутеру в среднем требуется 15 минут. Представим, что таких писем надо написать хотя бы 20 в день. Это 5 рабочих часов на 20 хороших писем. Конечно, в итоге в жертву идет качество письма. Чаще всего рекрутеры просто используют шаблоны — и это ок, но кандидаты, конечно, ждут персонального подхода.

  2. Разработчики недовольны тем, какие сообщения и письма они получают. Не хочется чувствовать, что ты 10-ый в очереди на получение «классной возможности».

И что мы решили сделать?

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

Важно, чтобы письма получались разными, читаемыми, связными и персонализированными. Когда взялись за эту задачу, уже вышла ChatGPT 4.0, но мы решили работать с ChatGPT 3.5-turbo, а не с самой свежей версией потому что:

  • Во-первых, ChatGPT 4.0 работает в 10-15 раз медленнее, чем ChatGPT 3.5 из-за увеличения размера модели. Если для генерации писем ChatGPT 3.5 требуется в среднем от 5 до 10 секунд на ответ, то у ChatGPT 4.0 лучший результат был 45 секунд. Это очень медленно.

  • Во-вторых, новые технологии зачастую нестабильны, и ChatGPT 4.0 не исключение. При тестировании были замечены частые разрывы соединения с чатом, которые могут продолжаться до 5 минут. Хотя это может улучшиться со временем, в данный момент стабильность ChatGPT 3.5 наших тестов была выше, что уменьшает риски для нас.

  • Наконец, чтобы ChatGPT 3.5 был таким, каким он есть сейчас, команда OpenAI провела дополнительное обучение и настройку модели. Благодаря их кропотливой работе ответы чата кажутся очень человекоподобными. ChatGPT 4.0 не имеет проблем с человечностью и, в некоторых случаях, даже превосходит своего меньшего брата. Однако проведенные тесты на нашей целевой выборке показали, что человек не может заметить большую разницу в качестве между ними.

Таким образом, ChatGPT 3.5 — лучший вариант для нас сейчас. Хотя на рынке есть множество других больших языковых моделей, никто пока не добился такого качества ответов, как модель OpenAI.

Для генератора мы использовали ChatGPT 3.5-turbo.

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

Как эта фича отразится на жизни рекрутеров и кандидатов?

Рекрутеры будут тратить ~1 минуту на создание письма. Оно будет персональным, конкретным, вовлекающим. Рекрутер сможет охватить больше кандидатов за короткое время, а значит, быстрее закрывать вакансии и тратить время эффективнее (на другие крутые задачи).

Кандидаты будут получать понятные и простые письма с предложениями. Если использовать генератор вместе с Подбором, то предложения будут существенно более релевантными.

А что внутри письма должно быть?

Вот реальное сообщение, которое я получил неделю назад:

Сергей, добрый день! Меня зовут [имя скрою, чтобы никого не обидеть], карьерный сервис [компанию тем более не буду светить, вдруг они наши клиенты ????]. Вашим контактом со мной поделились коллеги. У нас в работе сейчас есть вакансия, которую я бы хотела с вами обсудить. Подскажите, пожалуйста, было бы вам интересно со мной пообщаться?”

У меня возникают вопросы “Какая вакансия?”, “Какая компания?”, “Почему я им интересен?”. Надо понимать, что это холодное письмо, я не нахожусь сейчас в поиске, соотвественно, чтобы узнать имеет ли смысл общаться, мне нужно ответить и начать диалог. В этом письме нет информации, которая бы могла меня заинтересовать, к тому же мне лень начинать длинный разговор и расспрашивать рекрутера, как и большей части тех, кто не находится в активном поиске.

А вот если бы мне написали:

Сергей, добрый день!
Меня зовут Варя. Вашим контактом со мной поделились коллеги. У нас в работе сейчас есть вакансия Product Manager в крупную телекоммуникационную компанию. В этой компании стартует HR-Tech проект, а у вас в опыте я увидела, что как раз работаете в этой сфере. Подскажите, пожалуйста, было бы вам интересно со мной пообщаться?

Согласитесь, меня бы зацепило, что человек изучил мой опыт, озвучил мою ценность для их проекта. Думаю, я бы ответил.

Этот пример я привел, чтобы показать, как много информации о вакансии и кандидате нужно знать рекрутеру, чтобы написать качественное письмо. Важно чем-то зацепить кандидата, показать, почему он подходит на эту вакансию. Итак, чем кандидата зацепить?

Персональным письмом. Да, все так просто.

Ок, и как вы делаете письмо персональным?

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

Чтобы получилось качественное письмо, нам нужно знать достаточное количество информации и о вакансии, и о кандидате. С информацией о кандидате проблем нет, мы на этом специализируемся (агрегируем данные о кандидатах из 15+ открытых источников аля Linkedin и Github), а вот про вакансию мы пока ничего не знаем.

Поэтому мы спрашиваем у пользователя:

  • Про компанию: имя рекрутера, название компании, сферу (например, это финтех или ed-tech)

  • Про вакансию: стек (подтягиваем свои словари), локацию (удаленку тож можно), обязанности (свободное поле), зарплатную вилку

  • Про кандидата: имя и ссылку на его Linkedin (или профиль в Подборе)

Что мы просим у ChatGPT:

Написать письмо, которое позволит привлечь внимание кандидата. Мы задаем ограничения по формату, тону, даем указания, как можно использовать источники, которые у нас есть (например, где мы нашли кандидата и что интересного про него узнали).

Как интегрировали в продукт?

Мы тестируем сейчас два сценария:

  1. Генератор писем — фактически, это просто страница, где можно заполнить все вышеперечисленные поля и сразу получить письмо.

  2. Генератор писем на основе вакансии — ещё у нас предусмотрен вот такой сценарий, при котором рекрутеру нужно ещё меньше действий, чтобы быстро создать сообщение для кандидата.

Что надо сделать, чтобы генерить письма за 10 секунд
Что надо сделать, чтобы генерить письма за 10 секунд

Тестирования и доработки (самое интересное)

Сделали мы значит бек часть генератора и принялись тестировать. Конечно, промт мы еще докручивали, но вот с чем мы столкнулись еще.

Платный аккаунт

Мы тестировали на бесплатном API ключе Open AI, среднее время ответа около 15 секунд. Иногда приходилось ждать ответ от Open AI по 30 секунд. Мы пытаемся сэкономить время пользователи, а вместо этого заставляли бы ждать его по 30 секунд на страницу, смотря на крутящийся спиннер загрузки.

Далее мы оформили платный API ключ, время ответа сократилось до 4-5 секунд. В редких случаях это 10 секунд. И лимиты на платном ключе гораздо выше.

Бесплатный ключ

Платный ключ

20 запросов в минуту

3500 запросов в минуту

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

Ошибки OpenAI

Когда мы тестировали на бесплатном ключе на каждые 50 запросов, мы ловили ошибку 429. В их документации эта ошибка отвечает и за превышение лимитов, и за перегруз сервера. Мы точно не превышали лимит 20 запросов в минуту, так как делали их вручную.
За день до теста Open AI снизили стоимость на chatgpt в 10 раз и мы предполагаем, что поэтому случился перегруз.

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

Подбирали коэффициент креативности

Также во время тестов мы подбирали значения двух параметров:

  • temperature - параметр, отвечающий за креативность модели

  • frequency_penalty - отвечает за частоту повторения уже существующих слов, чем выше параметр, тем модель пытается использовать новые, ранее не встречавшиеся в тексте слова

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

Например, когда мы поднимали frequency_penalty, генератор стал назначать сроки ответа на письмо, придумывать новые адреса, на которые кандидат должен ответить или говорить, что Самокат - это интернет-магазин электрического транспорта))

Чтобы подобрать идеальную комбинацию, мы меняли значения параметров с шагом 0.05 и генерировали несколько десятков писем, чтобы оценить эффект изменений.

Пример

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

Специально оставил скрином :) Реально сгенерированное письмо: пока неидеально, но уже лучше многих шаблонов.
Специально оставил скрином :) Реально сгенерированное письмо: пока неидеально, но уже лучше многих шаблонов.

Где можно потыкать

Мы сделали открытый генератор, его можно использовать 1 раз в день. Созданное письмо упадет к вам на почту.

Какой функционал у нас уже есть, но мы его пока намеренно не выкатили

Пока мы сделали бета-версию, чтобы отладить промпт и посмотреть, как его будут использовать рекрутеры. Что мы сделаем ещё:

  1. Сообщение в Телеграме vs Письмо Рекрутер сможет выбрать: написать короткое неформальное сообщение для мессенджера или письмо, в котором будет больше деталей.

  2. Тональность Можно выбрать: формальное / неформальное / креативное сообщение.

  3. Добавление бенефитов, рассказа о компании, важных деталей в свободном виде. Это позволит нам сделать письма ещё более персональными и ещё больше совпадающими с tone of voice конкретной компании.

В общем, если теперь увидите письмо от рекрутера, возможно, его написал ChatGPT.

Комментарии (21)


  1. SergeyDeryabin
    21.04.2023 05:22
    +3

    Слишком большая форма. Чат может все сам взять из описания вакансии.

    Я сделал обратный сервис, адаптация резюме и написание Cover Letter, но только на английском все: https://t.me/AiJoberBot

    Получается chatGPT сам с собой переписывается )


  1. IvanPetrof
    21.04.2023 05:22
    +7

    Следующий шаг - chat-бот разработчика, отвечающий на письма chat-бота рекрутёра.


    1. Xeldos
      21.04.2023 05:22

      Следующий шаг это видеоинтервью с Deepface, Chat-GPT, ну и говорителем. С обеих сторон.


      1. dzhiharev
        21.04.2023 05:22

        И в итоге компания нанимает на работу GitHub Copilot :)


  1. ivankudryavtsev
    21.04.2023 05:22
    +3

    Кажется для рекрутеров нужен сервис оценки попадания резюме по вакансии, а потом уже Сережа напишет...


  1. csharpreader
    21.04.2023 05:22
    +1

    Разработчики недовольны тем, какие сообщения и письма они получают. Не хочется чувствовать, что ты 10-ый в очереди на получение «классной возможности».

    Достаточно из фразы «Илья, здравствуйте!» не забыть убрать имя Илья и поставить именно моё, и вот вам уже +1 довольный получатель письма )


    1. csharpreader
      21.04.2023 05:22
      +8

      Пример плохой переписки


      1. vassabi
        21.04.2023 05:22

        иногда мне кажется что это не просто "плохая переписка", а специальный фильтр. Продолжил общение - значит отсеялся.


  1. panzerfaust
    21.04.2023 05:22
    +4

    Мы взяли вакансию СберМаркета и сгенерили для них письмо

    Не вижу никаких драматических изменений относительно обычных "человеческих" писем. Выглядит как оверинжиниринг: использовать неимоверно мощную вычислительную систему для результата, который достижим на текстовых генераторах двадцатилетней давности. Если вы бились за скорость, то наверное у вас получилось. Если за качество - очень сомнительно.

    Лично для меня все эти душные комплименты о том, какой я великий спец, скорее отталкивающий фактор. Идеальное письмо для меня это что-то вроде припева песни Pussy группы Rammstein: "ты джавист, у нас работа для джависта - так чего же мы ждем". Далее я могу отбросить данное предложение по ряду причин от технических до моральных. И все они в моей голове - так что AI тут бессилен.


    1. akurilov
      21.04.2023 05:22
      +5

      бывает "ты явист, а у нас ява скрипт, чего же мы ждём" ?


      1. panzerfaust
        21.04.2023 05:22

        Где гарантия, что Чят не пошлет такое человеку, который 5 лет был фулстеком на джаве/ангуляре, а теперь решил чисто в бэкенд уйти? Да, наверное, можно оттюнить. Так и в рекрутеры можно людей с улицы не нанимать.


  1. APaMazur
    21.04.2023 05:22
    +5

    А может не надо Сереже писать двадцать писем в день, а надо пять, но поверхностно разобравшись, собственно, в предметной области прорабатываемой вакансии?

    Чтобы не писать потом из двадцати писем восемнадцать в духе "я вижу у вас опыт с фреймворком А, я слышал это почти то же самое, что фреймворк Б (нет), давайте потратим кучу времени на увлекательное общение про компанию, которая неинтересна вам, а вы неинтересны ей"?

    Иначе это письмо мало отличается от вашего "холодного" примера, просто там сразу видно, что письмо писалось на пофиг по всей базе контактов, а тут видно, что рекрутер не въехал в предметную область вакансии... Что лучше - вопрос, потому что второе таки может породить ненужное и вредное общение, которое в итоге потратит реально много времени в пустую, причем уже не только рекрутера, но и потенциального кандидата, который начнет распрашивать не попутали ли вы там чего (и кандидатов таких при таком подходе может выйти много), а потом будет еще одним человеком, который рекрутеров сразу в ЧС добавляет.

    А когда в предметной области разобрался - там и на "генерацию персонального письма" времени уходит совсем немного, потому что сразу видишь ключевое и подходит ли кандидат.


  1. lea
    21.04.2023 05:22
    +4

    теперь ChatGPT пишет вам вместо рекрутеров

    Можно испытывать меньше угрызений совести, игнорируя очередную потрясающую (в основном своей нерелевантностью) вакансию


  1. Apoheliy
    21.04.2023 05:22
    +4

    Пока это (статья) напоминает хвалебные оды во времена массовых почтовых рассылок: раньше вы рассылали 20 рекламных писем, а с сервисом ззз вы будете рассылать 200000 рекламных писем за то же время и небольшую копеечку. И конверсия повысится, клиенты придут (... другие обещания).

    Ну а результат такого действа всем хорошо известен: без спам-фильтра практически не обходится ни один почтовый сервис.

    С нешаблонными письмами тоже бы хотелось увидеть что в результате получилось. Стали больше нанимать? Стали больше нанимать, но не пойми кого? Стали меньше нанимать, но качественнее? Что по результатам такой мини-революции?

    Да, и тема ... не раскрыта: Варя зацепила Сергея письмом? (Это сарказм)


  1. AndreySu
    21.04.2023 05:22
    +2

    ChatGPT мне пишет письма от миени рекрутеров вот уже несколько лет, или по крайней мере их не отличить.


  1. monte1977
    21.04.2023 05:22
    +3

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

    Почему я должен тратить кучу времени на все эти ответы, поездки, разговоры и нервы. Мне эа это никто не платит, в отличии от рекруторов.


    1. SergeyDeryabin
      21.04.2023 05:22
      -1

      Хм, если не интересно, значит не надо тратить время на разговоры, поездки.

      Раз тратите, значит видите для себя какую-то выгоду, материальную, лучшие условия, интереснее работа. За эту возможность для вас вам надо еще и заплатить?


      1. monte1977
        21.04.2023 05:22

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

        Мне никто не платит, а дают аванс, в счёт будущей зарплаты. Ведь по мнению рекрутера я подхожу 100%. При этом вы не должны сомневаться в его компетентности и в том, что он вам пишет и говорит.


        1. SergeyDeryabin
          21.04.2023 05:22
          -1

          А если в результате ваша компетенция окажется не такой радужной как описано, а опыт окажется парой курсов с пет проектами и накинутыми годами опыта на реальном проекте. И в целом душный и токсичный.


          1. monte1977
            21.04.2023 05:22
            +1

            А что если рекрутер занимается красивым разводом кандидатов, используя все возможные уловки и вырывает их с рабочего процесса, делает всякие обещания, фирма коморка папы Карло и так далее, при этом вам уже обещали золотые горы, но из личного опыта, по виду всего, вы на 100% уверены, что в этой фирме вы работать не будете.

            Одно дело, когда вы сами мельдуютесь и ищите работу и другое, когда вас обрабатывает рекрутер.

            Возможно фирмы уже и сами эту проблему заметили. В последнее время вижу в письмах рекрутеров: мол я сам работал и был разработчиком.

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


    1. Robastik
      21.04.2023 05:22

      Тестовая зарплата

      Отличная идея! Раз можно получать тестовые решения безответно, то почему бы не получать так же зарплату?