Felo API PlatformFelo API Platform

Исследования

Исследуйте целевую компанию перед первым контактом

Прочитайте сайт компании, свежие публикации и открытые посты, затем напишите бриф об аккаунте: недавние шаги, вероятные приоритеты, темы для разговора и честные неизвестные.

Время20 минутУровеньНачальныйОбновлено2026-10-30
Для когоОснователи и операторыАккаунт-менеджерыРуководители продаж

Скопировать промпт

Замените поля в квадратных скобках и вставьте в Claude Code, Codex или любой AI с доступом к терминалу. Он установит навык Felo, спросит перед списанием кредитов и выполнит процесс.

Составь бриф по аккаунту [название компании или домен] перед [первым контактом / звонком-знакомством / продлением].

Наше предложение: [продукт или услуга]. Интересующий нас покупатель: [роль]. Период последних событий: [последние 90 дней / последние 12 месяцев].

Прочитай их сайт, публичные материалы и публичные посты. Подготовь Markdown-бриф с:
1. Тем, что они делают, одним абзацем, с источниками.
2. Последними событиями: запуски, финансирование, найм, руководство, партнёрства — с датами и ссылками.
3. Вероятными приоритетами на квартал, явно помеченными как вывод.
4. Темы для начала разговора: три конкретных наблюдения, каждое с источником.
5. Неизвестным: что не удалось проверить по публичным источникам.
6. Полным списком источников.

Правила:
- Никогда не выдумывай имя контакта, email, телефон, численность, выручку или сумму финансирования.
- Только публичные источники: без приватных данных, страниц только с входом и спарсенных каталогов.
- Не записывай в CRM или любую другую систему. Бриф — это файл, который проверяет человек.
- Помечай каждый вывод как вывод; факты оставляй со ссылками и датами.
- Не подавай намерение покупателя как факт.
- Перед расходом кредитов покажи планируемые вызовы API и дождись моего одобрения.
- Ничего не отправляй, не планируй, не публикуй и никому не пиши.
- Запиши результат в ./account-brief.md и кратко изложи его в чате.

В копию также входят шаги установки и правила безопасности.

Что получится

Пример вывода одного запуска. Не живая генерация.

Пример брифа аккаунта (фрагмент)

Бриф аккаунта — [компания], проверено 2026-10-30

Чем занимаются

Делает роботов для сборки заказов на складах средних логистических операторов. Источник: https://example.com/about (проверено 2026-10-30).

Последние движения

  • Открыл вторую площадку сборки — https://example.com/news/expansion (2026-10-24)
  • Нанимает команду «deployment operations» — https://example.com/careers (проверено 2026-10-30)
  • Пост их аккаунта о партнёрской интеграции — @example_company (2026-10-21)

Вероятные приоритеты (вывод)

Более быстрые внедрения на большем числе площадок. Вывод из поста о расширении и новой роли внедрения — не заявленный план и публично не подтверждён.

Темы для разговора

  • Вторая площадка новая: спросить, как меняется плейбук внедрения, когда площадки разные. Источник: https://example.com/news/expansion
  • Отдельная роль deployment operations намекает на передачу между продажами и установкой. Источник: https://example.com/careers

Неизвестное

  • Кто отвечает за внедрение сейчас: нет данных из публичных источников.
  • Размер парка и суммы контрактов: нет данных.

Источники

  • https://example.com/about
  • https://example.com/news/expansion
  • https://example.com/careers

Реальные вызовы

Для разработчиков: тот же процесс в виде кода в порядке выполнения.

