Conteúdo
Transforme conversas sociais em um briefing semanal de escuta
Pesquise os posts do X da última semana sobre sua marca e concorrentes, adicione contexto web com fontes, leia as páginas por trás e arquive cada edição para a próxima semana começar do que já se sabe.
Copiar o prompt
Substitua os campos entre colchetes e cole no Claude Code, Codex ou qualquer IA com acesso ao terminal. Ela instala a skill da Felo, pergunta antes de gastar créditos e executa o fluxo.
Execute um briefing de social listening para [marca, produto ou categoria]. Termos monitorados: [marca], [nome do produto], [nomes de concorrentes], [palavras-chave da categoria]. Janela: últimos [7 / 14] dias. Fuso: [fuso]. Público: [equipe]. Fontes permitidas: apenas posts públicos do X e páginas web públicas. Produza: 1. Um resumo de cinco linhas do que mudou na conversa. 2. Temas, cada um com o que as pessoas dizem, os posts que sustentam e o intervalo de datas coberto. 3. Menções a concorrentes: quem está sendo recomendado e em qual contexto. 4. Riscos: reclamações, quedas, perguntas repetidas ou reação negativa. 5. Próximos passos, divididos em “responder agora”, “observar” e “levar para produto”. 6. Uma lista de fontes com cada post e página, URL e data. Regras: - Relate apenas posts e páginas que a API retorna. Nunca invente pontuação de sentimento, números de engajamento, citações ou fontes. - Trate o X como sinal, não como pesquisa representativa. Diga quando a amostra é pequena demais para concluir. - Separe as palavras do cliente do seu resumo e cite brevemente com link. - Transforme a janela em datas explícitas de início e fim e informe o fuso. - Antes de gastar créditos, mostre as buscas e extrações planejadas e aguarde minha aprovação. - Não responda, publique, siga nem mande mensagem para ninguém. Este briefing é somente leitura. - Grave o resultado em ./social-listening.md e resuma no chat.
A cópia também inclui os passos de instalação e as regras de segurança.
O que você recebe
Saída de exemplo de uma execução. Não é geração ao vivo.
Briefing de social listening — 2026-10-30
O que mudou
- Reclamações sobre o fluxo de exportação são agora o tema principal.
- Um rival mais barato está sendo recomendado em threads de preço.
- A queda de 2026-10-27 não é mais mencionada.
Temas
- Exportações lentas desde a atualização — @example_dev: “O botão de exportar agora leva minutos para um documento de 40 páginas.” (2026-10-28); @example_ops: “Alguém mais vendo exportações na fila no fim do mês?” (2026-10-29)
- Uma alternativa mais barata está sendo recomendada — Example Rival aparece em threads em que pedem preço menor
Concorrentes
Example Rival é recomendado quando pedem alternativa mais barata; a recomendação é sobre preço, não recursos.
Riscos
A reclamação de exportação aparece em threads próximas do suporte, então pode chegar a conversas de cancelamento.
Próximo
- Responder agora: a thread de exportação de 2026-10-28.
- Observar: se a reclamação se espalha para o público de API.
- Levar ao produto: latência de exportação no fim do mês.
Fontes
- https://x.com/example_dev/status/... — 2026-10-28
- https://example.com/export-thread — 2026-10-29
As chamadas exatas
Para desenvolvedores: o mesmo fluxo em código, na ordem de execução.
Mostrar as chamadas reais da API
Pesquise os posts da semana
Use o X Search para marca e concorrentes nos últimos 7 dias, guardando perfis e datas.
listening.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 XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; metrics: { retweet_count: number; favorite_count: number; reply_count: number }; url: string; }[]; }; }; const since = Math.floor((Date.now() - 7 * 24 * 60 * 60 * 1000) / 1000); const search = await felo<XData>("/v2/x/tweet/search", { query: '"Acme" OR "Acme app"', limit: 50, since_time: since, }); const posts = search.data.tweets;Saída de exemplo
{ "data": { "tweets": [ { "content": "The export flow is slow again.", "author": { "username": "example_dev" }, "created_at": "2026-10-28T09:14:00Z", "metrics": { "retweet_count": 4, "favorite_count": 21, "reply_count": 6 }, "url": "https://x.com/example_dev/status/..." } ] } }Adicione contexto web com fontes
Pergunte ao Chat o contexto das discussões e obtenha a lista de páginas com fontes.
listening.ts type ChatData = { data: { answer: string; resources: { link: string; title: string; snippet: string }[]; }; }; const context = await felo<ChatData>("/v2/chat", { query: "Recent customer complaints and competitor mentions around Acme", }); const sources = context.data.resources.slice(0, 5);Saída de exemplo
{ "answer": "The main threads are …", "sources": [ { "link": "https://example.com/thread", "title": "…", "snippet": "…" } ] }Leia as páginas por trás
Com Web Fetch, leia as duas ou três páginas mais relevantes e acrescente fatos e links.
listening.ts type ExtractData = { data: { content: string } }; const pages = await Promise.all( sources.slice(0, 3).map((source) => felo<ExtractData>("/v2/web/extract", { url: source.link, output_format: "markdown", with_readability: true, with_cache: true, }).then((page) => ({ ...source, content: page.data.content })), ), );Saída de exemplo
// pages[0].content "# Example thread summary\n\nExtracted page content…"
Escreva o relatório por tema
Monte um Markdown com temas, posts representativos, contexto, riscos e pontos de atenção.
listening.ts const date = new Date().toISOString().slice(0, 10); const ranked = [...posts].sort( (a, b) => b.metrics.favorite_count - a.metrics.favorite_count, ); const brief = [ `# Social listening brief — ${date}`, "", "## What the web says", context.data.answer, "", "## What people are posting", ...ranked.slice(0, 10).map( (post) => `- @${post.author.username} (${post.created_at.slice(0, 10)}): ${post.content}\n ${post.url}`, ), "", "## Pages behind the answer", ...pages.map((page) => `- [${page.title}](${page.link})`), "", "## Sources", ...sources.map((source) => `- [${source.title}](${source.link})`), ].join("\n"); console.log(brief);Arquive e compare com a semana anterior
Salve o relatório e as fontes no LiveDoc e, na semana seguinte, consulte a edição anterior para comparar.
listening.ts type LiveDocData = { data: { short_id: string } }; const archive = await felo<LiveDocData>("/v2/livedocs", { name: "Social listening archive", description: "One document resource per weekly brief", }); await felo(`/v2/livedocs/${archive.data.short_id}/resources/doc`, { title: `Social listening — ${date}`, content: brief, }); type Retrieved = { data: { title: string; content: string; score: number }[] }; const previous = await felo<Retrieved>( `/v2/livedocs/${archive.data.short_id}/resources/retrieve`, { query: "what changed since last week" }, ).then((res) => res.data.filter((hit) => hit.score >= 0.7));Saída de exemplo
[ { "title": "Social listening — 2026-10-23", "content": "…", "score": 0.88 } ]
O que está incluído
- Posts do X da semana com datas
- Contexto web com fontes
- Resumo das discussões por tema
- Relatório semanal pronto para compartilhar
- LiveDoc com cada edição
O que não faz
- A cobertura do X é incompleta e não representa todos os usuários
- Não dá conclusões definitivas de sentimento
- Não publica nem responde automaticamente
- Não inclui mensagens diretas nem comunidades privadas
- Uma execução por semana; o agendamento fica com seu agent ou cron
Perguntas
O que conta como fonte no briefing?
Cada post do X mantém link, perfil e data; o contexto web vem de páginas públicas do Chat e do Web Fetch. Afirmações sem fonte não entram.
Posso acompanhar concorrentes?
Sim. Pesquise marca e concorrentes juntos e agrupe no relatório.
Ele mede sentimento?
Ele resume temas e tom, mas marca como julgamento editorial e não afirma um percentual exato de sentimento.
Até onde ele olha?
Por padrão, os últimos 7 dias para o relatório semanal; para uma janela maior, altere `since_time`.
Posso rodar toda semana?
Sim. Coloque o mesmo prompt em um cron ou agendador de agent e escreva no mesmo LiveDoc.
Quanto custa um briefing?
Busca no X, Chat e extração de páginas são cobrados por uso; as tarifas atuais estão na página de preços, e o prompt pede aprovação antes de gastar.
Fluxos relacionados
Transforme uma pergunta em um briefing de pesquisa com fontes
Pergunte à web, salve as páginas por trás da resposta como Markdown, adicione o que os praticantes dizem no X e mantenha as evidências em um LiveDoc que você pode consultar depois.
Abrir o fluxo de trabalhoPesquisaMonte uma análise de concorrente que o time de vendas possa usar
Reúna as páginas do próprio concorrente, a cobertura ao redor dele e o que os compradores dizem no X, depois monte uma análise em que cada afirmação tem fonte, data e status.
Abrir o fluxo de trabalhoConteúdoPublique um resumo diário de IA que a equipe realmente lê
Obtenha um resumo com fontes, adicione o que os praticantes publicam no X, pegue uma transcrição de vídeo, monte a edição em Markdown e arquive no LiveDoc.
Abrir o fluxo de trabalhoFaça do seu jeito
A mesma receita, adaptada ao seu processo real.
Só um assunto
Restrinja a um lançamento ou polêmica para focar o briefing.
Adicione opiniões do YouTube
Complemente com a transcrição de um vídeo, mas marque como experiência pessoal.
Vire relatório mensal
Mude a frequência para mensal e atenda marca e relações públicas.
Continue
As páginas de referência por trás desta receita e para onde ir depois.