پژوهش
پیش از اولین تماس، یک حساب هدف را بررسی کنید
سایت شرکت، پوشش اخیر و آنچه علنی منتشر میکنند را بخوانید، سپس خلاصه حساب با حرکتهای اخیر، اولویتهای احتمالی، موضوعات گفتوگو و ناشناختهها را صادقانه بنویسید.
کپی پرامپت
فیلدهای داخل قلاب را جایگزین کنید و در Claude Code، Codex یا هوش مصنوعی با دسترسی ترمینال بچسبانید. مهارت Felo را نصب میکند، پیش از خرج اعتبار میپرسد و گردشکار را اجرا میکند.
یک خلاصه حساب برای [نام شرکت یا دامنه] پیش از [تماس / جلسه کشف نیاز / تمدید] تهیه کنید. پیشنهاد ما: [محصول یا خدمت]. خریداری که برایمان مهم است: [نقش]. بازه تحرکات اخیر: [۹۰ روز گذشته / ۱۲ ماه گذشته]. سایت، پوشش عمومی و پستهای عمومی آنها را بخوانید. خروجی یک خلاصه Markdown با این بخشها باشد: 1. چه کاری میکنند، در یک پاراگراف، با منابع. 2. تحرکات اخیر: عرضهها، سرمایهگذاری، استخدام، مدیریت، شراکتها — با تاریخ و پیوند. 3. اولویتهای احتمالی این فصل، با برچسب صریح استنباط. 4. موضوعات شروع گفتگو: سه مشاهده مشخص، هر یک با منبع. 5. ناشناختهها: آنچه از منابع عمومی قابل تأیید نبود. 6. فهرست کامل منابع. قواعد: - هرگز نام مخاطب، ایمیل، تلفن، تعداد کارکنان، درآمد یا مبلغ سرمایهگذاری نسازید. - فقط منابع عمومی: بدون داده خصوصی، صفحههای فقط با ورود و فهرستهای استخراجشده. - در CRM یا سیستم دیگر ننویسید. خلاصه فایلی است که انسان بررسی میکند. - هر استنباط را استنباط علامت بزنید؛ واقعیتها را با پیوند و تاریخ نگه دارید. - نیت خریدار را بهعنوان واقعیت بیان نکنید. - پیش از مصرف اعتبار، فراخوانیهای API برنامهریزیشده را نشان دهید و منتظر تأیید من بمانید. - چیزی ارسال، زمانبندی، منتشر یا به کسی پیام ندهید. - نتیجه را در ./account-brief.md بنویسید و در چت خلاصه کنید.
نسخه شامل مراحل نصب و قواعد ایمنی نیز هست.
چه دریافت میکنید
خروجی نمونه یک اجرا. نه تولید زنده.
خلاصه حساب — [شرکت]، بررسی 2026-10-30
چه کاری میکنند
رباتهای برداشت انبار برای اپراتورهای لجستیک متوسط میسازد. منبع: https://example.com/about (بررسی 2026-10-30).
تحرکات اخیر
- دومین سایت مونتاژ را افتتاح کرد — https://example.com/news/expansion (2026-10-24)
- برای تیم «عملیات استقرار» استخدام میکند — https://example.com/careers (بررسی 2026-10-30)
- پست حساب آنها درباره یکپارچگی شریک — @example_company (2026-10-21)
اولویتهای احتمالی (استنباط)
استقرار سریعتر در سایتهای بیشتر. استنباط از پست توسعه و نقش جدید استقرار — نه برنامه اعلامشده و نه تأییدشده عمومی.
موضوعات شروع گفتگو
- سایت دوم تازه است: بپرسید وقتی سایتها متفاوتاند، پلیبوک استقرار چگونه تغییر میکند. منبع: https://example.com/news/expansion
- نقش اختصاصی عملیات استقرار نشاندهنده تحویل بین فروش و نصب است. منبع: https://example.com/careers
ناشناختهها
- امروز چه کسی عملیات استقرار را رهبری میکند: دادهای از منابع عمومی نیست.
- اندازه ناوگان و ارزش قراردادها: دادهای نیست.
منابع
- https://example.com/about
- https://example.com/news/expansion
- https://example.com/careers
فراخوانیهای دقیق
برای توسعهدهندگان: همان گردشکار بهصورت کد، به ترتیب اجرا.
نمایش فراخوانیهای واقعی API
نمای شرکت را بگیرید
از Chat بپرسید شرکت چه میکند و تغییرات عمومی اخیر چیست و منابع نقلشده را نگه دارید.
account.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 company = "Example Robotics"; const domain = "example.com"; const buyerRole = "Head of Operations"; const overview = await felo<ChatData>("/v2/chat", { query: `What does ${company} do, who buys from it, and what changed in the last 90 days?`, }); const seedSources = overview.data.resources.slice(0, 5);خروجی نمونه
{ "answer": "The company builds …", "sources": [ { "link": "https://example.com/about", "title": "…", "snippet": "…" } ] }سایت، قیمت و مشاغل را بخوانید
با Web Fetch درباره، قیمت و مشاغل را بخوانید تا محصول، مشتریان و نقشهای باز را بفهمید.
account.ts type ExtractData = { data: { content: string } }; const companyPages = [ { url: `https://${domain}/about`, title: "About" }, { url: `https://${domain}/pricing`, title: "Pricing" }, { url: `https://${domain}/careers`, title: "Careers" }, ]; const pages = await Promise.all( companyPages.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/careers", "checkedAt": "2026-10-30", "content": "# Careers\n\nOpen roles: deployment operations…" }سیگنالهای عمومی ۹۰ روز را ببینید
در X نام شرکت و محصول را جستوجو کنید و پستهای عمومی، حسابها و تاریخهای ۹۰ روز اخیر را نگه دارید.
account.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 posts = await felo<XData>("/v2/x/tweet/search", { query: `"${company}" (hiring OR launch OR partnership OR expansion)`, limit: 20, since_time: since, }); const recent = posts.data.tweets.slice(0, 5);خروجی نمونه
{ "data": { "tweets": [ { "content": "We just opened our second assembly site", "author": { "username": "example_company" }, "created_at": "2026-10-21T14:02:00Z", "metrics": { "retweet_count": 4, "favorite_count": 31 } } ] } }خلاصه حساب را بنویسید
نما، حرکتهای اخیر، اولویتهای احتمالی، موضوعات گفتوگو، ناشناختهها و منابع را توصیف کنید.
account.ts const today = new Date().toISOString().slice(0, 10); const accountBrief = [ `# Account brief — ${company}`, `Checked ${today}. Buyer role: ${buyerRole}.`, "", "## What they do", overview.data.answer, "", "## Recent moves", ...recent.map( (post) => `- ${post.created_at.slice(0, 10)}: ${post.content} (from @${post.author.username})`, ), ...pages.map((page) => `- ${page.title} page captured ${page.checkedAt}: ${page.url}`), "", "## Likely priorities (inference)", "<!-- One or two sentences from the moves above. Mark them as inference, never a stated plan. Delete this comment when filled. -->", "", "## Conversation starters", ...recent.slice(0, 3).map( (post) => `- Ask about: ${post.content.slice(0, 100)} (dated ${post.created_at.slice(0, 10)})`, ), "", "## Unknowns", "- Who owns the workflow we sell into: Not available from public sources.", "- Contract values and team size: Not available.", "", "## Sources", ...pages.map((page) => `- ${page.title}: ${page.url}`), ...seedSources.map((source) => `- ${source.title}: ${source.link}`), ].join("\n"); console.log(accountBrief);خروجی نمونه
# Account brief — Example Robotics
در LiveDoc ذخیره کنید
خلاصه و منابع را در LiveDoc ذخیره کنید تا در تماس بعدی دوباره استفاده شوند.
account.ts type LiveDocData = { data: { short_id: string } }; const accountDoc = await felo<LiveDocData>("/v2/livedocs", { name: `Account: ${company}`, description: `Briefs and sources checked ${today}`, }); await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/urls`, { urls: [ ...pages.map((page) => ({ url: page.url, title: page.title })), ...seedSources.map((source) => ({ url: source.link, title: source.title })), ], }); await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/doc`, { title: `Account brief ${today}`, content: accountBrief, }); console.log(accountDoc.data.short_id); // the next call reuses this LiveDocخروجی نمونه
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
چه چیزی دارد
- نمای شرکت با منابع از Chat
- سایت، قیمت و مشاغل بهصورت Markdown
- پستهای عمومی تاریخدار در X
- خلاصه حساب ساختاریافته
- LiveDoc با شواهد
چه کاری نمیکند
- ایمیل، تلفن یا داده شخصی نمیدهد
- داده خصوصی یا صفحات فقط با ورود را نمیخواند
- در CRM نمینویسد و پیام نمیفرستد
- تعداد کارکنان، درآمد و سرمایه فقط با منبع روشن
- اولویتها و نیتها بهعنوان استنتاج علامت میخورند
پرسشها
آیا ایمیل تماس میدهد؟
نه. گردشکار فقط پژوهش عمومی میکند و ایمیل، تلفن یا داده شخصی نمیدهد.
داده از کجا؟
Chat نمای دارای منبع را برمیگرداند، Web Fetch سایت، قیمت و مشاغل را میخواند و X Search پستهای عمومی اضافه میکند. هر آیتم پیوند و تاریخ نگه میدارد.
شرکتهای غیرفناوری را میتوان بررسی کرد؟
بله. جایی که اطلاعات عمومی کم است خلاصه ناشناختهها را علامت میزند نه اینکه بسازد.
آیا در CRM مینویسد؟
نه. فقط خلاصه Markdown میسازد؛ ادغام CRM کار شماست.
آیا اولویتها واقعیتاند؟
نه. خلاصه «اولویتهای احتمالی» را استنتاج علامت میزند و پایه را نشان میدهد؛ تصمیم نهایی با فروشنده است.
هزینه یک اجرا چقدر است؟
Chat، استخراج و X Search بر اساس استفاده محاسبه میشوند؛ نرخهای فعلی در صفحه قیمت و پرامپت پیش از هزینه تأیید میخواهد.
گردشکارهای مرتبط
پرسش بازار را به خلاصه go-to-market تبدیل کنید
پرسش دقیقی از بازار بپرسید، صفحات دسته و قیمت پشت پاسخ را بخوانید، جمع کنید خریداران مشکل را در X چگونه توصیف میکنند و خلاصه GTM با ادعاهای مستند و پرسشهای باز ذخیره کنید.
باز کردن گردشکارپژوهشتحلیلی از رقبا بسازید که تیم فروش بتواند استفاده کند
صفحات رقیب، پوشش خبری اطراف آن و آنچه خریداران در X میگویند را جمع کنید، سپس تحلیلی بسازید که هر ادعا منبع، تاریخ و وضعیت دارد.
باز کردن گردشکارمحتواخلاصه محصول را به صفحه فرود تبدیل کنید
مخاطب را بررسی کنید، خلاصه را در LiveDoc ذخیره کنید، از این زمینه یک وظیفه Landing Page بسازید و بپرسید تا صفحه میزبانیشده آماده شود.
باز کردن گردشکارآن را از خود کنید
همان دستور، متناسب با روش واقعی تحویل شما.
فقط یک بخش
به صنعت یا منطقه محدود کنید تا خلاصه مشخصتر شود.
آخرین عرضه را اضافه کنید
صفحه عرضه را بهعنوان منبع اضافی برای موضوعات جاری اضافه کنید.
همراه تحلیل رقبا
اولویتهای خلاصه را با جایگاهیابی تحلیل مقایسه کنید و زاویه تمایز پیدا کنید.
ادامه دهید
صفحات مرجع پشت این دستور و گامهای بعدی.