Все статьиБизнесСбор данных и Scraper API9 мин

Сбор публичных вакансий для аналитики рынка труда

Как построить пайплайн публичных вакансий: официальный API, robots.txt, нормализация, дедупликация, контроль качества и безопасная частота.

Команда InfraProxy

4 февраля 2026 г.обновлено 18 августа 2026 г.

#вакансии#рынок труда#публичные данные#ETL#аналитика

Для аналитики рынка труда достаточно публичных вакансий и официальных API. Не автоматизируйте вход в аккаунты: сначала проверьте разрешённые выгрузки, затем собирайте минимальный набор полей с ограниченной частотой.

Какие вопросы решает набор вакансий

Публичные объявления позволяют оценить структуру спроса на специалистов, географию найма, частоту упоминания технологий и диапазоны зарплат, когда они указаны самим работодателем.

До запуска зафиксируйте единицу наблюдения. Одна вакансия может повторно публиковаться, переноситься между регионами и менять описание. Без стабильного идентификатора счётчик «новых вакансий» будет завышен.

Минимальная таблица:

CREATE TABLE public_job_postings (
    source_id VARCHAR(255) NOT NULL,
    source_name VARCHAR(100) NOT NULL,
    job_title TEXT NOT NULL,
    company_name TEXT,
    region TEXT,
    salary_min NUMERIC,
    salary_max NUMERIC,
    currency VARCHAR(3),
    published_at TIMESTAMP,
    first_seen_at TIMESTAMP NOT NULL,
    last_seen_at TIMESTAMP NOT NULL,
    source_url TEXT NOT NULL,
    PRIMARY KEY (source_name, source_id)
);

first_seen_at нужен для оценки притока, а last_seen_at — чтобы отличить удаление от временной ошибки загрузки.

Сначала официальный API или выгрузка

Порядок выбора источника:

  1. Официальный API с документированным лимитом.
  2. Открытая выгрузка или RSS.
  3. Публичные HTML-страницы, если это разрешено robots.txt и условиями использования.
  4. Согласованная выгрузка владельца данных для регулярного коммерческого процесса.

Авторизованные разделы, контакты из личного кабинета и скрытые поля не относятся к публичным данным. Не используйте автоматический вход, сохранённые cookie или чужие учётные записи для расширения выборки.

Пайплайн: получение, нормализация, контроль

Разделите процесс на четыре независимых шага:

  • Получение. Сохраняйте статус, время ответа и контрольную сумму исходного документа.
  • Извлечение. Выделяйте только поля, необходимые аналитике.
  • Нормализация. Приводите регионы, валюты и названия ролей к справочникам.
  • Контроль качества. Считайте долю пустых полей, дубликаты и резкие изменения объёма.

Не записывайте 0 вместо отсутствующей зарплаты. Это разные состояния: работодатель не указал вилку и работодатель указал нулевое значение.

Как не спутать изменение рынка со сбоем сборщика

Снижение числа вакансий за день ещё не означает падение спроса. Сначала проверьте технические метрики:

Метрика Что показывает
URL в очереди Изменился ли объём входных страниц
Доля 200 Получен ли ответ источника
Доля пустых карточек Не изменилась ли разметка
Дубликаты Не сломался ли идентификатор
p50/p95 времени ответа Нет ли деградации источника или маршрута
429/503 Не превышена ли допустимая частота

Подтверждайте рыночный вывод только после того, как технический контроль стабилен.

Безопасная частота и повторы

Используйте отдельную очередь на каждый домен, малую параллельность и кэш уже обработанных URL. При 429 учитывайте Retry-After. При 503 применяйте ограниченный backoff. После нескольких неудач переносите URL в отдельную очередь, а не повторяйте бесконечно.

Прокси могут разделить ваши рабочие потоки и дать управляемую сеть, но не должны использоваться для обхода опубликованного лимита.

Этичность и персональные данные

Читайте robots.txt, соблюдайте Disallow и Crawl-delay, используйте честный User-Agent и контакт. Не собирайте данные из-под логина и paywall. Не извлекайте персональные контакты кандидатов. Для 152-ФЗ и GDPR заранее определите цель, состав полей, срок хранения и основание обработки.

Если источник предлагает opt-out или просит удалить данные, предусмотрите удаление из сырого слоя, витрин и резервных копий по принятой процедуре.

Следующий шаг

Если команда поддерживает собственный ETL, начните с центра знаний о сборе данных. Если нужна готовая выдача публичных страниц без управления браузерами и прокси, проверьте Scraper API на разрешённом источнике.

Ключевые выводы

  • Для анализа рынка труда обычно достаточно публичных вакансий и официальных API.
  • first_seen_at и last_seen_at отделяют новые записи от повторных публикаций.
  • Рыночный вывод нельзя делать до проверки технических метрик сборщика.
  • Авторизованные данные и контакты кандидатов не входят в безопасный сценарий.

Краткий ответ: собирайте только публичные вакансии, предпочитайте официальный API и отделяйте изменения рынка от ошибок загрузки и дедупликации.

Нужно получать публичные данные без поддержки собственной инфраструктуры?

Посмотрите возможности Scraper API, условия теста и примеры интеграции.

Перейти к Scraper API