Какие задачи решает HR-портал?
В компании с 200 сотрудниками менеджер тратит 10 часов в месяц на согласование отпусков просто пересылая заявления по email. Наш HR-портал автоматизирует этот процесс: сотрудник подаёт заявку из личного кабинета, руководитель утверждает одним кликом, а HR видит календарь занятости. Время согласования сокращается с 2 дней до 5 минут. Аналогично с наймом: обработка 100 откликов вручную занимает день, с ATS — час. Такая экономия окупает разработку за полгода. HR-портал — это корпоративный портал, автоматизирующий рекрутинг, онбординг, управление отпусками, оценку персонала и кадровый документооборот. Мы разработали десятки таких систем, используя современный стек: Laravel 11, Vue 3, PostgreSQL и Redis.
«Автоматизация HR-процессов позволяет сократить время подбора персонала на 40% и снизить текучесть кадров на 25%» — исследование Deloitte.
ATS-модуль обрабатывает отклики в 15 раз быстрее ручного труда.
| Процесс |
Ручной |
Автоматизированный |
| Согласование отпуска |
2 дня |
5 минут |
| Обработка отклика |
30 минут |
2 минуты |
| Онбординг сотрудника |
3 дня |
1 день |
| Генерация приказа |
1 час |
10 секунд |
Как работает система рекрутинга?
Applicant Tracking System (ATS) автоматизирует воронку найма:
Заявка на открытие вакансии → Публикация (hh.ru, LinkedIn, карьерный сайт)
→ Сбор откликов → Первичный скрининг → Телефонное интервью
→ Техническое интервью → Оффер → Нанят
Все кандидаты хранятся в CRM-like интерфейсе с Kanban-доской. Карточка кандидата включает резюме, заметки интервьюеров и оценки. Парсинг резюме с hh.ru через HH API — заявитель кликает «Откликнуться», данные автоматически попадают в ATS. Это сокращает время обработки откликов на 40%.
Что включает онбординг?
Процесс встречи нового сотрудника включает чек-лист задач для HR, IT и самого новичка: получить пропуск, настроить ноутбук, пройти инструктаж. Welcome-пакет с приветственным письмом и регламентами, план 30/60/90 дней и buddy-программа. Автоматизация онбординга сокращает время адаптации в 2 раза.
Управление отпусками без хаоса
Типы отсутствий: ежегодный отпуск, отпуск без сохранения, больничный, командировка, отгул. Для каждого — форма заявления и маршрут согласования (сотрудник → руководитель → HR). Календарь отсутствий по отделу показывает пересечения. Автоматический расчёт остатка дней на основе стажа и использованных дней.
Оценка персонала 360 и KPI
360-градусная оценка: сотрудника оценивают он сам, руководитель, коллеги, подчинённые. Результат — spider-chart с компетенциями. KPI-система с привязкой целей к периоду и отслеживанием прогресса. Performance review проводится раз в полгода.
Кадровый документооборот
Генерация документов по шаблонам: трудовой договор, приказы, справки. Шаблоны с переменными {{employee_name}}, {{position}}, {{salary}}. Генерация PDF через puppeteer или docxtemplater. Это исключает ручную работу и ошибки.
Интеграции: 1С, hh.ru, AD, Telegram
- 1С:ЗУП / БухСофт — синхронизация данных о сотрудниках и зарплате.
- hh.ru API / Habr Career — автопубликация вакансий.
- Active Directory — синхронизация учётных записей.
- Telegram-бот — уведомления о заявлениях и согласованиях.
Сравните: без интеграции вы тратите часы на ручной ввод, с интеграцией — всё автоматически.
Как мы автоматизируем рекрутинг?
Для ATS-модуля используем стек: Laravel 11 на PHP 8.3, Vue 3 с TypeScript и Tailwind. База данных — PostgreSQL, кэш — Redis. Kanban-доска реализована с помощью библиотеки @he-tree/vue3. Парсинг hh.ru — через их официальный API. Процесс автоматизации включает следующие шаги:
- Подключение интеграции с hh.ru через OAuth.
- Настройка Kanban-доски и этапов воронки.
- Настройка email-уведомлений и телеграм-бота.
- Интеграция с Active Directory для единого входа.
- Тестирование и обучение команды.
Сколько времени занимает разработка?
MVP с рекрутингом, онбордингом, управлением отпусками и базовым документооборотом: 3–5 месяцев. Полноценный HR-портал с 360-оценкой, KPI, интеграцией 1С и мобильным доступом: 5–9 месяцев.
| Модуль |
MVP |
Full |
| Рекрутинг (ATS) |
Да |
Да |
| Онбординг |
Да |
Да |
| Управление отпусками |
Да |
Да |
| Кадровый документооборот |
Да |
Да |
| 360-градусная оценка |
Нет |
Да |
| KPI-система |
Нет |
Да |
| Интеграция 1С |
Нет |
Да |
| Мобильное приложение |
Нет |
Опционально |
Как проходит интеграция с 1С?
Интеграция с 1С:ЗУП или БухСофт реализуется через REST API или XML-обмен. Данные о сотрудниках, зарплате и кадровых событиях синхронизируются автоматически. Мы настраиваем polling или webhook для мгновенного обновления. Это исключает двойной ввод и ошибки.
Что входит в нашу работу?
- Анализ бизнес-процессов и проектирование архитектуры.
- Разработка бэкенда (Laravel 11) и фронтенда (Vue 3).
- Интеграция с 1С, Active Directory и hh.ru.
- Документация API и администрирования.
- Обучение команды и передача доступов.
- Поддержка после запуска.
Почему выбирают нас?
- 7+ лет опыта в веб-разработке.
- 30+ реализованных проектов в сфере управления персоналом.
- Индивидуальный подход и фиксированные сроки.
- Полная прозрачность: вы видите прогресс в Trello или Jira.
Готовы обсудить ваш проект? Свяжитесь с нами для консультации — оценим сроки и стоимость. Закажите демонстрацию HR-портала на ваших данных.
Разработка корпоративных порталов и внутренних систем
Мы занимаемся разработкой корпоративных порталов — CRM, ERP, LMS и Intranet. Каждый такой проект начинается не с вёрстки лендинга, а с того, как бизнес-правила лягут в архитектуру: кто видит какие данные, как синхронизируются 1С и учётная система, как 500 контактов превращаются в 500 000 без падения производительности. За 7 лет мы реализовали более 40 порталов для компаний с численностью от 50 до 5000 сотрудников. Оценим ваш проект за два рабочих дня — просто свяжитесь с нами.
Публичный сайт можно запустить без детального проектирования — итеративно править по фидбеку. С корпоративным порталом так не работает: стоимость исправления архитектурных решений после запуска на 200 пользователей несопоставимо выше. Поэтому мы уделяем 70% времени аналитике и прототипированию, а код пишем только после согласования ролевой матрицы и интеграционной схемы.
Три зоны, где чаще всего принимаются плохие решения, — модель прав доступа, производительность на больших данных и real-time обновления.
Как построить ролевую модель для 30 отделов?
Модель прав доступа. «Менеджер видит только своих клиентов, руководитель отдела — весь отдел, директор — всю компанию, но финансовые данные — только финансовый директор и выше». Это не три роли — это матрица из ролей, разрешений, организационных единиц и владения записями. Если это реализовать через if ($user->role === 'manager') в контроллерах — через полгода код станет неподдерживаемым.
Правильный подход: Spatie Laravel Permission для базовой ролевой модели + Policy классы для object-level permission (can('view', $deal) проверяет не только роль, но и владение). Для сложных иерархических структур — ABAC (Attribute-Based Access Control) вместо RBAC.
Производительность на больших данных. CRM с 500 000 контактов, фильтрация по 10 полям, сортировка по активности — это задача, где наивная реализация выдаёт 15-секундные запросы. Composite indexes, денормализация агрегатов (last_activity_at на самой записи вместо MAX по связанной таблице), Elasticsearch для full-text поиска по контактам.
Real-time обновления. Несколько сотрудников работают с одним документом или задачей. Без WebSocket — постоянные setInterval с polling каждые 5 секунд, лишняя нагрузка на сервер, задержка обновлений. Laravel Broadcasting + Pusher/Soketi или собственный WebSocket сервер на Node.js — для уведомлений и изменений в реальном времени.
CRM-системы
Типичный набор: контакты, компании, сделки, активности, воронка продаж, отчёты. Технически это несложно. Сложность — в деталях.
Pipeline с кастомными стадиями. Каждая компания хочет свою воронку. Стадии должны быть настраиваемыми без деплоя. Таблица pipeline_stages с position, color, is_final, probability — и drag-and-drop для изменения порядка на UI (React DnD или dnd-kit).
История изменений. Кто и когда изменил статус сделки, поменял ответственного, добавил заметку. Audit log через Observer или spatie/laravel-activitylog. На UI — timeline с фильтрацией по типу активности.
Интеграция с почтой. IMAP/SMTP для подключения корпоративного ящика, автоматическая привязка входящих писем к контактам по email-адресу. Это надёжно работает только при правильной обработке bounce, spam, автоответов — нужна фильтрация.
Почему ERP — не про код, а про данные?
ERP — это когда CRM, склад, производство, бухгалтерия и HR объединены в единую систему. Полный ERP с нуля — редкая задача (обычно интегрируются с существующими системами), но модульные системы под конкретный бизнес — регулярная.
Ключевой принцип: финансовые операции должны быть неизменяемыми. Не UPDATE orders SET status = 'cancelled' — а создание новой записи order_cancellations с ссылкой на исходный заказ. Это принцип immutable ledger, который упрощает аудит и reconciliation.
Интеграция с 1С — почти всегда часть ERP-проекта. Двусторонняя синхронизация: из 1С в портал (справочники, остатки, цены) и из портала в 1С (заказы, документы). RabbitMQ как шина событий между системами надёжнее прямого HTTP-взаимодействия — в случае недоступности 1С сообщения ждут в очереди.
Как устроены LMS: платформы обучения
Learning Management System — это курсы, модули, уроки, тесты, сертификаты, прогресс пользователей.
Видео-контент — самая нагруженная часть LMS. Хранить видео на собственном сервере и отдавать через Nginx — плохая идея: дорого, медленно, нет адаптивного битрейта. Правильно: загрузка в S3/Cloudflare R2, транскодирование через AWS Elemental MediaConvert или Mux, HLS-плейлист для адаптивного стриминга через Video.js или Plyr.
Прогресс просмотра — через периодическую отправку watch_position с фронтенда (каждые 10–30 секунд), хранение в Redis с периодической синхронизацией в PostgreSQL. Не сохранять каждую секунду в БД — это убьёт производительность.
SCORM-совместимость — если нужна интеграция с корпоративными тренинговыми материалами. Отдельный модуль, есть готовые библиотеки (scorm-again).
Intranet и HR-порталы
Корпоративный интранет: новости, документы, оргструктура, HR-процессы (отпуска, заявки, KPI).
Оргструктура в базе данных — это иерархическая структура. Adjacency list (parent_id на каждой записи) прост в реализации, но медленен при рекурсивных запросах. Nested Sets или Closure Table быстрее для чтения иерархии, сложнее при изменениях. В PostgreSQL — рекурсивные CTE (WITH RECURSIVE) с adjacency list — баланс между простотой и производительностью.
Согласование документов и заявок — workflow engine. Простые линейные согласования (сотрудник → менеджер → HR → бухгалтер) можно сделать без специального движка. Нелинейные (параллельные ветки, условные переходы, делегирование) — стоит рассмотреть готовые решения: Temporal.io для workflow orchestration или собственный конечный автомат на базе state-machine паттерна.
Что входит в работу
При заказе разработки корпоративного портала вы получаете:
- Архитектурную документацию (ER-диаграммы, схема интеграций, матрица ролей)
- Полный код в Git-репозитории с CI/CD
- Доступы к инфраструктуре (хостинг, базы данных, хранилища)
- Обучение администраторов и ключевых пользователей (2–3 сессии)
- Гарантийную поддержку на 3 месяца после запуска
Наши принципы проектирования опираются на официальную документацию Laravel по авторизации (Policies) и рекомендации по работе с очередями.
Технический стек для порталов
| Слой |
Инструменты |
| Backend |
Laravel + PostgreSQL |
| Frontend |
React + TypeScript (Inertia.js или отдельный SPA) |
| Real-time |
Laravel Echo + Soketi / Pusher |
| Поиск |
Meilisearch (быстрый старт) или Elasticsearch (объём) |
| Очереди |
Laravel Queue + Redis |
| Файлы |
S3-compatible (MinIO self-hosted или AWS S3) |
| Мониторинг |
Sentry + Telescope (dev) |
Ориентиры по срокам
| Тип портала |
Срок |
| CRM (базовый) |
10–16 недель |
| LMS (курсы + видео + тесты) |
14–22 недели |
| HR-портал (отпуска, KPI, оргструктура) |
12–20 недель |
| Корпоративный ERP (модульный) |
24–52 недели |
Стоимость рассчитывается индивидуально после детальной аналитики требований и ролевой модели. Чтобы получить предварительную оценку, напишите нам — мы проанализируем вашу задачу и предложим оптимальное решение под ключ.