Kandungan
Tukar perbualan sosial kepada brief mendengar mingguan
Cari post X minggu ini tentang jenama dan pesaing, tambah konteks web bersumber, baca halaman di sebaliknya dan arkibkan setiap edisi supaya minggu berikut bermula dari yang diketahui.
Salin prompt
Ganti medan dalam kurungan siku lalu tampal ke Claude Code, Codex atau AI dengan akses terminal. Ia memasang skill Felo, bertanya sebelum kredit digunakan dan menjalankan aliran kerja.
Jalankan ringkasan social listening untuk [jenama, produk atau kategori]. Istilah pantau: [jenama], [nama produk], [nama pesaing], [kata kunci kategori]. Tempoh: [7 / 14] hari lepas. Zon waktu: [zon waktu]. Audiens: [pasukan]. Sumber dibenarkan: hanya siaran X awam dan halaman web awam. Hasilkan: 1. Ringkasan lima baris tentang apa yang berubah dalam perbualan. 2. Tema, setiap satu dengan apa yang orang kata, siaran yang menyokong dan julat tarikh yang diliputi. 3. Sebutan pesaing: siapa disyorkan, dan dalam konteks apa. 4. Risiko: aduan, gangguan, soalan berulang atau reaksi negatif. 5. Langkah seterusnya, dibahagikan kepada “balas sekarang”, “pantau” dan “hantar ke produk”. 6. Senarai sumber dengan setiap siaran dan halaman, URL dan tarikh. Peraturan: - Laporkan hanya siaran dan halaman yang API kembalikan. Jangan reka skor sentimen, angka penglibatan, petikan atau sumber. - Anggap X sebagai isyarat, bukan tinjauan wakil. Nyatakan apabila sampel terlalu kecil untuk membuat kesimpulan. - Pisahkan kata-kata pelanggan daripada ringkasan anda dan petik pendek dengan pautan. - Tukar tempoh kepada tarikh mula dan tamat yang jelas, nyatakan zon waktu. - Sebelum menggunakan kredit, tunjukkan carian dan pengekstrakan yang dirancang dan tunggu kelulusan saya. - Jangan balas, siar, ikut atau mesej sesiapa. Ringkasan ini baca sahaja. - Tulis hasil ke ./social-listening.md dan ringkaskan dalam chat.
Salinan turut menyertakan langkah pemasangan dan peraturan keselamatan.
Apa yang anda dapat
Contoh output daripada satu larian. Bukan penjanaan langsung.
Ringkasan social listening — 2026-10-30
Apa yang berubah
- Aduan tentang aliran eksport kini menjadi tema utama.
- Pesaing lebih murah disyorkan dalam benang harga.
- Gangguan 2026-10-27 tidak lagi disebut.
Tema
- Eksport lambat sejak kemas kini — @example_dev: “Butang eksport kini mengambil beberapa minit untuk dokumen 40 halaman.” (2026-10-28); @example_ops: “Ada sesiapa nampak eksport beratur hujung bulan?” (2026-10-29)
- Alternatif lebih murah disyorkan — Example Rival muncul dalam benang yang meminta harga lebih rendah
Pesaing
Example Rival disyorkan apabila orang meminta alternatif lebih murah; syor itu tentang harga, bukan ciri.
Risiko
Aduan eksport muncul dalam benang berhampiran sokongan dan boleh sampai ke perbualan berhenti melanggan.
Seterusnya
- Balas sekarang: benang eksport 2026-10-28.
- Pantau: sama ada aduan merebak ke audiens API.
- Serah kepada produk: kependaman eksport hujung bulan.
Sumber
- https://x.com/example_dev/status/... — 2026-10-28
- https://example.com/export-thread — 2026-10-29
Panggilan sebenar
Untuk pembangun: aliran kerja sama sebagai kod, mengikut urutan pelaksanaan.
Tunjukkan panggilan API sebenar
Cari post minggu ini
Gunakan X Search untuk jenama dan pesaing dalam 7 hari, simpan akaun dan tarikh.
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;Contoh output
{ "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/..." } ] } }Tambah konteks web bersumber
Tanya Chat konteks perbualan dan dapatkan senarai halaman bersumber.
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);Contoh output
{ "answer": "The main threads are …", "sources": [ { "link": "https://example.com/thread", "title": "…", "snippet": "…" } ] }Baca halaman di sebaliknya
Dengan Web Fetch baca dua atau tiga halaman paling relevan dan tambah fakta serta pautan.
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 })), ), );Contoh output
// pages[0].content "# Example thread summary\n\nExtracted page content…"
Tulis laporan mengikut tema
Susun Markdown dengan tema, post wakil, konteks, risiko dan fokus.
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);Arkib dan banding minggu lalu
Simpan laporan dan sumber dalam LiveDoc, minggu berikut cari edisi sebelum.
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));Contoh output
[ { "title": "Social listening — 2026-10-23", "content": "…", "score": 0.88 } ]
Termasuk
- Post X bertarikh minggu ini
- Konteks web bersumber
- Ringkasan perbualan mengikut tema
- Laporan mingguan sedia dikongsi
- LiveDoc dengan setiap edisi
Apa yang tidak dilakukan
- Liputan X tidak lengkap dan tidak mewakili semua pengguna
- Tiada kesimpulan sentimen akhir
- Tidak menyiarkan atau membalas automatik
- Tiada DM atau komuniti peribadi
- Satu larian seminggu; penjadualan di ejen atau cron anda
Soalan
Apa dikira sumber?
Setiap post X menyimpan pautan, akaun dan tarikh; konteks web dari halaman awam Chat dan Web Fetch. Dakwaan tanpa sumber tidak masuk.
Boleh ikut pesaing?
Boleh. Cari jenama dan pesaing bersama lalu kumpulkan dalam laporan.
Adakah ia mengukur sentimen?
Ia meringkaskan tema dan nada tetapi menanda sebagai penilaian editorial, bukan peratus sentimen tepat.
Berapa jauh melihat ke belakang?
Lalai 7 hari terakhir untuk laporan mingguan; untuk tetingkap lebih besar tukar `since_time`.
Boleh jalankan setiap minggu?
Boleh. Letakkan prompt sama dalam cron atau penjadual ejen dan tulis ke LiveDoc sama.
Berapa kos satu brief?
X Search, Chat dan pengekstrakan dibilkan mengikut penggunaan; kadar semasa di halaman harga dan prompt meminta kelulusan sebelum berbelanja.
Aliran kerja berkaitan
Tukar satu soalan kepada brief penyelidikan bersumber
Tanya web, simpan halaman di sebalik jawapan sebagai Markdown, tambah apa yang pengamal katakan di X dan simpan bukti dalam LiveDoc yang boleh dicari semula.
Buka aliran kerjaPenyelidikanBina analisis pesaing yang boleh digunakan pasukan jualan
Kumpulkan halaman pesaing, liputan di sekelilingnya dan apa yang pembeli katakan di X, lalu susun analisis dengan sumber, tarikh dan status pada setiap dakwaan.
Buka aliran kerjaKandunganTerbitkan ringkasan berita AI harian yang benar-benar dibaca pasukan
Dapatkan ringkasan bersumber, tambah perbualan pengamal di X, ambil transkrip video, susun edisi Markdown dan arkibkan dalam LiveDoc.
Buka aliran kerjaSesuaikan
Resipi sama, disesuaikan dengan cara anda benar-benar menyampaikan.
Satu topik sahaja
Hadkan kepada satu pelancaran atau kontroversi untuk fokus.
Tambah pendapat YouTube
Lengkapkan dengan transkrip video tetapi tanda pengalaman peribadi.
Tukar kepada bulanan
Tukar kekerapan kepada bulanan untuk jenama dan PR.
Teruskan
Halaman rujukan di sebalik resipi ini dan langkah seterusnya.