Rychagov S.
🎯 AI Recruiting · LinkedIn · Python + OpenAI

AI-система для поиска и анализа кандидатов в LinkedIn: Python + Playwright + OpenAI

Практический разбор AI-платформы для автоматизированного sourcing, анализа профилей и формирования candidate shortlist в LinkedIn.

TL;DR

Мы разработали AI-платформу для автоматизированного поиска кандидатов в LinkedIn с интеллектуальной фильтрацией через OpenAI.

Система автоматически ищет кандидатов, заходит в профили, анализирует опыт и навыки, оценивает соответствие вакансии и формирует shortlist.

Web-интерфейс на FastAPI позволяет управлять поисками, просматривать результаты и работать с базой кандидатов.

Ключевые сложности: шумные профили, неоднородные форматы, лимиты LinkedIn и риск bias в принятии решений.

Ключевая идея: не просто «парсить LinkedIn», а построить полноценный AI-assisted recruitment pipeline.

Почему обычный LinkedIn sourcing перестал работать

Проблема: современный recruitment перегружен ручными действиями — даже сильный recruiter тратит часы на просмотр профилей и сортировку нерелевантных кандидатов.

Ручной sourcing

Десятки вкладок LinkedIn, сотни просмотренных профилей и бесконечный ручной screening.

Потеря времени

Часы на поиск, анализ, сортировку и повторную проверку кандидатов.

Потеря специалистов

Hiring замедляется, стоимость найма растёт, сильные кандидаты уходят к конкурентам.

Сложные сегменты

IT recruitment, массовый hiring, senior engineers, executive search и международный найм — особенно трудоёмкие процессы.

Ключевая идея: превратить LinkedIn из обычного поиска профилей в интеллектуальную систему подбора кандидатов с AI-анализом.

Architecture Pipeline

Web UI (FastAPI)
    ↓
LinkedIn Scraper Engine (Playwright)
    ↓
LinkedIn Profile Extraction
    ↓
OpenAI Candidate Analysis
    ↓
Structured Candidate Database

Такой пайплайн делает подбор воспроизводимым: каждый этап можно отлаживать отдельно и улучшать без полной переработки системы.

Как работает система

Система работает как пошаговый recruitment pipeline:

1

Авторизация через LinkedIn

При первом запуске пользователь проходит авторизацию, cookies сохраняются локально, поддерживается 2FA.

2

Поиск кандидатов

Пользователь задаёт query, критерии отбора и количество страниц. Система открывает LinkedIn Search и собирает кандидатов.

3

Полный анализ профилей

Система заходит в каждый профиль, извлекает About, Experience, Skills, Education, headline и карьерную историю.

4

AI-оценка через OpenAI

OpenAI оценивает соответствие вакансии, seniority, релевантность, потенциальные риски и вероятность match.

Интеграция с LinkedIn

LinkedIn интеграция реализована через Playwright-автоматизацию браузера Chromium. В реализации учитываются:

1

Cookie-авторизация

Сохранение cookies при первом login, поддержка 2FA, повторная авторизация обычно не требуется.

2

Поиск и сбор

Система открывает LinkedIn Search, собирает данные карточек кандидатов, удаляет дубли и сохраняет результаты.

3

Глубокий extraction

Заходит в каждый профиль, извлекает About, Experience, Skills, Education, headline, top skills и карьерную историю.

4

Управление через Web UI

FastAPI dashboard позволяет запускать scraping, управлять поисками и просматривать AI-результаты через браузер.

Типичные проблемы источника: неполные профили, разные уровни заполненности секций, ограничения LinkedIn на количество запросов.

Extraction профилей и structured data

Ключевая особенность системы — анализ не только search cards, но и полноценных страниц кандидатов.

Сложности: разная плотность описаний, частичная заполненность секций, разный уровень детализации профиля.

Поле Пример
AboutТекстовое описание профиля кандидата
ExperienceСписок компаний, ролей, дат и описаний
SkillsPython, FastAPI, PostgreSQL, React
EducationУниверситет, специальность, год
HeadlineSenior Python Developer at Company X
Карьерная историяТраектория роста, смена компаний, promotions

Search cards vs полные профили

Одних только search cards недостаточно для точного подбора кандидатов.

В production важен полный анализ профиля: experience, skills, education, career dynamics и контекст роли.

Практический подход: сначала глубокий extraction профиля, затем AI-скоринг и объяснение результата для recruiter.

AI-assisted Recruitment Pipeline

Система комбинирует browser automation, structured extraction и AI-анализ:

Browser Automation

Playwright автоматически открывает LinkedIn, выполняет поиск и собирает профили кандидатов.

Structured Extraction

