Software description: functions and features

Our customer is a company specializing in the selection of highly qualified personnel in various industries.

As a result of the high demand for recruitment services, our customer faced the problem of efficient time distribution: employees had to spend a lot of time to conduct routine initial interviews of candidates.

Therefore, there was a need to create a tool that allowed to automate the interviewing process.

Customer requirements

It was necessary to create a system with an easy to understand interface that allowed:

  • To create unique sets of questions for each vacancy;
  • To conduct unique interviews that met the requirements of a particular vacancy;
  • To be interviewed without specialized equipment;
  • To be interviewed without installing a third-party software or plug-ins by candidates;
  • To provide an easy access to the recordings of interviews passed by candidates.

Our team solved the following tasks:

  • Analysis of the customer's requirements;
  • Analysis of the customer's existing business model of interaction with third-party recruiters;
  • Creating a technical task;
  • Designing and prototyping software interfaces which correspond to the generally accepted UX/UI requirements;
  • UI development;
  • Implementing a storage and processing system using databases;
  • Front-end and back-end parts programming;
  • Creation of an administrative unit for recruitment agency staff;
  • Compiling documentation on the basic functions of the system;
  • Customer training to use this system.
Details of the implementation

The customer set a task to have the automatic video interviewing system available to any PC and broadband Internet user without installing any third-party plug-ins or any other software. Therefore, our main task during the project implementation was the choice of the way to transfer video from the browser to the server. There are two main options:

  1. Streaming video. This way, the recorded video is sent to the server in small parts using a web socket - an open data exchange channel between the browser and the server.
  2. Complete video recording on the customer's side. In this case, a full video file is recorded at customer’s, after which the file is sent to the server.

The downside of the streaming method is the lack of steady reliability in case of poor communication channel. Short-term communication break-downs (e.g. because of unstable wi-fi) or a weak communication channel necessitate the complexity of the working algorithms, which inevitably leads to an increase in loads during the product testing phase. At the same time the streaming method reduces the time of transferring video to the server, as the video transmission begins with the first second of the video response to the question.

The second method also has its drawbacks, namely, the sending of the whole file begins only after the answer to the question is over. So, the processes of recording and transmitting video responses are in a consecutive dependence on each other and the time of interview processing and passing can increase by many times. At the same time, this method is very easy to implement.

Our team offered the following solutions:

  • It was decided to conduct the processes of recording and sending video files from the client to the server parallelly. The transfer will begin after the first question is answered, but the user does not need to wait for the video file to be uploaded to start answering the next question - the sending will be in the background in parallel with next questions. Thus, the time of the video interview practically does not increase compared to the implementation of the first option.
  • If an Internet connection is unstable, to avoid losing the recorded reply file (as it would be with partial transmission in case of the first option), the stored video file will be re-sent by the system until it is successfully sent to the server.

Taking into account the above advantages, the customer chose the second way of implementation.

WebRTC (Web Real Time Communication) is the most convenient and cross-browser technology for video and camera work at the moment. The video was recorded and stored with its help.


The created video interview system is able to automate the initial stage of candidate selection without the direct participation of HR specialists.

The result of our work is a product that has become an indispensable service for companies from a huge number of industries, as it is a universal tool for selecting specialists.

The system can be integrated with other recruitment-focused information systems.

This product does not require special training and knowledge to be successfully used in the process of problem solving while selecting specialists.


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.

Project benchmarks
  • Unit-test coverage: 95%
  • Duration: 15 months
  • Project team: 7 developers
  • Business processes: 14
  • Complexity: 8 out of 10