Badania
Zamień pytanie rynkowe w brief go-to-market
Zadaj rynkowi precyzyjne pytanie, przeczytaj strony kategorii i cen za odpowiedzią, zbierz, jak kupujący opisują problem na X, i zapisz brief GTM z twierdzeniami ze źródeł i otwartymi pytaniami.
Skopiuj prompt
Podmień pola w nawiasach kwadratowych i wklej do Claude Code, Codex albo AI z dostępem do terminala. Instaluje skill Felo, pyta przed wydaniem kredytów i uruchamia workflow.
Przygotuj briefing badawczy go-to-market dla [produkt] wchodzącego w [segment lub ICP] w [region], w języku [język]. Model: [self-serve / sprzedaż / partner]. Decyzja, którą wspiera: [premiera / ceny / repozycjonowanie]. Okres: [ostatnie 90 dni / ostatnie 12 miesięcy]. Przygotuj briefing w Markdown zawierający: 1. Definicję segmentu: kim są, czego używają dziś i co źródła mówią o rozmiarze — zacytuj źródło lub napisz „Brak danych”. 2. Język kupujących: jak opisują problem, z linkami i datami. 3. Alternatywy: z czego przechodzą, w tym arkusze kalkulacyjne i brak działania. 4. Obiekcje i dowody, których domagają się kupujący. 5. Otwarte pytania, na które publiczne źródła nie odpowiadają. 6. Pełną listę źródeł. Zasady: - Każde twierdzenie rynkowe wymaga linku i daty. Nigdy nie szacuj rozmiaru rynku, wzrostu ani budżetu na wyczucie. - Oddziel niezależne źródła, strony dostawców i własne wnioski. - X używaj do języka i obiekcji, nie jako dowodu rozmiaru rynku. - Zamień okres i region na konkretne wartości. - Zanim zużyjesz kredyty, pokaż planowane wywołania API i poczekaj na moją zgodę. - Nie publikuj, nie wysyłaj, nie planuj i nie zapisuj niczego w CRM. - Zapisz wynik w ./gtm-brief.md i podsumuj go w czacie.
Kopia zawiera też kroki instalacji i zasady bezpieczeństwa.
Co otrzymujesz
Przykładowy wynik jednego uruchomienia. Nie generowanie na żywo.
Briefing GTM — [segment] w [region]
Definicja segmentu
Małe zespoły operacyjne, które prowadzą harmonogram w arkuszach. Rozmiar: brak danych w sprawdzonych źródłach publicznych — bez źródła nie wpisuj liczby.
Język kupujących
- „wciąż robimy to w arkuszu” — post X, 2026-10-18
- „konfiguracja jest najtrudniejsza” — post X, 2026-10-02
Oznaczone jako język, nie dowód powszechności.
Alternatywy wymieniane przez kupujących
Arkusze, istniejący pakiet i nic nie robić. Źródło: https://example.com/thread (2026-10-18).
Obiekcje i wymagane dowody
Przegląd bezpieczeństwa i ścieżka migracji. Kupujący proszą o nazwaną referencję; publicznie jej nie mamy, więc pytanie pozostaje otwarte.
Otwarte pytania
- Jaka część segmentu ma już osobną linię budżetową?
- Czy obiekcja zmienia się z rozmiarem firmy?
Źródła
- https://example.com/category-page
- https://example.com/pricing-page
- https://example.com/thread
Dokładne wywołania
Dla deweloperów: ten sam workflow jako kod, w kolejności wykonania.
Pokaż rzeczywiste wywołania API
Ujmij pytanie rynkowe
Chat zwraca odpowiedź i użyte strony, więc zacznij od pytania dość wąskiego: kto kupuje, czego używa dziś, jakie obiekcje się pojawiają. Trzymaj zasoby jako linki-wskazówki; odpowiedź jest wskazówką, linki są dowodem i zamykają listę źródeł.
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);Przykładowy wynik
{ "answer": "Buyers in this segment usually start from spreadsheets and …", "sources": [ { "link": "https://example.com/category-page", "title": "…", "snippet": "…" } ] }Przeczytaj strony kategorii
Pobierz strony, które ujmują rynek: przegląd kategorii, porównanie i ceny. Wyekstrahuj je jako Markdown z trybem czytania i zapisz datę pobrania, bo jakość lektury zależy od stron za nią.
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 }; }), );Przykładowy wynik
{ "url": "https://example.com/category", "checkedAt": "2026-10-30", "content": "# Category overview\n\nExtracted page text…" }Zbierz, jak kupujący opisują problem
Szukaj na X słów, których kupujący używają, gdy spotykają problem, nie nazwy produktu. Zachowaj konta i daty; brief używa postów do języka i obiekcji, nigdy jako miary rozmiaru rynku lub częstotliwości.
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);Przykładowy wynik
{ "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 } } ] } }Napisz brief wokół decyzji
Połącz definicję segmentu, język kupujących, alternatywy, obiekcje i otwarte pytania w jeden Markdown. Każde twierdzenie zachowuje źródło i datę, rozmiar rynku pojawia się tylko ze źródłem, a czego publiczne źródła nie odpowiadają, idzie do otwartych pytań zamiast inferencji.
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);Przykładowy wynik
# GTM brief — operations teams at 50-200 person companies in DACH
Zachowaj dowody na kolejny rynek
Utwórz jeden LiveDoc na segment i region, dodaj pobrane strony jako zasoby URL i brief jako dokument. Kolejny rynek startuje z tych samych źródeł bez ponownego pobierania kategorii, a dodanie URL ponownie jest deduplikowane.
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 regionPrzykładowy wynik
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Co zawiera
- Lektura rynku ze źródłami z Chat API i stronami za nią
- Strony kategorii, porównania i cen jako Markdown
- Język i obiekcje kupujących z X z kontami i datami
- Brief wokół decyzji o launchu, nie tematu
- LiveDoc, by kolejny region lub launch użył dowodów ponownie
Czego nie robi
- Tylko źródła publiczne; bez płatnych raportów, paneli i wywiadów z klientami
- Nigdy nie szacuje rozmiaru ani wzrostu rynku — bez danych pisze „Niedostępne”
- Posty X to język i sygnał, nie reprezentatywna próba kupujących
- Nie wybiera za ciebie segmentu ani ceny
- Nie publikuje briefu ani nie zapisuje do CRM
Pytania
Czy potrzebny jest płatny raport rynkowy?
Nie. Workflow czyta źródła publiczne i oznacza luki. Jeśli masz raport, dodaj go jako dokument w LiveDoc i cytuj jak inne źródło.
Czy można badać rynek w innym języku?
Tak. Ustaw region i język. Cytaty zostają w oryginale z tłumaczeniem obok, żeby lokalny recenzent sprawdził sformułowanie.
Czy dostaję rozmiar rynku?
Tylko gdy źródło go podaje, z linkiem i datą. Inaczej brief pisze „Niedostępne” zamiast wymyślać liczbę lub ekstrapolować z jednego posta.
Czy rozmawia z klientami?
Nie. Czyta źródła publiczne. Dodaj notatki z wywiadów jako dokument i oznacz jako wewnętrzne; brief nigdy nie przedstawia prywatnych notatek jako publicznych dowodów.
Czym różni się od briefu badawczego?
Brief badawczy odpowiada na jedno pytanie. Ten workflow układa dowody wokół decyzji go-to-market — segment, język kupujących, alternatywy, obiekcje i dowody, o które proszą — żeby zasilić plan launchu.
Ile kosztuje jeden brief?
Każde wywołanie czatu, ekstrakcji i wyszukiwania X zużywa kredyty według użycia; aktualne stawki na stronie cen. Prompt pyta o zgodę przed wydaniem.
Powiązane workflowy
Zamień jedno pytanie w brief badawczy ze źródłami
Zapytaj web, zapisz strony stojące za odpowiedzią jako Markdown, dodaj to, co mówią praktycy na X, i zachowaj dowody w LiveDoc, który można później przeszukać.
Otwórz workflowBadaniaZbuduj analizę konkurencji, której użyje zespół sprzedaży
Zbierz strony konkurenta, otaczające go relacje i to, co kupujący mówią na X, a potem złóż analizę, w której każde twierdzenie ma źródło, datę i status.
Otwórz workflowBiuroZamień stronę badawczą w prezentację
Wyekstrahuj stronę, zapisz jako kontekst LiveDoc, pozwól PPT Task API zbudować deck i pytaj, aż link będzie gotowy.
Otwórz workflowDostosuj
Ta sama receptura, dopasowana do tego, jak naprawdę dostarczasz.
Uruchamiaj według regionu
Zachowaj strukturę sekcji i zmień tylko region oraz język. Jeden LiveDoc na region i te same pytania, żeby briefy były porównywalne.
Dodaj notatki z wywiadów
Wklej notatki z rozmów z klientami jako dokument i oznacz jako wewnętrzne. Brief może je cytować obok publicznych dowodów, ale nigdy nie przedstawia prywatnej notatki jako publicznego źródła.
Zasil deck launchowy
Przekaż sekcję obiekcji i dowodów do workflow decku, zachowując listę źródeł. Brief pozostaje warstwą dowodów; deck jest prezentacją, nie drugim źródłem prawdy.
Idź dalej
Strony referencyjne za tą recepturą i kolejne kroki.