Главное о кейсе
Ежедневно сервис обрабатывает и классифицирует 200+ запросов из 50+ каналов и чатов.
Точность автоматической классификации на текущий момент более 80% (8 из 10 запросов классифицируются корректно).
У менеджеров больше нет ежедневных трудозатрат на мониторинг каналов с запросами.
Модуль аналитики показывает динамику изменения спроса на рынке в разрезе технологий, спроса и предложения, что позволяет принимать управленческие решения на основе репрезентативных данных.
Благодаря мониторингу менеджеры получают уведомления и реагируют на релевантные запросы в течение часа с момента их появления.
Every day, the service processes and classifies 200+ requests from 50+ channels and chats.
The accuracy of automatic classification is currently more than 80% (8 out of 10 queries are classified correctly).
Managers no longer have the daily labor of monitoring request channels.
The analytics module shows the dynamics of changes in market demand in the context of technologies, supply and demand, which allows you to make management decisions based on representative data.
Thanks to monitoring, managers receive notifications and respond to relevant requests within an hour of their occurrence.
Бизнес-задача и ее решение
Основная проблема в том, что организовать регулярный мониторинг силами людей сложно и дорого: люди иногда спят и отдыхают, а из-за большого потока информации очень просто пропустить релевантный запрос.
Для решения проблемы мы разработали внутренний сервис, который мониторит все источники (парсинг), при помощи машинного обучения самостоятельно классифицирует по необходимым параметрам все запросы и предоставляет менеджерам интерфейс для работы с этими данными.
Помимо core-функционала (парсинг и ML-классификация), мы разработали специализированную CRM, которая адаптирована строго под работу с клиентами в формате аутстаффинга.
ПАРСИНГ КАНАЛОВ
Один из важнейших элементов — парсинг телеграмм-каналов. Сейчас осуществляется мониторинг более 50 каналов и чатов (как публичных, так и закрытых). Ежедневный объем обрабатываемых сообщений доходит до 500.
Все полученные сообщения моментально заносятся в базу данных и становятся доступны в интерфейсе сервиса.
ML-КЛАССИФИКАТОР
Наличие ML-классификатора — главная особенность разработанного сервиса.
Мы собрали датасет из нескольких десятков тысяч запросов, произвели его ручную разметку и на основе этих данных обучили разработанную нейросеть самостоятельно классифицировать все запросы по интересующим нас параметрам.
На текущий момент нейросеть умеет:
— определять релевантные и «мусорные» сообщения;
— определять смысл сообщения: это запрос ресурсов или же предложение ресурсов;
— выделять технологический стек, о котором идет речь в сообщении;
— определять необходимый уровень разработчика: junior, middle, senior.
Благодаря этой автоматизации в базу сервиса попадают сразу классифицированные сообщения.
РАБОТА С ЗАПРОСАМИ
Менеджеры на основе их прав доступа могут видят те или иные сообщения.
Лента предоставляет возможность фильтрации сообщений, а также работы с параметрами запросов.
АВТОМАТИЧЕСКИЙ МОНИТОРИНГ ПО ПАРАМЕТРАМ
Каждый менеджер может настроить для себя мониторинг запросов по определенным параметрам (например: «запросы на Middle React разработчиков»). Если в процессе парсинга будет найден такой запрос — менеджер мгновенно получит уведомления в телеграм и на почту.
CRM
CRM разработана с учетом особенностей взаимодействия при работе в формате аутстаффинга. Удобное представление данных по текущим запросам, назначенным интервью и актуальному пулу свободных разработчиков помогают менеджерам держать руку на пульсе и ничего не забывать.
ТЕХНОЛОГИЧЕСКИЙ СТЕК И АРХИТЕКТУРА
Применяется микросервисная архитектура.
Для реализации микросервиса парсинга и ML-классификатора используется Python.
Основной бэкенд работает на Laravel, база данных — PostgreSQL.
Основной фронтенд реализован на React + TypeScript.
The main problem is that it is difficult and expensive to organize regular monitoring by people: people sometimes sleep and rest, and due to the large flow of information, it is very easy to miss a relevant request.
To solve the problem, we developed an internal service that monitors all sources (parsing), uses machine learning to independently classify all requests according to the necessary parameters and provides managers with an interface for working with this data.
In addition to the core-functionality (parsing and ML-classification), we have developed a specialized CRM, which is adapted strictly for working with clients in the outstaffing format.
CHANNEL PARSING
One of the most important elements is the parsing of telegram channels. Now more than 50 channels and chats are being monitored (both public and private). The daily volume of processed messages reaches 500.
All received messages are instantly entered into the database and become available in the service interface.
ML-CLASSIFIER
The presence of an ML classifier is the main feature of the developed service.
We collected a dataset of several tens of thousands of requests, manually labeled it, and based on this data, we trained the developed neural network to independently classify all requests according to the parameters of interest to us.
At the moment, the neural network can:
- identify relevant and "garbage" messages;
- determine the meaning of the message: is it a request for resources or an offer of resources;
- highlight the technology stack referred to in the message;
- determine the required level of the developer: junior, middle, senior.
Thanks to this automation, classified messages immediately enter the service database.
WORKING WITH REQUESTS
Managers, based on their access rights, can see certain messages.
The ribbon provides the ability to filter messages, as well as work with query parameters.
AUTOMATIC MONITORING BY PARAMETERS
Each manager can set up monitoring of requests for certain parameters (for example: “requests for Middle React developers”). If such a request is found during the parsing process, the manager will instantly receive notifications in telegrams and email.
CRM
CRM is developed taking into account the peculiarities of interaction when working in the outstaffing format. A convenient presentation of data on current requests, scheduled interviews and the current pool of free developers help managers keep their finger on the pulse and not forget anything.
TECHNOLOGY STACK AND ARCHITECTURE
A microservice architecture is applied.
Python is used to implement the parsing microservice and the ML classifier.
The main backend runs on Laravel, the database is PostgreSQL.
The main frontend is implemented in React + TypeScript.
Прочая информация о кейсе
Одно из ключевых направлений нашей компании — аутстаффинг разработчиков.
Важный элемент этой модели — оперативный мониторинг спроса на основе размещенных в открытом доступе запросов на ресурсы. Как правило, речь идет о большом количестве Telegram-каналов, в которых запросы появляются в большом количестве круглосуточно и ежедневно.
One of the key areas of our company is outstaffing of developers.
An important element of this model is the operational monitoring of demand based on requests for resources placed in the public domain. As a rule, we are talking about a large number of Telegram channels, in which requests appear in large numbers around the clock and daily.
Скриншоты