428,452open jobs
14,648companies
62,351added this week
Browse all
Location
Remote (Georgia)
Seniority
Middle · 3+ years exp
Employment
Full-Time
Overview
Company
Impact
Profile match
Jaxel is an AI-native product engineering company that helps enterprises and startups build production-ready software faster using AI agents plus expert human oversight.

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

Вам предстоит не только разрабатывать ядро и модули краулера, но и переносить существующие реализации с 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 операций - приветствуется, но не является заменой требований к краулеру.
Free account
Stop reading job ads. Get the ones that fit.
One free account turns this page into a shortlist built around your stack, your level and your pay.
Match on every job. Stack, seniority, pay and location, scored against your profile.
428,452 open roles. Read straight off company career pages, refreshed every day.
Unlimited applications. Every one you send is tracked in one place, on-site or on a company board.
3 tailored CVs a month. Rewritten for the exact job you are applying to. Included free.
Create a free account
Free forever. No card. Under a minute.

Your match

How well do you fit this role?
Two answers are enough for a real match. No account needed.
Check my fit
Answers stay in this browser until you create an account.

Recommended for you based on this role

Similar stack
Same company
Tbilisi
Software Engineer 2 3 hours ago
$20k – $50k per year (Estimated) • In office • Full-Time • 2+ years exp • Bachelor's Degree • Bengaluru
Python
JavaScript
TypeScript
SQL
C#
C#
.NET
Databases
MySQL
PostgreSQL
Snowflake
AI/ML
Spark
Frontend
Angular
DevOps
Azure
Git
AWS
Analytics
Tableau
Power BI
SAP BusinessObjects
Apply
Cloud Engineer - SRE 2 hours ago
$20k – $49k per year (Estimated) • In office • 6+ years exp • Mumbai
Python
JavaScript
Node JS
Node JS
Commander.js
DevOps
Terraform
GitHub Actions
OpenTelemetry
AWS CDK
Prometheus
CI/CD
GitOps
ArgoCD
AWS
Kubernetes
Grafana
Platform Engineering
Self-Healing
Tekton
Amazon EKS
AWS Lambda
FinOps
GitHub
Amazon S3
IAM
Amazon CloudWatch
Apply
DevOps Engineer 2 hours ago
$21k – $51k per year (Estimated) • In office • 5+ years exp • Bachelor's Degree • Noida
Python
PowerShell
Bash
Databases
MySQL
PostgreSQL
MS SQL
DevOps
Puppet
Ansible
VMWare
Chef
CI/CD
Jenkins
Git
AWS
Docker
Kubernetes
Configuration Management
Nagios
AWS Lambda
Amazon EC2
OpenStack
Amazon S3
Amazon CloudWatch
Apply
$85k – $160k per year • Equity • In office • Full-Time • 7+ years exp • Bachelor's Degree • Denver • Waltham • Boston • Kansas City
Python
SQL
Analytics
Power BI
Microsoft Excel
Apply
$37k – $107k per year (Estimated) • Remote • 3+ years exp • Tbilisi
SQL
Management
Confluence
Jira
YouTrack
QA
Postman
Insomnia
Apply
$37k – $107k per year (Estimated) • Remote • 3+ years exp • Tbilisi
SQL
Management
Confluence
Jira
YouTrack
QA
Postman
Insomnia
Apply
Remote • Full-Time • 5+ years exp • Barcelona • Madrid • Warsaw • Tallinn • Helsinki
C#
Game Dev
Unity
Apply
$67k – $196k per year (Estimated) • Remote • Full-Time • Tbilisi
Apply
Remote • 3+ years exp • Tbilisi
Go
JavaScript
TypeScript
Databases
PostgreSQL
Redis
RabbitMQ
Apache Kafka
Frontend
Vue.js
React.js
DevOps
Git
AWS
Docker
Kubernetes
Apply
See all jobs
This is one of many
428,452 more open roles from verified company boards, updated every day.