Разработка AI-системы автоматического парсинга резюме с job-сайтов
Массовый парсинг резюме с hh.ru, Superjob, Rabota.ru позволяет автоматически наполнять базу кандидатов без ручного поиска. Система собирает, нормализует и структурирует данные из разных источников.
API vs парсинг
Для России: hh.ru и SuperJob имеют официальные API для работодателей. Это предпочтительный путь — официальный, надёжный, не нарушает ToS.
- hh.ru API: resume search endpoint, детальные данные резюме. Тариф «Доступ к базе резюме» от 5000 руб/мес
- SuperJob API: аналогичный функционал
- Rabota.ru: парсинг (API только для партнёров)
Нормализация данных из разных источников
Каждый job-сайт имеет свою структуру данных. Нормализация к единой схеме:
class NormalizedResume(BaseModel):
source: str # "hh.ru" | "superjob" | "rabota.ru"
source_id: str # ID на источнике
full_name: str
age: int | None
city: str | None
desired_position: str
desired_salary: int | None
currency: str
experience: list[WorkExperience]
education: list[Education]
skills: list[str] # нормализованные навыки
languages: list[LanguageSkill]
last_updated: datetime
# AI-обогащение
seniority_level: str # junior/middle/senior/lead — AI оценка
tech_stack: list[str] # стек технологий — извлечено AI
experience_years: float # суммарный опыт
Дедупликация кандидатов
Один человек размещает резюме на нескольких сайтах. Дедупликация через:
- Совпадение телефона/email (если открыты)
- Семантическое сходство опыта работы (эмбеддинги)
- Fuzzy matching по имени + город + текущий работодатель
Правило: при similarity > 0.85 — предлагать объединение, при > 0.95 — автоматически.
Обновление базы кандидатов
Резюме устаревают. Триггеры обновления: кандидат обновил резюме на источнике (webhook/периодический poll), прошло 30 дней без изменений — проверить актуальность, кандидат откликнулся на вакансию — приоритетное обновление.







