پژوهش
یک جستوجو را به خلاصه محتوای SEO تبدیل کنید
ببینید امروز کدام صفحات پاسخ میدهند، آنها را بهصورت Markdown بخوانید، پرسشهای پوششداده و جاافتاده را نقشه کنید و خلاصهای بنویسید که نویسنده از آن ساختار بسازد.
کپی پرامپت
فیلدهای داخل قلاب را جایگزین کنید و در Claude Code، Codex یا هوش مصنوعی با دسترسی ترمینال بچسبانید. مهارت Felo را نصب میکند، پیش از خرج اعتبار میپرسد و گردشکار را اجرا میکند.
یک خلاصه محتوای SEO برای پرسوجوی [پرسوجوی هدف] برای [محصول یا سایت] بنویسید. مخاطب: [خواننده]. بازار و زبان: [منطقه]، [زبان]. زاویه: [راهنما / مقایسه / صفحه محصول]. تصمیمی که پشتیبانی میکند: [مقاله جدید / بهروزرسانی / پر کردن شکاف]. ابتدا بخوانید امروز چه چیزی به این پرسوجو پاسخ میدهد، سپس ساختار بنویسید. خروجی یک خلاصه Markdown با این بخشها باشد: 1. پرسوجوی هدف و نیتی که استنباط میکنید، با شواهد این خوانش. 2. آنچه صفحههای فعلی پوشش میدهند: عنوان، URL و بخشهای آغازین. 3. پرسشهایی که صفحههای فعلی پاسخ میدهند و پرسشهایی که جا میاندازند. 4. ساختار پیشنهادی با یک خط برای هر بخش که چه چیزی باید اثبات کند. 5. شواهد و مثالها از منابع، با پیوند. 6. فهرست کامل منابع. قواعد: - حجم جستوجو، دشواری کلمه کلیدی، رتبه یا ترافیک را ادعا نکنید. این گردشکار آنها را اندازه نمیگیرد؛ بهجای عدد بنویسید «اینجا اندازهگیری نشد». - آمار، نقلقول یا ادعا درباره محتوای رقبا نسازید. - نیت را بهعنوان خوانش صفحهها توصیف کنید، نه واقعیت اندازهگیریشده. - نقلقولها را کوتاه، با منبع و پیوند نگه دارید. - منطقه و زبان را به مقادیر صریح تبدیل کنید. - پیش از مصرف اعتبار، فراخوانیهای API برنامهریزیشده را نشان دهید و منتظر تأیید من بمانید. - چیزی منتشر، زمانبندی یا ارسال نکنید. - نتیجه را در ./seo-brief.md بنویسید و در چت خلاصه کنید.
نسخه شامل مراحل نصب و قواعد ایمنی نیز هست.
چه دریافت میکنید
خروجی نمونه یک اجرا. نه تولید زنده.
خلاصه SEO — «چگونه تریاژ پشتیبانی را خودکار کنیم»
پرسوجوی هدف و نیت
پرسوجو: «چگونه تریاژ پشتیبانی را خودکار کنیم». صفحههای بازگشتی با مراحل پیادهسازی شروع میشوند نه صفحه محصول، پس نیت how-to خوانده میشود. این خوانش صفحههاست، نه برچسب نیت اندازهگیریشده.
صفحههای فعلی چه چیزی را پوشش میدهند
| صفحه | URL | با چه شروع میشود |
|---|---|---|
| خودکارسازی تریاژ پشتیبانی: راهنمای عملی | https://example.com/guide | قواعد مسیریابی، سپس برچسبها |
| چکلیست خودکارسازی تریاژ | https://example.com/checklist | خود چکلیست |
پرسشهایی که صفحهها پاسخ میدهند
- خودکارسازی تریاژ چه چیزی را تغییر میدهد
- از کدام قواعد مسیریابی شروع کنیم
پرسشهای جاافتاده
- چگونه بسنجیم تریاژ واقعاً بهتر شده
- وقتی دستهبند اشتباه میکند چه کنیم
ساختار پیشنهادی
- خودکارسازی چه تغییری میدهد — ثابت کنید موضوع صف است نه تعداد کارکنان.
- سه قاعده مسیریابی اول — هر یک را با مثال ثابت کنید.
- چگونه در ماه اول بسنجیم — با شاخصی که مسئول عملیات بتواند بگیرد ثابت کنید.
- وقتی خودکارسازی اشتباه میکند — مسیر بازگشت انسانی را ثابت کنید.
شواهد
- نمونه قاعده مسیریابی، نقل از https://example.com/guide (بررسی 2026-10-30)
اینجا اندازهگیری نشد
حجم جستوجو، دشواری کلمه کلیدی و رتبه. این گردشکار صفحههای عمومی را میخواند؛ از فهرست جستوجو یا ردیاب رتبه نمیپرسد.
منابع
- https://example.com/guide
- https://example.com/checklist
فراخوانیهای دقیق
برای توسعهدهندگان: همان گردشکار بهصورت کد، به ترتیب اجرا.
نمایش فراخوانیهای واقعی API
ببینید امروز چه کسی پاسخ میدهد
از Chat درباره جستوجو بپرسید و پاسخ و صفحات نقلشده را بگیرید. آن صفحات محتوای رقیب فعلی هستند.
seo-brief.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 query = "how to automate support triage"; const ourSite = "example.com"; const coverage = await felo<ChatData>("/v2/chat", { query: `What pages currently answer the search query "${query}"? List the pages and what each one covers.`, }); const candidates = coverage.data.resources .filter((resource) => !resource.link.includes(ourSite)) .slice(0, 5) .map((resource) => ({ url: resource.link, title: resource.title }));خروجی نمونه
{ "answer": "Readers searching this usually want a step-by-step …", "sources": [ { "link": "https://example.com/guide", "title": "…", "snippet": "…" } ] }صفحات را بهصورت Markdown بخوانید
سه تا پنج صفحه قویتر را با Web Fetch بهصورت Markdown دانلود کنید و عنوانها و پرسشها را نگه دارید.
seo-brief.ts type ExtractData = { data: { content: string } }; const pages = await Promise.all( candidates.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 }; }), );خروجی نمونه
{ "url": "https://example.com/guide", "checkedAt": "2026-10-30", "content": "# Automating support triage\n\n## Routing rules\n…" }پوشش و شکافها را نقشه کنید
H2/H3 و پرسشهای FAQ هر صفحه را استخراج کنید و جدول بسازید: کدام پرسش پاسخ دارد و کدام نه.
seo-brief.ts type Heading = { page: string; heading: string }; const headings: Heading[] = pages.flatMap((page) => page.content .split("\n") .filter((line) => line.startsWith("## ")) .map((line) => ({ page: page.title, heading: line.replace(/^##\s+/, ""), })), ); const questions = headings.filter((item) => item.heading.includes("?")); const byTopic = new Map<string, string[]>(); for (const item of headings) { byTopic.set(item.heading, [...(byTopic.get(item.heading) ?? []), item.page]); }خروجی نمونه
// questions [ { "page": "…", "heading": "What routes should you automate first?" } ]خلاصه را بنویسید
جستوجو، نیت، مقایسه پوشش، پرسشهای غایب، ساختار پیشنهادی و فهرست منابع را توصیف کنید.
seo-brief.ts const today = new Date().toISOString().slice(0, 10); const brief = [ `# SEO brief — "${query}"`, `Checked ${today}. Site: ${ourSite}.`, "", "## Intent read", "The pages returned for this query lead with: " + headings.slice(0, 6).map((item) => item.heading).join("; ") + ". This is a reading of their structure, not a measured intent label.", "", "## What the pages cover", "| Page | URL | Checked |", "| --- | --- | --- |", ...pages.map((page) => `| ${page.title} | ${page.url} | ${page.checkedAt} |`), "", "## Questions the pages answer", ...questions.map((item) => `- ${item.heading} (${item.page})`), "", "## Topics more than one page covers", ...[byTopic.entries()] .filter(([, pageTitles]) => pageTitles.length > 1) .map(([heading, pageTitles]) => `- ${heading} (${pageTitles.length} pages)`), "", "## Proposed outline", ...questions.slice(0, 5).map((item, index) => `${index + 1}. ${item.heading}`), "", "## Questions they miss", "<!-- Only questions none of the fetched pages answer. Delete this comment when filled. -->", "", "## Not measured here", "Search volume, keyword difficulty, and ranking position. This workflow reads public pages; it does not query a search index or a rank tracker.", "", "## Sources", ...pages.map((page) => `- ${page.title}: ${page.url}`), ].join("\n"); console.log(brief);خروجی نمونه
# SEO brief — "how to automate support triage"
در LiveDoc ذخیره کنید
خلاصه و پیوندهای صفحات را در LiveDoc ذخیره کنید تا بهروزرسانی بعدی فقط تغییرات را دانلود کند.
seo-brief.ts type LiveDocData = { data: { short_id: string } }; const briefDoc = await felo<LiveDocData>("/v2/livedocs", { name: `SEO briefs: ${ourSite}`, description: "One document resource per target query", }); 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: `SEO brief — ${query}`, content: brief, }); console.log(briefDoc.data.short_id); // the next query adds to this archiveخروجی نمونه
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
چه چیزی دارد
- فهرست صفحات با منابع از Chat و پیوندهای پاسخ
- صفحات برتر فعلی بهصورت Markdown
- عنوانها و پرسشهایی که پوشش میدهند
- خلاصهای که از آن فوراً ساختار ساخته میشود
- LiveDoc با منابع برای بهروزرسانی بعدی
چه کاری نمیکند
- رتبه، حجم جستوجو، دشواری یا ترافیک را اندازه نمیگیرد
- فقط صفحات عمومی؛ ورود و دیوار پرداخت ممکن است شکست بخورند
- مقاله را منتشر یا کامل بازنویسی نمیکند
- یک اجرا برای هر جستوجو؛ چند جستوجو حلقه شما را میخواهد
- رتبه را تضمین نمیکند
پرسشها
آیا حجم یا رتبه را اندازه میگیرد؟
نه. صفحات عمومی را میخواند و ارزیابی میکند امروز کدام محتوا پاسخ میدهد؛ رتبه و حجم در ابزارهای SEO شماست.
داده از کجا؟
Chat صفحات دارای منبع را برمیگرداند و Web Fetch آنها را Markdown میکند. هر ارزیابی به صفحه و تاریخ مشخصی اشاره دارد.
چند جستوجو را میتواند انجام دهد؟
بله اما یکییکی. مراحل را برای هر جستوجو تکرار کنید و خلاصههای جداگانه ذخیره کنید.
برای کدام جستوجوها مناسب است؟
اطلاعاتی، مقایسهای و «چگونه انجام دهیم»، چون صفحات عمومی سیگنال کافی میدهند. جستوجوهای تراکنشی داده محصول و تبدیل شما را میخواهند.
آیا مقاله را مینویسد؟
نه. خلاصه و ساختار میدهد؛ نوشتن کار ویراستار یا عامل نویسندگی شماست.
هزینه یک اجرا چقدر است؟
Chat و استخراج بر اساس استفاده اعتبار مصرف میکنند؛ نرخهای فعلی در صفحه قیمت است. پرامپت پیش از هزینه تأیید میخواهد.
گردشکارهای مرتبط
یک پرسش را به خلاصه پژوهشی با منابع تبدیل کنید
از وب بپرسید، صفحات پشت پاسخ را بهصورت Markdown ذخیره کنید، آنچه متخصصان در X میگویند اضافه کنید و شواهد را در LiveDoc نگه دارید تا بعداً دوباره جستوجو شود.
باز کردن گردشکارمحتوایک ماه محتوا را با پرسشهای مخاطبان پر کنید
موضوعات را با Chat نقشه کنید، پرسشهای مخاطبان را در X پیدا کنید، زاویه واقعی از متن ویدیو بگیرید و تقویم چهار هفتهای بسازید که هر ردیف شاهدش را میگوید.
باز کردن گردشکارمحتواخلاصه خبری روزانه AI منتشر کنید که تیم واقعاً بخواند
خلاصهای با منابع بگیرید، گفتوگوهای متخصصان در X را اضافه کنید، متن یک ویدیو را بگیرید، نسخه را در Markdown بسازید و در LiveDoc بایگانی کنید.
باز کردن گردشکارآن را از خود کنید
همان دستور، متناسب با روش واقعی تحویل شما.
فقط جستوجوهای مقایسهای
به «X در برابر Y» و «بهترین X» محدود کنید تا زاویه تمایز بهتر دیده شود.
صفحه محصول خود را اضافه کنید
صفحه محصول را بهعنوان منبع اضافه کنید تا ساختار روی ویژگیها و قیمت شما بنشیند.
هر فصل بهروز کنید
در همان LiveDoc دوباره اجرا کنید و ببینید صفحات رقیب و ساختار چگونه تغییر میکنند.
ادامه دهید
صفحات مرجع پشت این دستور و گامهای بعدی.