Создание системы автоматического видеоинтервьюирования

Описание ПО: функции и особенности

Наш заказчик — компания, специализирующаяся на подборе высоко- квалифицированного персонала в различных отраслях.

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

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

Требования заказчика

Необходимо было создать систему с интуитивно понятным интерфейсом, позволяющую:

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

Нашей командой были реализованы следующие задачи:

  • анализ требований заказчика;
  • анализ существующей бизнес-модели взаимодействия компании заказчика со сторонними рекрутерами;
  • формирование технического задания;
  • проектирование и прототипирование интерфейсов ПО с точки зрения соответствия общепринятым требованиям UX/UI;
  • разработка пользовательского интерфейса;
  • реализация системы хранения и обработки данных с использованием
    реляционных БД;
  • программирование front-end и back-end частей;
  • создание административной части для cотрудников агентства по подбору персонала;
  • написание документации по основному функционалу системы;
  • обучение заказчика пользованию данной системой.
Подробности реализации

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

1) Потоковая передача видео. При этом способе записанное видео отправляется на сервер небольшими частями с использованием websocket - открытого канала обмена данными между браузером и сервером.

2) Полная запись на стороне клиента. В данном случае на стороне клиента осуществляется запись полного видеофайла, после чего осуществляется его отправка на сервер.

Недостаток потокового способа заключается в отсутствии надежности работы при плохом канале связи. При кратковременных обрывах связи (например, через нестабильный wi-fi) или слабом канале связи возникает необходимость в усложнении алгоритмов работы, что неизбежно приводит к увеличению нагрузок на этапе тестирования продукта. Но при этом потоковый способ позволяет уменьшить время передачи видео на сервер, так как передача видео начинается с первой секунды записи видеоответа на вопрос.

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

Нашей командой были предложены следующие решения:

  • было решено распараллелить процессы записи и отправки видеофайлов от клиента на сервер. Передача будет начинаться после окончания ответа на первый вопрос, но пользователю не требуется дожидаться загрузки на сервер видеофайла для перехода к следующему вопросу - отправка будет осуществляться в фоновом режиме параллельно с записью следующих вопросов. Таким образом, время прохождения видеоинтервью практически не увеличивается по сравнению с реализацией способом 1.
  • при нестабильном интернет-соединении для избежания потери записанного файла с ответом (как было бы в случае реализации первым способом частичной передачи), сохраненный видеофайл будет повторно отправляться системой до тех пор, пока отправка на сервер не завершится успешно.

Учитывая вышеперечисленные преимущества, заказчик выбрал второй способ реализации.

Максимально удобной на данный момент и кроссбраузерной технологией для работы с видео и камерой является WebRTC (Web Real Time Communication). Запись и хранение видео были реализованы с её помощью.

Результат

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

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

Систему можно интегрировать с другими информационными системами, ориентированными на подбор персонала.

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

Технологии

Frontend: WebRTC, React, Redux, material-ui, bootstrap 4, react-router-dom.

Backend: python 3.6, django 2.0, django rest framework 3.8, postgreSQL 10.

Масштаб проекта
  • Длительность проекта: 6 месяцев.
  • Количество бизнес-задач: 14.
  • Покрытие unit-тестами: 95%.
  • Команда проекта: 7 человек.
  • Сложность проекта: 8 из 10.