Перейти к содержимому
Jaxel
J
Jaxel
Тбилиси
активна · проверена 56 минут назад

Senior Crawler Engineer (Node.js/TypeScript)

Ищем опытного инженера для разработки и поддержки промышленного краулер-движка на Node.js/TypeScript. Нужно будет создавать ядро и модули, переносить существующие краулеры с JVM, внедрять ИИ-слой для извлечения данных и регулярно чинить сломанные селекторы. Требуется минимум 1.5 года опыта с краулерами в продакшене, уверенное владение Node.js/TypeScript, Playwright/Puppeteer и опыт борьбы с антибот-защитой.

senior удалённо ~2 006 588 ₸
Языки: English · Intermediate
salary intelligence

Зарплата не указана — оценили по рынку

На основе 113 похожих вакансий за 90 дней.

оценка p25–p75
1 355 000 – 2 822 051 ₸
медиана: 2 006 588 ₸
Хотите увидеть распределение по грейдам и городам? Зарплаты JavaScript Калькулятор зарплат
Вакансии в Telegram-канале
Свежие вакансии Каждый день
Подписаться
??%
Match Score
Войдите и создайте резюме
Войти
описание

Что предстоит делать

Мы ищем сильного инженера, который поможет нам построить и поддерживать масштабируемый движок для сбора данных — надёжный, предсказуемый и устойчивый к защитным механизмам сайтов. Это не про разовые скрипты: речь о промышленной системе, которая должна работать стабильно месяцами и годами, а при изменениях на целевых порталах — быстро и прозрачно восстанавливаться. Вам предстоит не только разрабатывать ядро и модули краулера, но и переносить существующие реализации с JVM, внедрять слой на базе ИИ для извлечения данных, а также обеспечивать качество данных и прозрачность работы системы. Ключевая особенность роли — значительная доля рутинного, но критически важного сопровождения: вы будете регулярно чинить сломавшиеся селекторы, разбираться в изменившихся потоках навигации и фиксировать нюансы работы отдельных порталов.

  • Разработать ядро краулер-движка на Node.js/TypeScript. Реализовать оркестрацию запусков, загрузку модулей, логику повторных попыток и задержек (retries и backoff), контроль параллелизма и частоты запросов, обработку ошибок, работу с артефактами запусков и логированием.
  • Создать набор подключаемых модулей (управление браузером, маршрутизация для обхода антибот-защиты, извлечение данных, пагинация, вывод результатов) и спроектировать декларативный формат описания источников — схему конфигурации и контракт выходной схемы, отделённые от параметров времени выполнения.
  • Использовать проверенные готовые решения для типовых слоёв (автоматизация браузера, цикл обхода, механизмы скрытности), чтобы сосредоточить внутренние усилия на том, что действительно специфично для наших данных.
  • Выстроить рабочий процесс для разработчиков: добавление источника, локальное тестирование, регистрация, планирование, мониторинг выполнения.
  • Перенести поведение существующих краулеров с JVM без потери покрытия и точности на уровне полей, включая неописанные «костыли» и особенности отдельных порталов.
  • Валидировать каждую миграцию по эталонному выводу, приоритизируя источники по частоте поломок, а не по алфавиту. Документировать особенности каждого портала в процессе переноса.
  • Поддерживать работу действующих краулеров в ходе миграции: классифицировать и устранять сбои, чинить сломанные селекторы, адаптироваться к изменениям навигации, перемещённым порталам и новой логике пагинации. Участвовать в дежурствах по источникам, за которые вы отвечаете.
  • Корректно различать типы сбоев: временные ошибки, изменения DOM, новая антибот-защита, стены авторизации, полное исчезновение портала — и вовремя эскалировать проблемы, которые нельзя решить инженерными методами.
  • Работать с антибот-защитой в рамках закона и правил сервисов: проводить реверс-инжиниринг порталов через анализ сетевого трафика и недокументированных JSON-эндпоинтов, подбирать подходящий инструмент под каждый источник (обычный HTTP, headless-браузер, управляемый stealth-браузер, стратегия прокси, сервис CAPTCHA).
  • Построить ИИ-слой для извлечения данных: реализовать извлечение на базе LLM с приоритетом схемы, с детерминированным фоллбэком на селекторы и циклом самовосстановления (обнаружение, диагностика, исправление, проверка) в жёстких рамках по количеству итераций и бюджету затрат, с контролем через верификацию схемы и сравнение с последним эталонным выводом.
  • Регистрировать источники в платформе планирования и мониторинга, участвовать в нормализации данных перед записью в хранилище (сопоставление имён, дедупликация, идемпотентная запись, восстановление частичных запусков), расширять бэкенд-сервисы на Node.js и внутренний UI для отображения статуса краулеров
  • Требования к кандидату:
  • От 3 лет опыта в коммерческой разработке ПО.
  • Не менее 1,5 лет разработки и поддержки краулеров/скраперов в продакшене на Node.js — это жёсткое требование: нужны примеры реально запущенных, расписанных по расписанию и поддерживаемых краулеров для сайтов, которые вы не контролируете.
  • Опыт длительной поддержки краулеров в продакшене (не разовые скрипты и не проекты для одного сайта).
  • Уверенное владение Node.js и TypeScript: асинхронные паттерны, контроль параллелизма и частоты запросов, обработка ошибок, повторные попытки и задержки.
  • Практический опыт работы с Playwright и/или Puppeteer в продакшене: понимание компромиссов между headless и headful, работа с контекстами браузера, состоянием хранения, перехватом сетевого трафика.
  • Знание инструментов для краулинга и парсинга в экосистеме Node (Crawlee, Cheerio или аналоги), а также умение выполнять низкоуровневый HTTP-скрапинг, когда браузер не нужен.
  • Опыт работы с бэкенд-сервисами на Node и REST API, знание SQL-баз данных (PostgreSQL или аналог).
  • Умение писать переиспользуемый код в стиле библиотеки: чёткие границы модулей, паттерны плагинов/стратегий, типизированные интерфейсы, версионированная конфигурация. Важно уметь показать пример, где несколько разовых решений были обобщены в единый движок.
  • Практический опыт борьбы с антибот-системами: Cloudflare Bot Management, Imperva, reCAPTCHA v2/v3, Turnstile, лимитирование частоты запросов; понимание браузерного и TLS-фингерпринтинга, стратегий использования прокси, сохранения сессий, платформ управляемых stealth-браузеров. Умение вовремя понять, что решение с CAPTCHA не поможет, потому что проблема в другом.
  • Практическое применение LLM для извлечения данных: структурированный вывод на основе схемы, проектирование промптов, валидация результатов, учёт стоимости токенов, понимание, когда LLM лучше селекторов, а когда — нет, и как защититься от «уверенных, но неверных» ответов.
  • Инженерия качества данных: валидация схемы, тестирование по эталонам/снимкам и сравнение данных с предыдущими запусками, нормализация, нечёткое сопоставление имён, дедупликация, идемпотентная запись.
  • Владение Git, навыки проведения код-ревью, понимание важности покрытия тестами, опыт работы с CI/CD, Docker, деплоем в облаке (предпочтительно AWS). Способность читать код на JVM для точного переноса логики.
  • Рабочий уровень английского языка для ежедневной технической коммуникации с командой заказчика.
  • Будет плюсом:
  • Опыт миграции скрапинг-системы с одного языка/рантайма на другой без простоя.
  • Опыт настройки краулеров на основе конфигурации или декларативного подхода, где источники — это данные, а не код.
  • Знакомство с фреймворками для агентов или агентскими рабочими процессами (вызов инструментов, многошаговые циклы, участие человека в цикле) — LangGraph, Claude Agent SDK или аналоги; агентская автоматизация браузера (Browser Use, Stagehand); MCP-серверы.
  • Знание управляемых платформ для скрапинга/извлечения данных (Firecrawl, Kadoa, ScrapeGraphAI, Apify) и коммерческих поставщиков данных как альтернативы скрапингу.
  • Опыт извлечения данных из PDF и документов (OCR, извлечение таблиц, структурированный парсинг); опыт скрапинга порталов государственных органов США или публичных реестров.
  • Понимание юридических аспектов скрапинга и границ правил использования сервисов: robots.txt, лимитирование частоты запросов, стены аутентификации, условия распространения данных.
  • Опыт фронтенд-разработки (React) для внутреннего UI операций — приветствуется, но не является заменой требований к краулеру.
