В мире, где технологии стремительно развиваются, HR-специалисты и рекрутеры сталкиваются с новыми вызовами. Отбор кандидатов, оценка их навыков и компетенций, а также составление тестовых заданий — все это требует значительных временных и человеческих ресурсов.
Но что, если можно было бы автоматизировать значительную часть этих процессов, сохранив при этом высокий уровень точности и персонализации?
В этой статье мы рассмотрим, как использование LLM (Large Language Models) может помочь в подборе персонала и оценке кандидатов, делая процесс более эффективным и результативным. В конце статьи поделюсь ссылкой на телеграм бота, чтобы вы могли сами проверить, как это работает.
Немного предыстории
Обычно в крупных компаниях подбором кандидатов занимаются отдельные сотрудники (иногда даже отдельные организации), которые мониторят разные источники резюме. Как правило, этим занимаются выделенные сотрудники HR (внутренние или внешние). И в целом это позволяет ускорить процесс найма, но все равно отнимает много времени у нанимающих руководителей и тех. экспертов. Попробую описать как выглядит типовой процесс подбора в ИТ:
Тех. эксперты пишут требования к кандидатам и передают HR или ИТ бирже (если компания привлекает внешних подрядчиков). Часто они же и составляют описание вакансии.
HR ищут подходящих кандидатов на "работных" сайтах типа HH.ru и присылают список резюме тех. экспертам. Качество этой подборки сильно зависит от
чуйкиквалификации и опыта HR.Тех. эксперты изучают подборку резюме и указывают HR, с кем нужно запланировать интервью. Качество оценки так же сильно зависит от опыта тех. эксперта или нанимающего руководителя. Часто те самые тех. эксперты заняты срочными/горящими задачами и оценкой занимаются менее опытные сотрудники. И это так же не уменьшает количество повторений шагов 2-5.
HR связываются с кандидатами и предлагают пройти интервью. На этом этапе часть отобранных кандидатов уже отваливается, потому что между шагами 2 и 3 проходит немало времени. Основная причина: кандидаты с хорошим опытом быстро находят работу в другой компании, пока их резюме пройдут через несколько этапов отбора.
Кандидат проходит интервью с тех. экспертом. Если интервью не пройдено или кандидата не устроили условия, то шаги 2-4 повторяются заново. Очень часто они повторяются пока не наберется нужное количество кандидатов в воронке.
Очевидно нужно сокращать время на отбор резюме и повышать качество их оценки, чтобы на интервью как можно скорее попадали только кандидаты с наиболее релевантным опытом.
LLM нас спасут
И тут нам на помощь приходят LLM, которым можно поручить:
Грамотно и быстро составить описание вакансии
Быстро оценить резюме по совокупности требований к кандидату
Грамотно и быстро составить план интервью и тестовое задание в соответствии с перечнем требований
Сгенерировать проверочные тесты в соответствии с перечнем требований
Оценить тестовое задание или результаты теста
Автоподбор кандидатов в соответствии с перечнем требований
Теперь подробнее по каждому пункту.
1. Генерация описания вакансии
Решение: Укажите позицию и требования через промпт, а LLM сгенерирует привлекательное и информативное описание вакансии, учитывая все нюансы и ключевые слова для эффективного поиска.
Это позволит сэкономить время и избежать ошибок, связанных с ручным составлением текста.
Пример автоматически сгенерированного описания вакансии:
Присоединяйтесь к нашей команде и работайте над сложными и интересными проектами!
Мы ищем опытного Senior Java Разработчика, который будет работать над разработкой высокопроизводительных и масштабируемых приложений на основе Java. Если вы имеете опыт работы с Java 11+, Spring Boot, Spring Security, Kafka, Hibernate и другими современными технологиями, то эта вакансия для вас!
Требования:
Опыт работы с Java 11+ от 3 лет
Знание Spring Boot, Spring Security, Kafka, Hibernate
Опыт работы с kubernetes или openshift
Опыт работы с LiquiBase и СУБД PostgreSQL
Знание SQL
Опыт работы с Apache Kafka
Опыт работы с инструментами Git/Mercurial
Умение проектировать и реализовывать эффективные модульные тесты
Уверенное знание принципов работы HTTP, REST и микросервисных паттернов
Что мы предлагаем:
Возможность работать над сложными и интересными проектами
Коллектив опытных разработчиков, готовых делиться знаниями и опытом
Возможность роста и развития в компании
Конкурентная зарплата
Дополнительные льготы и бонусы
Диапазон зарплат:
250 000 - 400 000 рублей в месяц (в зависимости от опыта и квалификации)
Если вы заинтересованы в этой вакансии, пожалуйста, отправьте нам свое резюме и мотивационное письмо.
2. Автоматическая оценка резюме по перечню требований
Конечно на том же hh.ru уже есть сервис по ранжированию кандидатов в соответствии с требуемым опытом, но он не учитывает множественность критериев оценки. Например, когда ищут senior java разработчика, в требованиях помимо знаний java указывается еще целый набор требований:
java 11+ от 3 лет
знание Spring Boot, Spring Security, Kafka, Hibernate;
опыт работы с kubernetes или openshift;
опыт работы с LiquiBase и СУБД PostgreSQL;
знание SQL;
опыт работы с Apache Kafka;
опыт работы с инструментами Git/Mercurial; умение проектировать и реализовывать эффективные модульные тесты;
уверенное знание принципов работы HTTP, REST и микросервисных паттернов;
Кандидат может иметь опыт разработки на Java, но не иметь опыта работы по всем остальным.
Решение: загрузите резюме, укажите требования через промпт, и LLM предоставит развернутую оценку соответствия по каждому требованию, выделяя сильные и слабые стороны кандидата. Анализ идет глубже простого сопоставления навыков: LLM оценивает опыт, образование и даже стиль письма, предоставляя вам полную картину.
Пример автоматической оценки конкретного резюме:
Иванов Иван Иванович, 8,5/10
Выжимка: Кандидат имеет опыт работы в качестве Java-разработчика в течение 3 лет и 3 месяцев. Он работал с различными технологиями, включая Java 11+, Spring Boot, PostgreSql, Kafka и Docker. У него есть опыт работы с микросервисной архитектурой и участие в обсуждении архитектурных решений.
Оценка по каждому требованию:
Java 11+ от 3 лет: 10/10 (кандидат имеет опыт работы с Java 11+ в течение 3 лет)
Знание Spring Boot, Spring Security, Kafka, Hibernate: 8/10 (кандидат имеет опыт работы с Spring Boot, Kafka, но не упоминает о Spring Security и Hibernate)
Опыт работы с Kubernetes или OpenShift: 0/10 (кандидат не упоминает о Kubernetes или OpenShift)
Опыт работы с LiquiBase и СУБД PostgreSQL: 10/10 (кандидат имеет опыт работы с LiquiBase и PostgreSQL)
Знание SQL: 10/10 (кандидат имеет опыт работы с SQL)
Опыт работы с Apache Kafka: 10/10 (кандидат имеет опыт работы с Kafka)
Опыт работы с инструментами Git/Mercurial: 10/10 (кандидат имеет опыт работы с Gitlab)
Умение проектировать и реализовывать эффективные модульные тесты: 10/10 (кандидат имеет опыт работы с JUnit и Mockito)
Уверенное знание принципов работы HTTP, REST и микросервисных паттернов: 10/10 (кандидат имеет опыт работы с REST и микросервисной архитектурой)
Зарплата по рынку: 120 000 - 150 000 рублей в месяц.
3. Составление плана интервью и тестового задания в соответствии с перечнем требований
Если вы еще не набили руку, проведя десятки интервью, то нужно составить четкий план интервью и критерии оценки.
Решение: укажите требования через промпт и LLM составит план интервью с учетом вашей специфики и подготовит релевантное тестовое задание, позволяющее оценить практические навыки кандидата. Больше никаких шаблонных вопросов!
Пример автоматически составленного плана интервью:
План собеседования для проверки hard и soft skills кандидата на позицию senior java разработчика:
Часть 1: Введение и общая информация (10-15 минут)
Представление себя и компании
Обсуждение целей и ожиданий от собеседования
Краткое ознакомление с резюме кандидата
Часть 2: Технические вопросы (40-50 минут)
Java:
Какие особенности Java 11+ вы знаете и как их применяете в своей работе?
Как вы организуете код в своих проектах? (например, использование паттернов проектирования)
Как вы решаете проблемы с производительностью в своих приложениях?
Spring Boot:
Как вы используете Spring Boot в своих проектах?
Как вы конфигурируете приложения Spring Boot?
Как вы решаете проблемы с безопасностью в своих приложениях Spring Boot?
Spring Security:
Как вы используете Spring Security в своих проектах?
Как вы конфигурируете аутентификацию и авторизацию в своих приложениях?
Как вы решаете проблемы с безопасностью в своих приложениях Spring Security?
Kafka:
Как вы используете Kafka в своих проектах?
Как вы конфигурируете продюсеры и консьюмеры в своих приложениях?
Как вы решаете проблемы с производительностью в своих приложениях Kafka?
Hibernate:
Как вы используете Hibernate в своих проектах?
Как вы конфигурируете маппинг объектов в своих приложениях?
Как вы решаете проблемы с производительностью в своих приложениях Hibernate?
PostgreSQL:
Как вы используете PostgreSQL в своих проектах?
Как вы конфигурируете базы данных в своих приложениях?
Как вы решаете проблемы с производительностью в своих приложениях PostgreSQL?
LiquiBase:
Как вы используете LiquiBase в своих проектах?
Как вы конфигурируете миграции баз данных в своих приложениях?
Как вы решаете проблемы с производительностью в своих приложениях LiquiBase?
Kubernetes/OpenShift:
Как вы используете Kubernetes/OpenShift в своих проектах?
Как вы конфигурируете контейнеры и сервисы в своих приложениях?
Как вы решаете проблемы с производительностью в своих приложениях Kubernetes/OpenShift?
Часть 3: Soft skills и опыт работы (30-40 минут)
Как вы работаете в команде? Как вы общаетесь с коллегами?
Как вы решаете конфликты в команде?
Как вы организуете свою работу? Как вы планируете свои задачи?
Как вы отчитываетесь о своей работе? Как вы предоставляете отчеты о проделанной работе?
Как вы узнали о нашей компании? Что вас привлекло в нашей компании?
Как вы видите свою карьеру в нашей компании? Как вы планируете развиваться в нашей компании?
Часть 4: Вопросы кандидата (10-15 минут)
У кандидата есть возможность задать вопросы о компании и о позиции
Часть 5: Заключение (5-10 минут)
Подведение итогов собеседования
Обсуждение следующих шагов в процессе отбора
Ссылки на литературу для подготовки:
"Java: полное руководство" (Herbert Schildt)
"Spring Boot: полное руководство" (Craig Walls)
"Spring Security: полное руководство" (Rob Winch)
"Kafka: полное руководство" (Neha Narkhede)
"Hibernate: полное руководство" (Christian Bauer)
"PostgreSQL: полное руководство" (Simon Riggs)
"LiquiBase: полное руководство" (Nathan Voxland)
"Kubernetes: полное руководство" (Brendan Burns)
"OpenShift: полное руководство" (Grant Shipley)
Примечание: Вопросы и темы могут быть изменены или дополнены в зависимости от конкретных требований и ожиданий компании.
4. Генерация тестов
Чтобы заранее понять соответствие кандидата вашим требованиям можно составить онлайн тест и предложить его пройти.
Решение: для более глубокой оценки компетенций кандидата попросите LLM автоматически сгенерировать тесты, соответствующие требованиям вакансии. Эти тесты могут включать вопросы на проверку знаний, навыков и личных качеств, что помогает получить более полное представление о кандидате.
Приведу здесь пример автоматически сгенерированного теста для senior java разработчика. Попробуйте пройти и потом оценить свои знания))
5. Оценка тестового задания или результатов теста
Чтобы сэкономить время на проверке тестовых заданий и пройденных тестов можно так же поручить эту задачу LLM.
Решение: укажите требования через промпт, загрузите выполненное задание или укажите ссылку на тест, и LLM предоставит развернутую оценку выполненного задания по каждому требованию, а также даст общие рекомендации.
Пример автоматической оценки пройденного теста:
Оценка результатов тестирования кандидата на позицию senior java разработчик:
Общая оценка: 2/10
Анализ результатов:
Кандидат не смог предоставить удовлетворительные ответы на большинство вопросов, что вызывает сомнения в его компетенции и опыте в области Java и связанных технологий.
На вопросы о Java 11+, Spring Security, Kafka и Hibernate кандидат дал ответы, которые можно охарактеризовать как "фывфывыв" или "фывыфв", что не дает никакой информации о его опыте и знаниях в этих областях.
На вопросы о Kubernetes или OpenShift, LiquiBase и SQL кандидат дал ответы, которые демонстрируют отсутствие знаний и опыта в этих областях.
На вопросы о Apache Kafka, Git/Mercurial и микросервисных приложениях кандидат дал ответы "не знаю", что демонстрирует полное отсутствие знаний и опыта в этих областях.
Рекомендации:
Кандидат не соответствует требованиям к позиции senior java разработчик и не имеет необходимых знаний и опыта в области Java и связанных технологий.
Рекомендуется рассмотреть других кандидатов, которые имеют более подходящий опыт и знания в области Java и связанных технологий.
Если кандидат хочет улучшить свои шансы на эту позицию, ему рекомендуется пройти дополнительное обучение и получить опыт в области Java и связанных технологий.
6. Автоподбор кандидатов*
Чтобы не тратить много времени на просмотр резюме, можно поручить эту задачу RAG (Retrieval Augmented Generation).
Решение: для более качественной подборки кандидатов в соответствии с вашими требованиями создайте базу знаний из резюме кандидатов, и подайте вместе с промптом на вход LLM. На основе вашей информации LLM предоставит общую оценку по каждому из наиболее подходящих под ваши требования кандидатов, ранжируя их по релевантности.
Пример автоподбора кандидатов на hh.ru:
После оценки кандидатов, я получил следующие результаты:
Java-разработчик (https://hh.ru/resume/690987270007e68d700039ed1f6d7673666f56) Оценка: 9,6/10 Обоснование: Кандидат имеет опыт работы с Java 8-17, Spring Boot, Spring Security, Spring Data, Liquibase, PostgreSQL, Kafka, Docker, Kubernetes, Git, Mercurial, JUnit, Mockito, Testcontainers, ELK stack, Swagger. Он также имеет опыт работы с Linux, Maven, Redis streams.
Java-разработчик (https://hh.ru/resume/f7995e2f000792a9e60039ed1f6f4355545344) Оценка: 9,4/10 Обоснование: Кандидат имеет опыт работы с Java 11, Spring Boot, Spring Security, Spring Data, Liquibase, PostgreSQL, Kafka, Docker, Kubernetes, JUnit, Mockito, Testcontainers, ELK stack, Swagger. Он также имеет опыт работы с Agile Scrum, микросервисами, REST API, интеграционными и Unit тестами.
Java Developer (https://hh.ru/resume/35025c7600040307940039ed1f47446b4e674e) Оценка: 2/10 Обоснование: Кандидат имеет опыт работы с Spring MVC, JPA/Hibernate, Spring Boot, Spring Data, но не имеет опыта работы с Java 11+, Liquibase, PostgreSQL, Kafka, Docker, Kubernetes, Git, Mercurial, JUnit, Mockito, Testcontainers, ELK stack, Swagger.
Java Developer (https://hh.ru/resume/ab21064d0002c3a9b00039ed1f733859467973) Оценка: 2/10 Обоснование: Кандидат имеет опыт работы с Java 8+, Spring Boot, Spring Data, Spring Security, REST, Gradle, Maven, Docker, AWS, MySQL, Postgres, RDS, DynamoDB, H2, Git, Linux, Windows, Mac, но не имеет опыта работы с Java 11+, Liquibase, PostgreSQL, Kafka, Docker, Kubernetes, Git, Mercurial, JUnit, Mockito, Testcontainers, ELK stack, Swagger.
Java Developer (https://hh.ru/resume/707790d900036242800039ed1f39417462454c) Оценка: 1,8/10 Обоснование: Кандидат имеет опыт работы с Java 8, Spring Boot, Spring Security, REST API, PostgreSQL, Jasper Studio, XML, но не имеет опыта работы с Java 11+, Liquibase, PostgreSQL, Kafka, Docker, Kubernetes, Git, Mercurial, JUnit, Mockito, Testcontainers, ELK stack, Swagger.
Заключение
В заключение хочется подчеркнуть, что использование LLM в подборе персонала — это не просто технологическая новинка, а реальный инструмент, который может существенно повысить эффективность работы HR-специалистов и рекрутеров. Автоматизация рутинных задач, таких как составление описаний вакансий, оценка резюме и генерация тестовых заданий, позволяет освободить время для более важных и творческих аспектов работы, таких как личное общение с кандидатами и стратегическое планирование.
Как и обещал в начала статьи, делюсь ссылкой на телеграм бота.
Ну и конечно же пишите свои мысли в комментах.