# Методология — как мы собираем вакансии

Affiliate.Careers агрегирует, дедуплицирует, классифицирует и модерирует 600+ вакансий из 27 Telegram-каналов affiliate / CPA / iGaming.

> Канонический URL: https://affiliate.careers/methodology

## Источники

Парсим 27 публичных Telegram-каналов: HR-агентства CPA-индустрии, отделы найма крупных партнёрок, каналы тимлидов с открытыми вакансиями. Список каналов открыт — мы публикуем его на /methodology и в /robots.txt.

Закрытые чаты, private-каналы, личные переписки — не парсим. Это противоречит TG ToS и подрывает доверие индустрии.

## Парсер

Сбор идёт 24/7 через Python-библиотеку Telethon с пулом из 15 аккаунтов в round-robin для распределения нагрузки. Каждое новое сообщение в канале попадает в очередь обработки в течение 1-3 минут.

Сначала отсекается явный шум: резюме соискателей, новости, реклама партнёрок, поздравления. Дальше из текста извлекаются признаки вакансии — должность, компания, формат работы, зарплата, контакты для отклика.

## Дедупликация

Одна и та же вакансия часто публикуется в 5-10 каналах одновременно. Мы вычисляем canonical hash на основе ключевых полей (компания + позиция + город) и схлопываем дубликаты в одну запись с пометкой обо всех источниках. Это убирает «спам» в выдаче.

## Классификация

Автоматический классификатор расставляет теги:

- **Вертикаль** — gambling, betting, dating, nutra, crypto, finance, white
- **Роль** — media buyer, affiliate manager, фармер, тимлид, designer, etc.
- **Уровень** — junior / middle / senior / lead
- **Формат** — remote / office / hybrid
- **Скиллы** — Facebook Ads, TikTok Ads, Google UAC, Telegram Ads, ASO, etc.
- **GEO** — целевые гео офферов, если есть в описании

## AI-модерация

Спорные случаи (примерно 5-8% вакансий, где автоматика не уверена) отправляются на AI-модерацию через Claude Sonnet. Модель проверяет, действительно ли это вакансия, а не промо или попытка собрать резюме под видом найма. При необходимости извлекает данные из плохо структурированного текста.

## Жизненный цикл вакансии

Каждая вакансия живёт 30 дней. Если за это время она ни разу не появилась в источнике повторно — автоматически уходит в архив со статусом `expired`. Это позволяет держать каталог свежим: средний возраст активной вакансии — 7-10 дней.

Если работодатель пишет «вакансия закрыта» — снимаем сразу.

## Чего мы не делаем

- Не парсим закрытые каналы или личные сообщения
- Не публикуем вакансии без описания (одна строка «требуется баер» — режется)
- Не подменяем контакты работодателей на свои
- Не платим за публикацию и не берём денег с работодателей
- Не используем нейросеть для генерации фейковых вакансий

## Команда и модерация

Ядро команды — два разработчика и редактор-аналитик с опытом в performance-маркетинге с 2018 года. Редактор смотрит escalated-случаи от Claude Sonnet и реагирует на снятие/жалобы в течение 24 часов.

## Запрос на снятие вакансии (takedown)

Работодатель может в любой момент попросить снять свою вакансию через editor@affiliate.careers. Удалим в течение 24 часов после проверки запроса.

## Контакт

Вопросы по методологии, ошибки в классификации, предложения по новым источникам — editor@affiliate.careers.

---

Источник: Affiliate.Careers — независимый каталог вакансий в арбитраже трафика.