Данные профилей нормализуются в единый формат для дальнейшего анализа.

AI-интерпретация

OpenAI анализирует профиль и формирует оценку соответствия с объяснением.

Готовый shortlist

Результат — рейтинг кандидатов с AI-оценкой, причинами match и рекомендациями.

Scoring / Matching Engine

Ключевой differentiator системы — AI-оценка через OpenAI, а не простой keyword matching.

Profile data:
  - Experience: 5 years Python
  - Skills: FastAPI, PostgreSQL, React
  - Industry: B2B SaaS
  - Seniority: Senior

OpenAI Evaluation:
  Vacancy match:     85%
  Seniority match:   90%
  Industry fit:      75%
  Risk factors:      Low

Пример AI-вывода: «Кандидат подходит: 5 лет Python, подтверждённый опыт с FastAPI и PostgreSQL, B2B SaaS background; пробел — нет данных по Kubernetes в production».

AI-слой (OpenAI)

OpenAI используется как интерпретационный слой для анализа кандидатов:

1) оценка соответствия вакансии и карьерного трека;

2) нормализация навыков и терминов из разных форматов;

3) определение seniority и релевантности опыта;

4) генерация краткого summary кандидата с рисками и рекомендациями.

Anti-bias и ограничения

AI-рекрутинг несет риски bias по полу, возрасту, компаниям и образовательным траекториям.

Практики снижения риска: исключение sensitive-признаков из scoring, прозрачные причины match, human-in-the-loop, регулярный аудит распределений рекомендаций.

Важно: система должна помогать принимать решение, а не автоматически «нанимать».

Docker / Production контур

Рекомендуемая production-схема:

FastAPI web-интерфейс, Playwright-движок для browser automation, OpenAI для AI-анализа, structured database для хранения результатов.

Разделение на сервисы важно для стабильной работы, масштабирования batch-анализа и контроля SLA.

Типичные ошибки внедрения

1) Использовать только search cards без глубокого анализа профилей.

2) Не нормализовать навыки и названия ролей из разных профилей.

3) Не делать explainability для recruiter.

4) Игнорировать лимиты LinkedIn и не добавлять rate limiting.

5) Не строить feedback loop по факту найма.

Используемый стек

Backend

Python, asyncio, FastAPI, Uvicorn.

Browser Automation

Playwright, Chromium automation.

AI Layer

OpenAI API, semantic candidate evaluation.

Метрики качества

precision@k

Доля релевантных кандидатов в верхних позициях shortlist.

time-to-hire

Насколько система сокращает время закрытия вакансии.

match accuracy

Насколько итоговый рейтинг коррелирует с экспертной оценкой recruiter/hiring manager.

Recruiter acceptance rate

Процент AI-рекомендаций, которые проходят в следующий этап отбора.

Примеры использования

Запуск поиска кандидатов

python linkedin_scraper.py "Python developer Berlin" \
  --criteria "5+ лет Python, FastAPI, PostgreSQL, B2B SaaS"

Фрагмент AI-результата

{
  "candidate": "John D.",
  "profile_match": 85,
  "skills_match": {
    "matched": ["Python", "FastAPI", "PostgreSQL"],
    "missing": ["Kubernetes"]
  },
  "seniority": "Senior",
  "conclusion": "Сильный кандидат с релевантным стеком",
  "risks": "Нет данных по Kubernetes в production"
}

FAQ

Это обычный scraper?

Нет. Система не просто собирает профили, а анализирует кандидатов и помогает формировать shortlist с AI-оценкой.

Используется ли AI?

Да. OpenAI анализирует опыт, навыки, стек технологий, карьерный трек и соответствие вакансии.

Можно ли искать по локациям?

Да. Поддерживается geo search и country-based sourcing.

Есть ли web-интерфейс?

Да. Реализован FastAPI dashboard для управления поиском и просмотра результатов.

Можно ли отключить AI-анализ?

Да, система поддерживает флаг --no-ai для сбора профилей без AI-оценки.

Можно ли ускорить scraping?

Да, с помощью флага --no-profile-fetch для быстрого сбора search cards без захода в каждый профиль.

Key Takeaways

1) Это AI recruitment intelligence system, а не просто scraper — полноценный pipeline от поиска до shortlist.

2) Python + Playwright + OpenAI позволяют строить масштабируемые recruitment pipelines с AI-анализом.

3) LLM-анализ даёт более качественный screening по сравнению с keyword matching.

Кому подходит

Recruitment agencies, IT recruiters, startup-командам и CTO/founders, которым нужен быстрый и качественный поиск специалистов в LinkedIn без ручного просеивания сотен профилей.

Связаться в Telegram