К содержимому
Кейсы

Evaboot

Из подкаста с Val: «С вашей фазой QA я почти могу загружать новую версию в Chrome Store слепо» - Жан-Батист Жезекель, соучредитель. Расширение браузера

Дата

Evaboot

Из подкаста с Val: «С вашей фазой QA я почти могу загружать новую версию в Chrome Store слепо» - Жан-Батист Жезекель, соучредитель.

Расширение браузера для парсинга и извлечения данных из LinkedIn

evaboot.com/

Задача

Цель расширения — парсинг LinkedIn. Точнее: извлечение, очистка и поиск электронных писем из LinkedIn Sales Navigator одним щелчком. Это экономит часы работы менеджерам по продажам и специалистам по генерации лидов.

Главная сложность

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

Одна из самых больших проблем в веб-скрейпинге — это именно это: ты пишешь селекторы для элементов, которые существуют сегодня, но могут исчезнуть завтра. И тогда твой код ломается.

Как мы решили

Сначала клиент согласился на полный code review — это было критично для проекта такого масштаба. Мы исправили критические баги и получили расширение, которое работало. Но этого было недостаточно.

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

Результаты за первый месяц:

  • +5,9% увеличение еженедельно активных пользователей
  • -7% снижение оттока (процент пользователей, которые перестали использовать расширение)
  • +3,3% улучшение retention — те, кто установил расширение, остаются активнее дольше

Обработка API сбоев и расширение на другие браузеры

Расширение сильно зависит от внутреннего API LinkedIn. Но когда LinkedIn изменил поведение своего API, запросы начали возвращать null или пустые ответы. Всплеск жалоб от пользователей.

Мы подтвердили, что основная функциональность расширения была целой. Потом интегрировали Sentry для мониторинга ошибок — это помогло нам определить приоритеты для самых критичных проблем.

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

Изначально расширение было разработано для Chrome. Но позже клиент запросил поддержку других браузеров — Brave и Sidekick. Оба основаны на Chromium, но Sidekick представил новый вызов: встроенный блокировщик объявлений блокировал критический LinkedIn API запрос.

Благодаря нашему backend-решению проблема была решена не только для Chrome, но расширение начало работать идеально в Sidekick и Brave. Это расширение поддержки браузеров удовлетворило потребности пользователей и расширило охват продукта.

🎥 Вот как со-основатель Evaboot описал свой опыт работы с нами на подкасте с Val: