Исследования
Превратите вопрос о рынке в go-to-market бриф
Задайте рынку точный вопрос, прочитайте страницы категории и цен, на которых основан ответ, соберите формулировки покупателей в X и сохраните GTM-бриф с утверждениями из источников и открытыми вопросами.
Скопировать промпт
Замените поля в квадратных скобках и вставьте в Claude Code, Codex или любой AI с доступом к терминалу. Он установит навык Felo, спросит перед списанием кредитов и выполнит процесс.
Составь go-to-market исследовательский бриф для [продукт], выходящего в [сегмент или ICP] в регионе [регион], на [язык]. Модель: [self-serve / продажи / партнёры]. Какое решение поддерживает: [запуск / цены / репозиционирование]. Период: [последние 90 дней / последние 12 месяцев]. Подготовь Markdown-бриф с: 1. Определением сегмента: кто они, что используют сегодня и что источники говорят о размере — со ссылкой или «Нет данных». 2. Языком покупателей: как они описывают проблему, со ссылками и датами. 3. Альтернативами: от чего они уходят, включая таблицы и «ничего не делать». 4. Возражениями и доказательствами, которые требуют покупатели. 5. Открытыми вопросами, на которые публичные источники не отвечают. 6. Полным списком источников. Правила: - Каждое рыночное утверждение требует ссылки и даты. Никогда не оценивай размер рынка, рост или бюджет на ощущениях. - Разделяй независимые источники, страницы вендоров и собственные выводы. - X используй для языка и возражений, а не как доказательство размера рынка. - Преврати период и регион в явные значения. - Перед расходом кредитов покажи планируемые вызовы API и дождись моего одобрения. - Ничего не публикуй, не отправляй, не планируй и не записывай в CRM. - Запиши результат в ./gtm-brief.md и кратко изложи его в чате.
В копию также входят шаги установки и правила безопасности.
Что получится
Пример вывода одного запуска. Не живая генерация.
GTM-бриф — [сегмент] в [регион]
Определение сегмента
Небольшие операционные команды, которые ведут расписание в таблицах. Размер: нет данных в проверенных публичных источниках — без источника цифру в бриф не писать.
Язык покупателей
- «мы всё ещё делаем это в таблице» — пост X, 2026-10-18
- «настройка — самая сложная часть» — пост X, 2026-10-02
Помечено как язык, а не как доказательство распространённости.
Альтернативы, которые называют покупатели
Таблицы, существующий набор инструментов и ничего не делать. Источник: https://example.com/thread (2026-10-18).
Возражения и требуемые доказательства
Проверка безопасности и путь миграции. Покупатели просят именованного референса; публично его нет, поэтому вопрос остаётся открытым.
Открытые вопросы
- Какая часть сегмента уже имеет отдельную строку бюджета?
- Меняется ли возражение с размером компании?
Источники
- https://example.com/category-page
- https://example.com/pricing-page
- https://example.com/thread
Реальные вызовы
Для разработчиков: тот же процесс в виде кода в порядке выполнения.
Показать реальные вызовы API
Сформулируйте вопрос о рынке
Chat возвращает ответ и использованные страницы, поэтому начните с вопроса, достаточно узкого для ответа: кто покупает, что использует сегодня, какие возражения возникают. Сохраняйте ресурсы как ссылки-подсказки: ответ — подсказка, ссылки — доказательства, они же замыкают список источников.
gtm.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 product = "scheduling tool"; // replace with your product const segment = "operations teams at 50-200 person companies"; const region = "DACH"; const market = await felo<ChatData>("/v2/chat", { query: `Who buys ${product} for ${segment} in ${region}, what do they use today, and what objections come up?`, }); const seedSources = market.data.resources.slice(0, 5);Пример вывода
{ "answer": "Buyers in this segment usually start from spreadsheets and …", "sources": [ { "link": "https://example.com/category-page", "title": "…", "snippet": "…" } ] }Прочитайте сами страницы категории
Загрузите страницы, которые формируют рынок: обзор категории, сравнение и цены. Извлеките их в Markdown с читаемостью и проставьте дату загрузки, потому что качество чтения рынка зависит от страниц за ним.
gtm.ts type ExtractData = { data: { content: string } }; const marketPages = [ { url: "https://example.com/category", title: "Category overview" }, { url: "https://example.com/comparison", title: "Comparison page" }, { url: "https://example.com/pricing", title: "Pricing page" }, ]; const pages = await Promise.all( marketPages.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/category", "checkedAt": "2026-10-30", "content": "# Category overview\n\nExtracted page text…" }Соберите формулировки покупателей
Ищите в X слова, которыми покупатели описывают проблему, а не название вашего продукта. Сохраняйте аккаунты и даты; бриф использует посты для языка и возражений и никогда — как меру размера рынка или частоты возражения.
gtm.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 language = await felo<XData>("/v2/x/tweet/search", { query: `(spreadsheet OR "scheduling tool") (alternative OR "looking for")`, limit: 25, since_time: since, }); const quotes = language.data.tweets.slice(0, 5);Пример вывода
{ "data": { "tweets": [ { "content": "we are still doing this in a spreadsheet", "author": { "username": "example_ops" }, "created_at": "2026-10-18T11:05:00Z", "metrics": { "retweet_count": 1, "favorite_count": 18 } } ] } }Напишите бриф вокруг решения
Соберите определение сегмента, язык покупателей, альтернативы, возражения и открытые вопросы в один Markdown. Каждое утверждение сохраняет источник и дату, размер рынка указывается только при наличии источника, а то, чего нет в публичных источниках, идёт в открытые вопросы, а не в выводы.
gtm.ts const today = new Date().toISOString().slice(0, 10); const sourceLine = (title: string, url: string, date: string) => `- ${title}: ${url} (checked ${date})`; const brief = [ `# GTM brief — ${segment} in ${region}`, "", "## Segment definition", "See the category page for how the segment is described. Market size: Not available from public sources reviewed.", "", "## Buyer language", ...quotes.map((post) => `- @${post.author.username}, ${post.created_at.slice(0, 10)}: ${post.content}`), "", "## Alternatives buyers mention", "Spreadsheets, an incumbent suite, and doing nothing. Treated as language until a source ranks them.", "", "## Objections and proof required", "Migration path and a named reference. Marked open: whether the objection changes by company size.", "", "## Open questions", "- How much of the segment already has a dedicated budget line?", "- Which objection blocks a pilot most often?", "", "## Sources", ...pages.map((page) => sourceLine(page.title, page.url, page.checkedAt)), ...seedSources.map((source) => `- ${source.title}: ${source.link}`), ].join("\n"); console.log(brief);Пример вывода
# GTM brief — operations teams at 50-200 person companies in DACH
Сохраните доказательства для следующего рынка
Создайте один LiveDoc на сегмент и регион, добавьте загруженные страницы как URL-ресурсы, а бриф — как документ. Следующий рынок начнёт с тех же источников без повторной загрузки страниц категории, а повторное добавление URL дедуплицируется.
gtm.ts type LiveDocData = { data: { short_id: string } }; const briefDoc = await felo<LiveDocData>("/v2/livedocs", { name: `GTM: ${segment} — ${region}`, description: `Market evidence checked ${today}`, }); await felo(`/v2/livedocs/${briefDoc.data.short_id}/resources/urls`, { urls: pages.map((page) => ({ url: page.url, title: page.title })), }); await felo(`/v2/livedocs/${briefDoc.data.short_id}/resources/doc`, { title: `GTM brief ${today}`, content: brief, }); console.log(briefDoc.data.short_id); // reuse for the next regionПример вывода
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Что входит
- Чтение рынка с источниками из Chat API и страницы, на которых оно основано
- Страницы категорий, сравнений и цен в Markdown
- Язык покупателей и возражения из X с аккаунтами и датами
- Бриф, построенный вокруг решения о запуске, а не вокруг темы
- LiveDoc, чтобы следующий регион или запуск использовал те же доказательства
Чего не делает
- Только публичные источники; без платных отчётов, панелей и интервью с клиентами
- Никогда не оценивает размер рынка или рост — при отсутствии данных пишет «Недоступно»
- Посты X — язык и сигнал, а не репрезентативная выборка покупателей
- Не выбирает сегмент или цену за вас
- Не публикует бриф и не пишет в CRM
Вопросы
Нужен ли платный отчёт о рынке?
Нет. Процесс читает публичные источники и помечает пробелы. Если отчёт уже есть, добавьте его документом в LiveDoc и цитируйте как любой другой источник.
Можно исследовать рынок на другом языке?
Да. Задайте регион и язык. Цитаты остаются на языке оригинала с переводом рядом, чтобы локальный ревьюер проверил формулировки.
Он даёт размер рынка?
Только если источник прямо указывает его, со ссылкой и датой. Иначе бриф пишет «Недоступно», не выдумывая число и не экстраполируя из одного поста.
Можно общаться с клиентами?
Нет. Он читает публичные источники. Добавьте заметки интервью документом и пометьте их внутренними; бриф не выдаёт приватные заметки за публичные доказательства.
Чем это отличается от рецепта исследовательского брифа?
Исследовательский бриф отвечает на один вопрос. Этот процесс структурирует доказательства вокруг решения go-to-market — сегмент, язык покупателей, альтернативы, возражения и доказательства, которые просят покупатели, — чтобы результат вошёл в план запуска.
Сколько стоит бриф?
Каждый вызов chat, извлечения и поиска в X расходует кредиты; актуальные тарифы на странице цен. Промпт просит одобрение до трат.
Связанные процессы
Превратите один вопрос в исследовательский бриф с источниками
Спросите веб, сохраните страницы, на которых основан ответ, как Markdown, добавьте мнения практиков из X и оставьте доказательства в LiveDoc, который можно будет искать позже.
Открыть рабочий процессИсследованияСоберите разбор конкурента, которым сразу сможет пользоваться отдел продаж
Соберите страницы самого конкурента, публикации о нём и отзывы покупателей в X, затем сведите разбор, где каждое утверждение имеет источник, дату и статус.
Открыть рабочий процессОфисПревратите исследовательскую страницу в презентацию
Извлеките страницу, сохраните её как контекст LiveDoc, затем дайте PPT Task API собрать deck и опрашивайте задачу до готовой ссылки.
Открыть рабочий процессАдаптируйте под себя
Тот же рецепт, подстроенный под ваш реальный процесс.
Запускайте по регионам
Сохраняйте структуру разделов и меняйте только регион и язык. Один LiveDoc на регион и те же вопросы, чтобы брифы можно было сравнивать, а не превращать в три несвязанных документа.
Добавьте свои заметки интервью
Вставьте заметки звонков с клиентами как документ и пометьте их внутренними. Бриф сможет ссылаться на них рядом с публичными доказательствами, но никогда не выдаст приватную заметку за публичный источник.
Передайте в deck запуска
Отдайте раздел возражений и доказательств в процесс создания deck, сохранив список источников. Бриф остаётся слоем доказательств, deck — его презентацией, а не вторым источником истины.
Продолжить
Справочные страницы этого рецепта и куда двигаться дальше.