Как создать Job Board: портал вакансий и рекрутинга
Клиент приходит с жалобой: «Ежемесячно мы тратим значительные средства на hh.ru, а кандидаты всё равно не те». И это не про иррациональность — это про отсутствие нишевого инструмента. Вертикальные Job Board решают проблему точечно: для IT-контракторов, медицинских работников, строителей или региональных рынков. Наша технология позволяет запустить MVP за 2–3 месяца, а не за год, как у конкурентов. При этом с первых дней вы получаете поиск на Elasticsearch, адаптивную вёрстку и готовую монетизацию. Переход на собственный Job Board может сэкономить значительную часть бюджета на комиссиях рекрутинговых платформ. Свяжитесь с нами, чтобы обсудить проект и получить предварительную оценку. Закажите разработку нишевого портала под ваш рынок уже сегодня.
Основные сущности системы
Вакансия: должность, описание, требования, зарплатная вилка (с/без), локация + remote-опция, тип занятости, компания, теги/навыки, статус (active/expired/draft).
Резюме: ФИО (или псевдоним), желаемая должность, опыт (список позиций с датами), образование, навыки, зарплатные ожидания, локация, готовность к переезду/remote.
Отклик (application): связь кандидат ↔ вакансия. Статус, сопроводительное письмо, дата.
Организация поиска: Elasticsearch vs PostgreSQL
Поиск — ключевая функция. Для небольших объёмов (до 100К вакансий) используем PostgreSQL Full-Text Search:
SELECT * FROM vacancies WHERE to_tsvector('russian', title || ' ' || description) @@ plainto_tsquery('russian', 'разработчик python') AND salary_from <= 250000 AND location @> '{"city": "Москва"}'::jsonb ORDER BY ts_rank(...) DESC; Для крупных платформ с фасетной фильтрацией, typo-tolerance и релевантным ранжированием выбираем Elasticsearch или Typesense. Elasticsearch быстрее PostgreSQL в 10 раз при объёме 1 млн записей, что критично для пользовательского опыта.
По данным Elasticsearch: The Definitive Guide, при объёме 1 млн записей скорость поиска на Elasticsearch на порядок выше.
Настройка анализатора для русского языка в Elasticsearch
Для корректной морфологии используем анализатор `elasticsearch-analysis-morfologik` или `elasticsearch-analysis-icu` с конфигурацией синонимов и стоп-слов.Фильтры: зарплата, опыт (нет опыта / 1–3 года / 3–6 лет / 6+ лет), локация, тип занятости, remote/office/hybrid, компания, дата публикации.
| Критерий | PostgreSQL FTS | Elasticsearch | Typesense |
|---|---|---|---|
| Скорость | до 500 мс при 100К | до 50 мс при 1M | до 30 мс при 1M |
| Typo-tolerance | Нет | Да | Да |
| Фасетная фильтрация | Сложно | Из коробки | Из коробки |
| Стоимость | Бесплатно | Бесплатно / платный кластер | Платный облачный сервис |
Для индекса вакансий на Elasticsearch мы определяем маппинг с мультифилдами (русский/английский), настраиваем анализатор с морфологией и синонимами. Фасетная фильтрация реализуется через aggregations. Это обеспечивает typo-tolerance и релевантное ранжирование.
Почему быстрый поиск критичен для конверсии?
Time-to-hire напрямую влияет на бизнес. Если поиск тормозит, рекрутеры уходят к конкурентам. Наш стек (Laravel 11 + Vue 3 + Elasticsearch) обеспечивает INP < 200 мс даже на слабых устройствах. Для сравнения: на шаред-хостинге с MySQL поиск занимает 3–5 секунд — это провал Core Web Vitals.
Личные кабинеты: функционал для кандидата и работодателя
Кандидат:
- Создание/редактирование резюме (User Profile система)
- Отклики и их статусы (система откликов)
- Сохранённые вакансии
- Алерты по поиску (email при новых вакансиях по фильтрам)
- Настройки видимости резюме
Работодатель:
- Профиль компании (страница работодателя)
- Управление вакансиями
- Отклики с воронкой (inbox → screening → interview → offer)
- Поиск по базе резюме (при подписке)
- Статистика вакансий (просмотры, отклики)
Email-алерты: кандидат настраивает поисковый алерт «присылай новые вакансии Python разработчик в Москве от 150K». Cron-задача раз в день запускает сохранённые поиски и отправляет дайджест.
Способы монетизации портала
- Pay-per-post: работодатель платит за размещение одной вакансии (30 дней)
- Пакеты: 5/10/20 вакансий по сниженной цене
- Подписка для работодателей: неограниченные вакансии + доступ к базе резюме
- Highlighted/featured вакансии: оплаченное продвижение в топ выдачи
- Branded employer page: расширенная страница компании
| Функция | Бесплатно | Базовая | Премиум |
|---|---|---|---|
| Размещение вакансий | 1 | 10 | неограниченно |
| Доступ к резюме | нет | да | да |
| Аналитика | нет | базовая | расширенная |
Как добиться быстрой индексации вакансий?
Каждая вакансия — отдельная страница с разметкой JobPosting schema.org в JSON-LD. Sitemap обновляется при публикации. За счёт серверного рендеринга (SSR) на Nuxt 3 страницы индексируются за сутки. Дополнительно используем динамические sitemap и приоритезацию в robots.txt.
Процесс реализации проекта
- Аудит и проектирование. Определяем ключевые сущности, бизнес-логику, способы монетизации. Собираем требования к поиску и интеграциям.
- Прототипирование интерфейсов. Рисуем экраны для кандидата и работодателя, согласовываем user flow.
- Разработка backend. Laravel 11 (PHP 8.3+) с Repository-паттерном, Elasticsearch для поиска, Redis для кэша.
- Frontend. Vue 3 (Nuxt 3) с SSR, Tailwind — быстрый интерфейс и SEO.
- Интеграция с ATS. REST API или webhook для обмена данными.
- Тестирование. Нагрузочное тестирование (k6) и проверка Core Web Vitals.
- Деплой. Настройка CI/CD (GitHub Actions), Docker Compose, мониторинг.
Что входит в работу
- Репозиторий с полным кодом и миграциями базы данных.
- Документация API (OpenAPI 3.0).
- Настроенный CI/CD (GitHub Actions + Docker Compose).
- Обучение команды заказчика (2 вебинара).
- Гарантия на код — 6 месяцев после сдачи.
- Техническая поддержка в течение гарантийного срока.
- Доступ к админ-панели и системе мониторинга.
- Внедрение парсинга вакансий из внешних источников.
Сроки и гарантии
MVP (публикация вакансий, поиск, отклики, ЛК работодателя и кандидата): 2–3 месяца. С аналитикой, алертами, ATS-функциями, базой резюме с поиском: 3–5 месяцев.
Наш опыт: более 10 лет в веб-разработке, более 50 реализованных проектов. Оценим ваш проект за 2 дня — свяжитесь с нами, чтобы обсудить детали. Получите консультацию по вашему проекту уже сегодня.







