Назад к кейсам
РЕАЛИЗОВАННЫЙ ПРОДУКТ / B2B-ПОИСК

Кейс Istak: разработали систему поиска B2B-компаний по странам

Операторская система с картой, которая превращает поиск по странам и категориям в сохраняемый каталог компаний.

Мы разработали для Istak рабочую систему поиска потенциальных B2B-партнёров. Оператор выбирает страну, категорию покупателей и запускает поиск; результаты и состояние обработки сохраняются в базе. Карта показывает прогресс по категориям, а для США доступен отдельный поиск по штатам.

PRODUCTIstak Global Discovery
STACKReact / Fastify / PostgreSQL
SEARCHBrave Search
Концептуальная иллюстрация поиска B2B-компаний по странам, структурированных результатов и базы данных
Концептуальная иллюстрация реализованного процесса; это не скриншот и не реальные данные компаний.
ISTAK_DISCOVERY.FLOW
ВЫБОР страна | при необходимости штат США
→ КАТЕГОРИЯ импортёр / дистрибьютор / оптовик / сеть / интернет-магазин
→ ПОИСК через серверный API
→ СОХРАНЕНИЕ компаний и версионированного прогресса
→ ПРОСМОТР каталога и статуса на карте
CASE STUDY / RU

Задача бизнеса

Istak нужен был повторяемый способ находить потенциальных B2B-покупателей на разных рынках. Обычный веб-поиск оставляет разрозненные ссылки и не показывает, какие страны, типы покупателей или штаты уже обработаны. Первый рабочий этап мы построили вокруг каталога стран, географического обзора и долговременного хранения результатов.

От свободного поиска к точной области работы

Задача поиска была конкретной: находить возможных покупателей алкогольной продукции и крепких напитков, сохраняя контекст для последующей оценки сайтов. Импортёр и интернет-магазин — разные коммерческие профили. Если искать их одним общим запросом, сложнее понять и состав выдачи, и реальный прогресс оператора. Поэтому тип покупателя стал явным параметром поиска, а не ярлыком, который проставляют после получения результатов.

География влияет на смысл результата не меньше. Каталог стран позволяет переходить между рынками, не теряя историю обработки. Для США понадобилась детализация: общенациональный поиск и поиск по Калифорнии должны различаться, даже если они обнаружили одну компанию. Это требование одновременно определило контракт API, ключи хранения и отображение прогресса.

Что мы сделали

Мы реализовали интерфейс на React и Vite с мировой картой jsVectorMap, API на Fastify и хранением в PostgreSQL. Оператор может искать пять категорий: импортёры, дистрибьюторы, оптовики, розничные сети и интернет-магазины. Для США можно выбрать всю страну либо один из 50 штатов; прогресс каждого штата учитывается отдельно.

Один интерфейс, разные зоны ответственности

React-клиент отвечает за выбор страны и категории, состояние карты, список компаний и обратную связь оператору. Он запрашивает у API каталог стран и число завершённых категорий, а затем обновляет цвета карты после асинхронной загрузки данных. Поэтому карта показывает сохранённую работу, а не служит декоративной графикой или копией ручной таблицы рынков.

Fastify обрабатывает поисковые запросы и обращается к провайдеру. PostgreSQL хранит компании, контекст их обнаружения и прогресс по географии и категориям. Браузер отображает и фильтрует процесс, а сервер остаётся источником истины для сохранённых результатов и статусов.

Сценарий оператора

Оператор выбирает страну на карте или в списке. Для США при необходимости уточняет штат. Затем выбирает категорию и запускает поиск: интерфейс передаёт точную область серверу, показывает найденные компании и обновляет статус категории. В карточке компании доступны источник и описательные сведения; при возвращении к стране сохранённые результаты и прогресс остаются на месте.

Конкретный проход без вымышленных компаний

Предположим, оператор выбирает Германию и категорию дистрибьюторов. Dashboard запрашивает поиск по этому рынку и профилю покупателя. Сервер получает веб-результаты, сохраняет пригодные записи компаний и обновляет статус категории. Интерфейс затем загружает сохранённый каталог, а не держит выдачу как временный список.

Для США сценарий тот же, но с дополнительной областью. При выборе Калифорнии код штата сохраняется вместе с категорией; при выборе всей страны область штата остаётся пустой. В селекторе штатов видны собственные счётчики компаний и обработанных категорий. Одна компания может встретиться в разных категориях или штатах, но эти пути обнаружения привязаны к единой записи компании.

Карта как экран прогресса

Карта получает состояние стран из API и выделяет пять уровней завершённости — от одной до пяти обработанных категорий текущей версии поиска. Завершённая категория означает, что выполнен её набор запросов, а не что найден каждый возможный покупатель. Для штатов США хранятся отдельные счётчики и выборки: поиск по Калифорнии не смешивается с общенациональным.

Что именно означают зелёные уровни

Пяти категориям покупателей соответствуют пять ступеней прогресса на мировой карте. Страна переходит от нуля к одной завершённой категории после успешного окончания поиска по текущей версии запросов; с каждой следующей категорией цвет становится насыщеннее. Для США мировая карта отражает общенациональную область, а селектор штатов показывает их прогресс отдельно. Обработанные штаты не создают ложного впечатления, будто завершён поиск по всей стране.

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

Поиск, хранение и качество данных

Сервер выполняет поиск с учётом выбранной категории и географии через Brave Search. Он убирает повторяющиеся домены и сохраняет результаты вместе с контекстом их обнаружения в PostgreSQL. Состояние поиска по категориям тоже сохраняется, поэтому к рынку можно вернуться позже. Сниппеты остаются материалом для проверки, а не подтверждёнными контактами или квалифицированными покупателями.

Как веб-результат попадает в каталог

Формулировка поиска зависит от категории покупателя и выбранной географии. Поиск дистрибьютора отвечает на иной вопрос, чем поиск интернет-магазина; штат также отделён от общенациональной области. Оператор задаёт осмысленную область и видит её результат отдельно от других поисков.

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

Ключевые решения и компромиссы

Поисковые запросы и учётные данные остаются на сервере. Каждый запуск ограничен, чтобы оператор получил понятный результат и статус. Широкий поиск может включать кандидатов, которых ещё нужно проверить; национальный домен помогает организовать список, но не подтверждает местонахождение или релевантность компании. Это делает этап поиска полезным, не выдавая обнаружение за завершённую квалификацию.

Ограниченный поиск и понятные ошибки

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

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

Полученный результат

Istak получил рабочую операторскую систему, связывающую географию, тип покупателя, найденные компании и состояние обработки. Реализованный этап охватывает поиск и просмотр. AI-анализ, синхронизация с CRM и email-рассылка относятся к следующим этапам; здесь мы не заявляем неподтверждённые продажи или экономию времени.

Рабочий первый этап и понятное продолжение

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

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

Фактический путь данных

  1. Страна / штат США + категория
  2. Fastify формирует запрос → Brave Search
  3. Нормализация и удаление дублей
  4. PostgreSQL: компания + состояние категории
  5. Каталог компаний + прогресс на карте

Нужна похожая операторская система или процесс работы с данными?

Обсудить проект · Разработка продукта · AI-специалист в Армении · Другие кейсы