Логотип

HR-Space: маркетплейс для подбора персонала

WebB2BSaaSDjangoPythonReactNext.js

О клиенте

Крупная компания в сфере интернет-рекрутмента развивает HR-стартап — маркетплейс, где работодатели размещают заявки на подбор, а рекрутеры берут поиск в работу.

Задача

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

Особенности

  • Унаследованный Django-монолит без документации — старт с технического аудита

  • Аутстаффинг: специалистов подключали под конкретные задачи, а не на постоянную ставку

  • React-приложения внутри Django без отдельного микрофронтенд-контура

  • HTTP и WebSocket на одном домене: uWSGI для запросов, Daphne для чата

  • Переход на Python 3 с параллельными репозиториями и поэтапным выводом в продакшн

Проект в цифрах

1+ год

развития платформы после аудита

6

продуктовых модулей

3

фоновые задачи рейтинга

2

компоненты рейтинга: субъективная и объективная

2

транспорта за Nginx: HTTP и WebSocket

FSD

архитектура нового фронтенда на Next.js

О продукте

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

За время сотрудничества команда доработала документооборот, чат, расчет стоимости услуг, рейтинг исполнителей, каталог специализаций и сценарии микрозаказов. Параллельно заложили основу для нового фронтенда на Next.js и TypeScript.

Проблема

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

Решение

После аудита и стабилизации команда сфокусировалась на продуктовых модулях: PDF-оферты, WebSocket-чат, React-калькулятор, рейтинг рекрутеров, каталог специализаций, микрозаказы и каркас фронтенда на Next.js.

Функциональные возможности

Аудит

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

Как проходил аудит и что нашли в кодовой базе, описано в отдельной статье

Читать в блоге

Оферты

Генератор PDF-оферт перевели с устаревшего pdfbuilder на WeasyPrint. Шаблоны собираются из HTML, документ сохраняется в хранилище и доступен пользователю в личном кабинете.

Чат

Асинхронный чат между заказчиком и рекрутером реализован на WebSocket через Django Channels. Nginx маршрутизирует HTTP-запросы в uWSGI, а WebSocket-соединения — в Daphne. Redis выступает брокером сообщений.

Калькулятор

React-приложение для расчета стоимости услуг встроено в Django-монолит. Формат передачи данных между API и интерфейсом согласовывали итеративно, пока не нашли рабочий контракт для обеих сторон.

Рейтинг

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

Специализации

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

Микрозаказы

В личном кабинете заказчика появился отдельный экран микрозаявок и кнопка «Заказ выполнен» с бизнес-логикой закрытия. Настроили лимит на число исполнителей и правила видимости заявок для разных ролей.

Фронтенд

Специалист по фронтенд-архитектуре подготовил каркас приложения на Next.js и TypeScript: eslint под FSD, UI-kit, axios с кэшированием, описание архитектуры и пример для онбординга новых разработчиков.

Интеграции

Поддержали связку с внешними сервисами заказчика: Telegram-бот для уведомлений, обмен с 1С и существующие интеграции материнской компании. Изменения вносили без остановки работающего продукта.

Качество

QA-инженер подготовил тест-план и тест-кейсы, провел смоук-тесты релизов после перехода на Python 3 и регрессию ключевых сценариев маркетплейса.

Результаты

За год платформа получила асинхронный чат, рейтинг рекрутеров, React-калькулятор, обновленный каталог специализаций, микрозаказы и основу фронтенда на Next.js.

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

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

Нужна команда для развития HR-платформы или маркетплейса услуг? Получите план работ под ваш продукт!

Получить план

Персональная консультация по проекту

Закажите бесплатную консультацию с основателем Work Solutions и узнайте:

  • Подойдет ли вашим целям коробочное ПО или требуется индивидуальная разработка

  • Как будет проходить создание цифрового продукта, а также сроки и бюджеты

  • Чтобы не беспокоить вас звонками, мы напишем в мессенджер для выбора удобного канала связи

Чтобы мы лучше подготовились к беседе.