Як створити 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('ukrainian', title || ' ' || description) @@ plainto_tsquery('ukrainian', 'розробник 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 дні — зв'яжіться з нами, щоб обговорити деталі. Отримайте консультацію по вашому проєкту вже сьогодні.