навыки

Стек и инструменты

Поделиться

Подходит ли вам эта вакансия?

Зарегистрируйтесь и загрузите резюме — посчитаем % совпадения с этой вакансией, подсветим сильные стороны и что стоит подтянуть

Создать аккаунт PDF-парсинг резюме за 2 минуты

Похожие вакансии

6 вакансий
V
vicentrasoft.com
9 ч. назад

Старший Fullstack и AI/ML инженер

~2 006 588 ₸ оценка

Создавать AI-решения для автоматизации бизнес-процессов: от интерфейсов на React до бэкенда на Node.js/Python и ML-моделей. Нужен опыт с LLM, RAG, интеграцией с ERP/CRM и продакшн-поддержкой. Предлагают проектную или частичную занятость, удалённо.

React Node.js TypeScript +11
senior удал. dj
E
ELITEX
10 ч. назад

Full Stack разработчик (NestJS, Angular)

Ищем опытного Full Stack разработчика (NestJS + Angular) для проекта в сфере IBM ELM. Нужно проектировать и развивать enterprise-приложения, работать с MongoDB и Redis, участвовать в архитектурных решениях. Требуется 4+ года коммерческого опыта с обеими технологиями, знание Docker и Git. Предлагают работу в компании с сильной технической экспертизой и хорошими условиями.

