Контент
Перетворіть соціальні розмови на тижневий бриф слухання
Знайдіть пости X за цей тиждень про бренд і конкурентів, додайте контекст вебу з джерелами, прочитайте сторінки за ним і заархівуйте кожен випуск, щоб наступний тиждень починався з відомого.
Скопіювати промпт
Замініть поля в квадратних дужках і вставте в Claude Code, Codex або AI з доступом до термінала. Він встановить скіл Felo, запитає перед витратою кредитів і запустить процес.
Проведи бриф соціального слухання для [бренд, продукт або категорія]. Слова спостереження: [бренд], [назва продукту], [назви конкурентів], [ключові слова категорії]. Період: останні [7 / 14] днів. Часовий пояс: [пояс]. Аудиторія: [команда]. Дозволені джерела: лише публічні дописи X і публічні вебсторінки. Створи: 1. Підсумок у п'ять рядків про те, що змінилося в розмові. 2. Теми, кожна з тим, що кажуть люди, дописами, які це підтверджують, і діапазоном дат. 3. Згадки конкурентів: кого рекомендують і в якому контексті. 4. Ризики: скарги, збої, повторювані питання або негативна реакція. 5. Наступні кроки, поділені на «відповісти зараз», «спостерігати» та «передати продукту». 6. Список джерел із кожним дописом і сторінкою, URL і датою. Правила: - Повідомляй лише дописи й сторінки, які повертає API. Ніколи не вигадуй оцінки тональності, показники залученості, цитати чи джерела. - Стався до X як до сигналу, а не репрезентативного опитування. Кажи, коли вибірка надто мала для висновків. - Відокремлюй слова клієнта від свого підсумку й цитуй коротко з посиланням. - Перетвори період на явні дати початку й кінця та вкажи часовий пояс. - Перед витратою кредитів покажи заплановані пошуки й витяги та дочекайся мого схвалення. - Не відповідай, не публікуй, не підписуйся й нікому не пиши. Цей бриф лише для читання. - Запиши результат у ./social-listening.md і підсумуй його в чаті.
Копія також містить кроки встановлення й правила безпеки.
Що ви отримаєте
Приклад результату одного запуску. Не живе генерування.
Бриф соціального слухання — 2026-10-30
Що змінилося
- Скарги на експорт стали головною темою.
- У темах про ціни радять дешевшого конкурента.
- Збій 2026-10-27 більше не згадується.
Теми
- Експорт повільний після оновлення — @example_dev: «Кнопка експорту тепер витрачає хвилини на документ на 40 сторінок» (2026-10-28); @example_ops: «Хтось ще бачить експорти в черзі наприкінці місяця?» (2026-10-29)
- Радять дешевшу альтернативу — Example Rival з’являється в темах, де просять нижчу ціну
Конкуренти
Example Rival радять, коли просять дешевшу альтернативу; рекомендація про ціну, а не про функції.
Ризики
Скарга на експорт з’являється в темах поруч із підтримкою й може дійти до розмов про відтік.
Далі
- Відповісти зараз: тема експорту від 2026-10-28.
- Спостерігати: чи поширюється скарга на аудиторію API.
- Передати продукту: затримка експорту наприкінці місяця.
Джерела
- https://x.com/example_dev/status/... — 2026-10-28
- https://example.com/export-thread — 2026-10-29
Точні виклики
Для розробників: той самий процес як код, у порядку виконання.
Показати справжні виклики API
Знайдіть пости за тиждень
Використайте X Search для бренду й конкурентів за останні 7 днів, зберігаючи акаунти й дати.
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;Приклад результату
{ "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/..." } ] } }Додайте контекст вебу з джерелами
Запитайте Chat про контекст розмов і візьміть список сторінок із джерелами.
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);Приклад результату
{ "answer": "The main threads are …", "sources": [ { "link": "https://example.com/thread", "title": "…", "snippet": "…" } ] }Прочитайте сторінки за ними
Через Web Fetch прочитайте дві-три найрелевантніші сторінки й додайте факти та посилання.
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 })), ), );Приклад результату
// pages[0].content "# Example thread summary\n\nExtracted page content…"
Напишіть звіт за темами
Складіть Markdown із темами, репрезентативними постами, контекстом, ризиками й фокусами.
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);Заархівуйте й порівняйте з минулим тижнем
Збережіть звіт і джерела в LiveDoc, наступного тижня знайдіть попередній випуск.
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));Приклад результату
[ { "title": "Social listening — 2026-10-23", "content": "…", "score": 0.88 } ]
Що входить
- Датовані пости X за тиждень
- Контекст вебу з джерелами
- Підсумок розмов за темами
- Тижневий звіт, готовий до поширення
- LiveDoc із кожним випуском
Чого не робить
- Покриття X неповне й не представляє всіх користувачів
- Без остаточних висновків про настрої
- Не публікує й не відповідає автоматично
- Без DM і приватних спільнот
- Один запуск на тиждень; розклад в агенті або cron
Запитання
Що вважається джерелом?
Кожен пост X зберігає посилання, акаунт і дату; контекст вебу з публічних сторінок Chat і Web Fetch. Твердження без джерела не входять.
Чи можна стежити за конкурентами?
Так. Шукайте бренд і конкурентів разом і групуйте у звіті.
Чи вимірює настрій?
Підсумовує теми й тон, але позначає це як редакційне судження й не стверджує точний відсоток настрою.
Наскільки глибоко дивиться?
Типово останні 7 днів для тижневого звіту; для більшого вікна змініть `since_time`.
Чи можна запускати щотижня?
Так. Поставте той самий промпт у cron або планувальник агента й пишіть у той самий LiveDoc.
Скільки коштує один бриф?
X Search, Chat і вилучення сторінок оплачуються за використання; актуальні тарифи на сторінці цін, а промпт просить схвалення перед витратою.
Пов’язані процеси
Перетворіть одне питання на дослідницький бриф із джерелами
Запитайте веб, збережіть сторінки за відповіддю як Markdown, додайте те, що кажуть практики на X, і тримайте докази в LiveDoc, який можна згодом переглянути.
Відкрити робочий процесДослідженняПобудуйте аналіз конкурентів, який використає відділ продажів
Зберіть сторінки конкурента, висвітлення навколо нього й те, що покупці кажуть на X, а потім складіть аналіз, де кожне твердження має джерело, дату й статус.
Відкрити робочий процесКонтентПублікуйте щоденний AI-дайджест, який команда справді читає
Отримайте підсумок із джерелами, додайте розмови практиків на X, візьміть транскрипт відео, складіть випуск у Markdown і заархівуйте в LiveDoc.
Відкрити робочий процесАдаптуйте
Той самий рецепт, підлаштований під те, як ви насправді працюєте.
Лише одна тема
Обмежте одним запуском або суперечкою, щоб звузити бриф.
Додайте думки YouTube
Доповніть транскриптом відео, але позначте як особистий досвід.
Зробіть місячним
Змініть частоту на місячну для бренду й PR.
Далі
Довідкові сторінки за цим рецептом і наступні кроки.