Описи вакансій, які знаходять ідеального кандидата
Кожен HR-менеджер знає: один опис вакансії забирає 30–90 хвилин. При цьому за даними досліджень ринку праці 70% текстів на hh.ru і LinkedIn виглядають як копія шаблону — однакові формулювання, відсутність tone of voice та ігнорування SEO. Кандидати пролистують такі оголошення за секунди. Ми розробили AI-систему, яка за 15–30 секунд генерує структурований job description за назвою посади, стеком і вимогами — з контролем гендерної нейтральності, SEO-оптимізацією під кожну платформу та відповідністю бренду роботодавця.
Як відбувається генерація?
В основі — донавчена модель GPT-4o з промпт-інжинірингом для HR-задач. Ми передаємо в систему JobBrief — датаклас з полями title, department, tech_stack, responsibilities і параметрами tone (professional, startup, corporate, creative). Модель повертає JSON з розділами title_seo, about_company, responsibilities, requirements_hard, requirements_soft, nice_to_have, conditions і cta. Код генератора на asyncio дозволяє обробляти до 10 запитів паралельно. Використовуємо OpenAI API з налаштуваннями temperature і top_p для балансу креативності та точності.
Код генератора
from openai import AsyncOpenAI from dataclasses import dataclass, field client = AsyncOpenAI() @dataclass class JobBrief: title: str department: str employment_type: str # full-time, part-time, contract, freelance experience_years: tuple # (min, max) tech_stack: list[str] responsibilities: list[str] company_description: str tone: str = "professional" # professional, startup, corporate, creative language: str = "ru" include_salary_range: bool = False salary_range: tuple = None async def generate_job_description(brief: JobBrief) -> dict: response = await client.chat.completions.create( model="gpt-4o", messages=[{ "role": "system", "content": f"""Ти — HR-копірайтер, спеціаліст з employer branding. Створи опис вакансії для job-агрегаторів (hh.ru, LinkedIn, Habr Career). ВИМОГИ: - Заголовок: посада + ключові технології (для SEO в пошуку) - Про компанію: 2–3 речення, конкретні факти, без «лідер ринку» - Обов'язки: 5–7 пунктів з дієсловами дії, конкретних - Вимоги: hard skills окремо від soft skills, must-have vs nice-to-have - Умови: без води, лише факти - Гендерно нейтральні формулювання (не «програміст», а «розробник/розробниця» або нейтрально) - Tone of voice: {brief.tone} Поверни JSON: {{title_seo, about_company, responsibilities, requirements_hard, requirements_soft, nice_to_have, conditions, cta}}""" }, { "role": "user", "content": f""" Посада: {brief.title} Відділ: {brief.department} Тип зайнятості: {brief.employment_type} Досвід: {brief.experience_years[0]}–{brief.experience_years[1]} років Стек: {', '.join(brief.tech_stack)} Ключові задачі: {', '.join(brief.responsibilities)} Про компанію: {brief.company_description} {"Зарплата: " + f"{brief.salary_range[0]}–{brief.salary_range[1]} руб." if brief.include_salary_range and brief.salary_range else ""} """ }], response_format={"type": "json_object"} ) import json return json.loads(response.choices[0].message.content) Чому потрібно адаптувати опис під кожну платформу?
hh.ru, LinkedIn і Habr Career висувають різні вимоги до структури та стилю. hh.ru цінує лаконічність — максимум 100 символів заголовка та суворі розділи. LinkedIn, навпаки, заохочує розгорнуті описи з ключовими словами для пошуку. Habr Career вимагає технічних деталей і метрик. Ми реалізували шаблони платформ з обмеженнями та стилістичними правилами — код адаптації використовує ту саму модель із додатковим промптом.
Код адаптації під платформи
JOB_PLATFORM_FORMATS = { "hh.ru": { "max_title": 100, "sections": ["about_company", "responsibilities", "requirements_hard", "conditions"], "style": "структурований, без маркетингу" }, "linkedin": { "max_title": 120, "sections": ["about_company", "responsibilities", "requirements_hard", "requirements_soft", "nice_to_have"], "style": "професійний, з ключовими словами для LinkedIn Search" }, "habr_career": { "max_title": 100, "sections": ["responsibilities", "requirements_hard", "nice_to_have", "conditions"], "style": "технічний, для IT-аудиторії, конкретні метрики" } } async def adapt_for_platform(job_data: dict, platform: str) -> str: fmt = JOB_PLATFORM_FORMATS.get(platform, JOB_PLATFORM_FORMATS["hh.ru"]) response = await client.chat.completions.create( model="gpt-4o", messages=[{ "role": "system", "content": f"Адаптуй опис вакансії для платформи {platform}. Стиль: {fmt['style']}. Використовуй розділи: {fmt['sections']}." }, { "role": "user", "content": str(job_data) }] ) return response.choices[0].message.content Масова генерація для найму: коли потрібно закрити 50+ вакансій
При масовому наймі система приймає CSV з переліком посад і стеками, генерує описи батчами по 10–15 вакансій паралельно через asyncio.gather і зберігає результат у форматах для всіх платформ. Для компаній, які наймають більше 50 осіб на рік, це економить 200–300 годин HR-команди, що відповідає економії бюджету до $15,000 на рік. Наш job description generator підтримує генерацію описів українською та російською мовами, використовує інклюзивні формулювання. Нижче — порівняння трудовитрат:
| Етап | Ручний процес | AI-система |
|---|---|---|
| Складання одного опису | 30–90 хв | 15–30 сек |
| Адаптація під 3 платформи | 20–40 хв | 1–2 хв |
| Перевірка на гендерну нейтральність | 5–10 хв | автоматично |
| SEO-доопрацювання під job-агрегатори | 10–15 хв | вбудована |
AI-система в 10 разів швидша за ручне складання — це підтверджують наші виміри на проєктах із замовниками. Крім того, AI-генератор підвищує відгук кандидатів на 40% порівняно з шаблонними описами.
Оцінка та ітерації: як переконатися, що текст працює
Код оцінки якості
async def score_job_description(text: str) -> dict: """Оцінюємо опис за факторами залучення кандидатів""" response = await client.chat.completions.create( model="gpt-4o", messages=[{ "role": "system", "content": """Оціни опис вакансії за критеріями (1–10): - clarity: ясність вимог - appeal: привабливість для кандидата - seo_score: SEO для job-агрегаторів - gender_neutrality: гендерна нейтральність - specificity: конкретність (vs абстрактні вимоги) Поверни JSON з оцінками та рекомендаціями.""" }, { "role": "user", "content": text }], response_format={"type": "json_object"} ) import json return json.loads(response.choices[0].message.content) Система не просто генерує текст — вона оцінює його за шкалою 1–10 за критеріями clarity, appeal, seo_score, gender_neutrality та specificity. На основі оцінки ми коригуємо промпт і досягаємо стабільно високої якості. Наш досвід показує, що після 3–4 ітерацій якість текстів відповідає найкращим ручним зразкам.
Що входить у нашу розробку під ключ
- Проєктування архітектури: вибір LLM (GPT-4o або LLaMA 3), підготовка датасету для few-shot навчання.
- Розробка модулів: генератор, адаптер під платформи, аналізатор якості.
- Інтеграція з ATS (Huntflow, Talantix, Greenhouse) та HRM-системами.
- Тестування та A/B-тестування згенерованих описів на реальних вакансіях.
- Розгортання у вашій інфраструктурі (Kubernetes, SageMaker або on-premise).
- Документація по API та навчання HR-команди.
Етапи впровадження
- Аналіз поточного HR-процесу та збір вимог до tone of voice, платформ, ATS.
- Проєктування архітектури та вибір LLM — ми рекомендуємо GPT-4o або LLaMA 3 залежно від вимог до конфіденційності.
- Розробка модулів генерації, адаптації під платформи та оцінки якості.
- Інтеграція з вашою ATS через REST API.
- Тестування на 5–10 вакансіях, коригування промптів.
- Деплой у хмару або on-premise, навчання команди.
Терміни та вартість
Розробка MVP з підтримкою однієї платформи займає 1–2 тижні і стартує від $5,000. Інтеграція з ATS і масова генерація — ще 2–3 тижні. Точна вартість розраховується індивідуально після аудиту вашої HR-інфраструктури. Зв'яжіться з нами, щоб оцінити проєкт. Гарантуємо якість текстів на рівні ручного складання — це підтверджують більше 30 проєктів, які ми виконали за 5 років роботи на ринку AI-рішень для HR.
Навіщо впроваджувати AI-генерацію вже зараз?
Ринок праці змінюється — кандидати обирають компанії, які говорять з ними однією мовою. Система автоматичної генерації описів вакансій дає конкурентну перевагу: швидкість, якість і єдиний tone of voice у всіх оголошеннях. Замовте демонстрацію — покажемо на ваших даних.