NestJS Angular MongoDB +7
senior удал. dou
C
Computools
12 ч. назад

Senior Backend Engineer

~2 006 588 ₸ оценка

Компанія Computools шукає Senior Backend Engineer для роботи над різноманітними проєктами для клієнтів по всьому світу. Потрібен досвід з Node.js, TypeScript, Python/Java/C#, а також знання SQL/NoSQL, Kubernetes та мікросервісної архітектури. Компанія пропонує віддалену роботу, гнучкий графік, курси англійської та можливості кар'єрного зростання.

Node.js TypeScript Python +11
senior удал. dou
Orion soft
O
Orion soft
12 ч. назад

Frontend-разработчик

~2 006 588 ₸ оценка

Ищем опытного фронтенд-разработчика для развития админ-интерфейса продукта StarVault — системы управления секретами и доступом. Нужно уверенное знание JavaScript и SPA, желательно опыт с Ember.js, а также умение работать с REST API и писать тесты. Предлагают работу в российской ИТ-компании, создающей продукты для программно-определяемых ЦОД.

Ember.js JavaScript SPA +5
senior удал. hh
SkillStaff
S
SkillStaff
15 ч. назад

Frontend-разработчик

~2 006 588 ₸ оценка

Frontend-разработчик для создания 2D-игры по шахматам и веб-интерфейсов. Нужен опыт от 4 лет, JavaScript/TypeScript, React, SCSS, WebSocket и оптимизация производительности. Работа удаленная, в стартап-среде с высокой динамикой.

Frontend JavaScript TypeScript +10
senior удал. hh
S
Strong SD
16 ч. назад

Старший Full-Stack разработчик ПО

~2 006 588 ₸ оценка

Старший full-stack разработчик для AI-продуктов: создание интерфейсов и бэкенда для корпоративных клиентов. Нужен опыт 8+ лет, React, TypeScript, Node.js, Python и облачные технологии. Предлагают удаленную работу, гибкий график, медстраховку и обучение.

React TypeScript Node.js +8
senior удал. dou