Ricerca
Trasforma una domanda di mercato in un brief go-to-market
Fai una domanda precisa al mercato, leggi le pagine di categoria e prezzi dietro la risposta, raccogli come gli acquirenti descrivono il problema su X e salva un brief GTM con affermazioni documentate e domande aperte.
Copia il prompt
Sostituisci i campi tra parentesi quadre e incolla in Claude Code, Codex o qualsiasi IA con accesso al terminale. Installa lo skill Felo, chiede prima di spendere crediti ed esegue il workflow.
Prepara un brief di ricerca go-to-market per [prodotto] che entra in [segmento o ICP] in [regione], in [lingua]. Motion: [self-serve / vendite / partner]. Decisione che supporta: [lancio / prezzi / riposizionamento]. Finestra temporale: [ultimi 90 giorni / ultimi 12 mesi]. Produci un brief Markdown con: 1. Definizione del segmento: chi sono, cosa usano oggi e cosa dicono le fonti sulla dimensione — cita una fonte o scrivi «Non disponibile». 2. Linguaggio dei compratori: come descrivono il problema, con link e date. 3. Alternative: da cosa passano, inclusi fogli di calcolo e non fare nulla. 4. Obiezioni e le prove che i compratori chiedono. 5. Domande aperte a cui le fonti pubbliche non rispondono. 6. Un elenco completo delle fonti. Regole: - Ogni affermazione di mercato richiede link e data. Non stimare mai dimensione, crescita o budget a sensazione. - Separa fonti indipendenti, pagine dei fornitori e tue deduzioni. - Usa X per linguaggio e obiezioni, non come prova della dimensione di mercato. - Trasforma finestra temporale e regione in valori espliciti. - Prima di consumare crediti, mostra le chiamate API previste e attendi la mia approvazione. - Non pubblicare, inviare, programmare né scrivere in alcun CRM. - Scrivi il risultato in ./gtm-brief.md e riassumilo in chat.
La copia include anche i passaggi di installazione e le regole di sicurezza.
Cosa ottieni
Output di esempio di un'esecuzione. Non è generazione dal vivo.
Brief GTM — [segmento] in [regione]
Definizione del segmento
Piccoli team operativi che gestiscono la pianificazione in fogli di calcolo. Dimensione: non disponibile nelle fonti pubbliche esaminate — nessun numero senza fonte.
Linguaggio degli acquirenti
- «lo facciamo ancora in un foglio di calcolo» — post X, 2026-10-18
- «la configurazione è la parte difficile» — post X, 2026-10-02
Etichettato come linguaggio, non come prova di diffusione.
Alternative citate
Fogli di calcolo, una suite esistente e non fare nulla. Fonte: https://example.com/thread (2026-10-18).
Obiezioni e prove richieste
Revisione di sicurezza e percorso di migrazione. Gli acquirenti chiedono una referenza con nome; non ne abbiamo pubbliche, quindi resta aperto.
Domande aperte
- Quanta parte del segmento ha già una linea di budget dedicata?
- L’obiezione cambia con la dimensione dell’azienda?
Fonti
- https://example.com/category-page
- https://example.com/pricing-page
- https://example.com/thread
Le chiamate esatte
Per gli sviluppatori: lo stesso workflow come codice, nell'ordine di esecuzione.
Mostra le chiamate API reali
Inquadra la domanda di mercato
Chat restituisce risposta e pagine usate, quindi parti da una domanda abbastanza stretta: chi compra, cosa usano oggi, quali obiezioni emergono. Tieni le risorse come link-pista; la risposta è pista, i link sono prove e chiudono la lista fonti.
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);Output di esempio
{ "answer": "Buyers in this segment usually start from spreadsheets and …", "sources": [ { "link": "https://example.com/category-page", "title": "…", "snippet": "…" } ] }Leggi le pagine di categoria
Scarica le pagine che inquadrano il mercato: panoramica categoria, confronto e prezzi. Estraile in Markdown con leggibilità e metti la data di recupero, perché la qualità della lettura dipende dalle pagine dietro.
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 }; }), );Output di esempio
{ "url": "https://example.com/category", "checkedAt": "2026-10-30", "content": "# Category overview\n\nExtracted page text…" }Raccogli come gli acquirenti descrivono il problema
Cerca su X le parole che usano gli acquirenti quando incontrano il problema, non il nome del prodotto. Conserva account e date; il brief usa i post per linguaggio e obiezioni, mai come misura di dimensione o frequenza.
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);Output di esempio
{ "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 } } ] } }Scrivi il brief intorno alla decisione
Unisci definizione del segmento, linguaggio, alternative, obiezioni e domande aperte in un Markdown. Ogni affermazione conserva fonte e data, la dimensione appare solo con una fonte e ciò che le fonti pubbliche non rispondono va nelle domande aperte invece che in inferenza.
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);Output di esempio
# GTM brief — operations teams at 50-200 person companies in DACH
Conserva le prove per il prossimo mercato
Crea un LiveDoc per segmento e regione, aggiungi le pagine come risorse URL e il brief come documento. Il prossimo mercato parte dalle stesse fonti senza riscaricare le categorie, e riaggiungere un URL viene deduplicato.
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 regionOutput di esempio
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Cosa include
- Lettura di mercato con fonti dal Chat API e le pagine dietro
- Pagine categoria, confronto e prezzi in Markdown
- Linguaggio e obiezioni degli acquirenti da X con account e date
- Brief strutturato intorno alla decisione di lancio, non al tema
- LiveDoc per riusare le prove nella prossima regione o lancio
Cosa non fa
- Solo fonti pubbliche; niente report a pagamento, panel o interviste con clienti
- Non stima mai dimensione o crescita del mercato — senza dati scrive “Non disponibile”
- I post X sono linguaggio e segnale, non un campione rappresentativo
- Non sceglie segmento o prezzo per te
- Non pubblica il brief né scrive nel CRM
Domande
Serve un report di mercato a pagamento?
No. Il workflow legge fonti pubbliche e segnala i vuoti. Se hai già un report, aggiungilo come documento nel LiveDoc e citalo come qualsiasi altra fonte.
Posso ricercare un mercato in un’altra lingua?
Sì. Imposta regione e lingua. Le citazioni restano nella lingua originale con traduzione accanto, così un revisore locale può controllare la formulazione.
Mi dà la dimensione del mercato?
Solo quando una fonte la indica, con link e data. Altrimenti il brief scrive “Non disponibile” invece di inventare un numero o estrapolare da un post.
Parla con i clienti?
No. Legge fonti pubbliche. Aggiungi note di intervista come documento e marcate come interne; il brief non presenta mai note private come prove pubbliche.
In cosa differisce dal brief di ricerca?
Il brief di ricerca risponde a una domanda. Questo workflow organizza le prove intorno a una decisione go-to-market — segmento, linguaggio, alternative, obiezioni e prove richieste — per alimentare un piano di lancio.
Quanto costa un brief?
Ogni chiamata chat, estrazione e ricerca X consuma crediti a consumo; le tariffe attuali sono nella pagina prezzi. Il prompt chiede approvazione prima di spendere.
Workflow correlati
Trasforma una domanda in un brief di ricerca con fonti
Interroga il web, salva come Markdown le pagine dietro la risposta, aggiungi ciò che dicono i professionisti su X e conserva le prove in un LiveDoc che potrai interrogare di nuovo.
Apri il workflowRicercaCrea un’analisi competitiva che il team vendite possa usare
Raccogli le pagine del concorrente, la copertura intorno a lui e ciò che dicono gli acquirenti su X, poi costruisci un’analisi in cui ogni affermazione ha fonte, data e stato.
Apri il workflowUfficioTrasforma una pagina di ricerca in una presentazione
Estrai la pagina, salvala come contesto LiveDoc, lascia che la PPT Task API costruisca il deck e interroga finché il link è pronto.
Apri il workflowAdattala a te
La stessa ricetta, adattata a come lavori davvero.
Esegui per regione
Mantieni la struttura e cambia solo regione e lingua. Un LiveDoc per regione e le stesse domande, così i brief sono confrontabili.
Aggiungi le tue note di intervista
Incolla note di chiamate come documento e marcate come interne. Il brief può citarle accanto alle prove pubbliche, ma non presenta mai una nota privata come fonte pubblica.
Alimenta il deck di lancio
Passa la sezione obiezioni e prove al workflow deck tenendo la lista fonti. Il brief resta lo strato di prove; il deck è una presentazione, non una seconda fonte di verità.
Continua
Le pagine di riferimento dietro questa ricetta e i prossimi passi.