Показать реальные вызовы API
  1. Получите обзор компании

    Спросите Chat, чем занимается компания и какие публичные изменения были недавно, сохранив цитируемые источники.

    account.ts
    const BASE = "https://openapi.felo.ai";
    const headers = {
      Authorization: `Bearer ${process.env.FELO_API_KEY}`,
      "Content-Type": "application/json",
    };
    
    async function felo<T>(path: string, body?: unknown): Promise<T> {
      const res = await fetch(`${BASE}${path}`, {
        method: body ? "POST" : "GET",
        headers,
        body: body ? JSON.stringify(body) : undefined,
      });
      if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
      return res.json() as Promise<T>;
    }
    
    type ChatData = {
      data: {
        answer: string;
        resources: { link: string; title: string; snippet: string }[];
      };
    };
    
    const company = "Example Robotics";
    const domain = "example.com";
    const buyerRole = "Head of Operations";
    
    const overview = await felo<ChatData>("/v2/chat", {
      query: `What does ${company} do, who buys from it, and what changed in the last 90 days?`,
    });
    
    const seedSources = overview.data.resources.slice(0, 5);

    Пример вывода

    {
      "answer": "The company builds …",
      "sources": [
        { "link": "https://example.com/about", "title": "…", "snippet": "…" }
      ]
    }
  2. Прочитайте сайт, цены и вакансии

    Через Web Fetch прочитайте About, цены и вакансии, чтобы понять продукт, клиентов и открытые роли.

    account.ts
    type ExtractData = { data: { content: string } };
    
    const companyPages = [
      { url: `https://${domain}/about`, title: "About" },
      { url: `https://${domain}/pricing`, title: "Pricing" },
      { url: `https://${domain}/careers`, title: "Careers" },
    ];
    
    const pages = await Promise.all(
      companyPages.map(async (page) => {
        const res = await felo<ExtractData>("/v2/web/extract", {
          url: page.url,
          output_format: "markdown",
          with_readability: true,
          with_cache: true,
        });
        const checkedAt = new Date().toISOString().slice(0, 10);
        return { ...page, checkedAt, content: res.data.content };
      }),
    );

    Пример вывода

    {
      "url": "https://example.com/careers",
      "checkedAt": "2026-10-30",
      "content": "# Careers\n\nOpen roles: deployment operations…"
    }
  3. Посмотрите открытые сигналы за 90 дней

    Ищите в X название компании и продукта, сохраняя открытые посты, аккаунты и даты за последние 90 дней.

    account.ts
    type XData = {
      data: {
        tweets: {
          content: string;
          author: { username: string };
          created_at: string;
          metrics: { retweet_count: number; favorite_count: number };
        }[];
      };
    };
    
    const since = Math.floor((Date.now() - 90 * 24 * 60 * 60 * 1000) / 1000);
    
    const posts = await felo<XData>("/v2/x/tweet/search", {
      query: `"${company}" (hiring OR launch OR partnership OR expansion)`,
      limit: 20,
      since_time: since,
    });
    
    const recent = posts.data.tweets.slice(0, 5);

    Пример вывода

    { "data": { "tweets": [
      {
        "content": "We just opened our second assembly site",
        "author": { "username": "example_company" },
        "created_at": "2026-10-21T14:02:00Z",
        "metrics": { "retweet_count": 4, "favorite_count": 31 }
      }
    ] } }
  4. Напишите бриф об аккаунте

    Опишите обзор компании, недавние шаги, вероятные приоритеты, темы для разговора, неизвестные и источники.

    account.ts
    const today = new Date().toISOString().slice(0, 10);
    
    const accountBrief = [
      `# Account brief — ${company}`,
      `Checked ${today}. Buyer role: ${buyerRole}.`,
      "",
      "## What they do",
      overview.data.answer,
      "",
      "## Recent moves",
      ...recent.map(
        (post) => `- ${post.created_at.slice(0, 10)}: ${post.content} (from @${post.author.username})`,
      ),
      ...pages.map((page) => `- ${page.title} page captured ${page.checkedAt}: ${page.url}`),
      "",
      "## Likely priorities (inference)",
      "<!-- One or two sentences from the moves above. Mark them as inference, never a stated plan. Delete this comment when filled. -->",
      "",
      "## Conversation starters",
      ...recent.slice(0, 3).map(
        (post) => `- Ask about: ${post.content.slice(0, 100)} (dated ${post.created_at.slice(0, 10)})`,
      ),
      "",
      "## Unknowns",
      "- Who owns the workflow we sell into: Not available from public sources.",
      "- Contract values and team size: Not available.",
      "",
      "## Sources",
      ...pages.map((page) => `- ${page.title}: ${page.url}`),
      ...seedSources.map((source) => `- ${source.title}: ${source.link}`),
    ].join("\n");
    
    console.log(accountBrief);

    Пример вывода

    # Account brief — Example Robotics
  5. Сохраните в LiveDoc

    Сохраните бриф и источники в LiveDoc, чтобы использовать их в следующем контакте.

    account.ts
    type LiveDocData = { data: { short_id: string } };
    
    const accountDoc = await felo<LiveDocData>("/v2/livedocs", {
      name: `Account: ${company}`,
      description: `Briefs and sources checked ${today}`,
    });
    
    await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/urls`, {
      urls: [
        ...pages.map((page) => ({ url: page.url, title: page.title })),
        ...seedSources.map((source) => ({ url: source.link, title: source.title })),
      ],
    });
    
    await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/doc`, {
      title: `Account brief ${today}`,
      content: accountBrief,
    });
    
    console.log(accountDoc.data.short_id); // the next call reuses this LiveDoc

    Пример вывода

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

Что входит

  • Обзор компании с источниками из Chat
  • Извлечение сайта, цен и вакансий в Markdown
  • Датированные открытые посты в X
  • Структурированный бриф об аккаунте
  • LiveDoc с доказательствами

Чего не делает

  • Не предоставляет контактные email, телефоны и личные данные
  • Не читает приватные данные и страницы только для входа
  • Не пишет в CRM и не отправляет сообщения
  • Численность, выручка и инвестиции — только при явном источнике
  • Приоритеты и намерения помечаются как вывод

Вопросы

Он даёт email контактов?

Нет. Процесс только исследует публичные данные и не предоставляет email, телефоны или личную информацию.

Откуда данные?

Chat возвращает обзор компании с источниками, Web Fetch читает сайт, цены и вакансии, X Search добавляет открытые посты. Каждый элемент сохраняет ссылку и дату.

Можно исследовать не-технологичные компании?

Да. Там, где публичных данных мало, бриф явно покажет неизвестные, а не будет выдумывать.

Он пишет в CRM?

Нет. Он создаёт только Markdown-бриф; интеграцию с CRM нужно сделать самостоятельно.

Приоритеты — это факты?

Нет. Бриф помечает «вероятные приоритеты» как вывод и приводит основания; финальное решение за продавцом.

Сколько стоит один запуск?

Chat, извлечение и поиск в X оплачиваются по факту использования; актуальные тарифы на странице цен, промпт просит одобрение до трат.

Связанные процессы

Адаптируйте под себя

Тот же рецепт, подстроенный под ваш реальный процесс.

Только один сегмент

Сузьте отрасль или регион, чтобы бриф стал конкретнее.

Добавьте последний анонс

Добавьте страницу анонса как дополнительный источник, чтобы темы для разговора были актуальными.

Вместе с анализом конкурентов

Сопоставьте приоритеты из брифа аккаунта с позиционированием из анализа конкурентов и найдите угол дифференциации.

Справочные страницы этого рецепта и куда двигаться дальше.