Описи вакансій, які знаходять ідеального кандидата
Кожен 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 у всіх оголошеннях. Замовте демонстрацію — покажемо на ваших даних.







