Felo API PlatformFelo API Platform

پژوهش

پرسش بازار را به خلاصه go-to-market تبدیل کنید

پرسش دقیقی از بازار بپرسید، صفحات دسته و قیمت پشت پاسخ را بخوانید، جمع کنید خریداران مشکل را در X چگونه توصیف می‌کنند و خلاصه GTM با ادعاهای مستند و پرسش‌های باز ذخیره کنید.

زمان۳۰ دقیقهسطحمتوسطبه‌روزرسانی2026-10-30
برای چه کسانیبنیان‌گذاران و اپراتورهابازاریابی محصولرهبران فروش

کپی پرامپت

فیلدهای داخل قلاب را جایگزین کنید و در Claude Code، Codex یا هوش مصنوعی با دسترسی ترمینال بچسبانید. مهارت Felo را نصب می‌کند، پیش از خرج اعتبار می‌پرسد و گردش‌کار را اجرا می‌کند.

یک خلاصه پژوهش go-to-market برای [محصول] که وارد [بخش یا ICP] در [منطقه] می‌شود، به زبان [زبان] تهیه کنید.

مدل: [self-serve / فروش‌محور / شریک]. تصمیمی که پشتیبانی می‌کند: [عرضه / قیمت / جایگاه‌یابی دوباره]. بازه زمانی: [۹۰ روز گذشته / ۱۲ ماه گذشته].

خروجی یک خلاصه Markdown با این بخش‌ها باشد:
1. تعریف بخش: چه کسانی هستند، امروز از چه استفاده می‌کنند و منابع درباره اندازه چه می‌گویند — منبع بیاورید یا بنویسید «داده‌ای موجود نیست».
2. زبان خریداران: مشکل را چگونه توصیف می‌کنند، با پیوند و تاریخ.
3. جایگزین‌ها: از چه چیزی تغییر می‌کنند، شامل صفحه‌گسترده و هیچ‌کاری‌نکردن.
4. اعتراض‌ها و مدرکی که خریداران می‌خواهند.
5. پرسش‌های باز که منابع عمومی نمی‌توانند پاسخ دهند.
6. فهرست کامل منابع.

قواعد:
- هر ادعای بازار به پیوند و تاریخ نیاز دارد. اندازه بازار، رشد یا بودجه را با حس و گمان تخمین نزنید.
- منابع مستقل، صفحه‌های فروشنده و استنباط خود را جدا کنید.
- از X برای زبان و اعتراض‌ها استفاده کنید، نه به‌عنوان مدرک اندازه بازار.
- بازه زمانی و منطقه را به مقادیر صریح تبدیل کنید.
- پیش از مصرف اعتبار، فراخوانی‌های API برنامه‌ریزی‌شده را نشان دهید و منتظر تأیید من بمانید.
- چیزی منتشر، ارسال، زمان‌بندی یا در CRM ثبت نکنید.
- نتیجه را در ./gtm-brief.md بنویسید و در چت خلاصه کنید.

نسخه شامل مراحل نصب و قواعد ایمنی نیز هست.

چه دریافت می‌کنید

خروجی نمونه یک اجرا. نه تولید زنده.

نمونه خلاصه GTM (بخش)

خلاصه GTM — [بخش] در [منطقه]

تعریف بخش

تیم‌های عملیاتی کوچک که زمان‌بندی را در صفحه‌گسترده انجام می‌دهند. اندازه: در منابع عمومی بررسی‌شده داده‌ای نیست — بدون منبع عددی در خلاصه نگذارید.

زبان خریداران

  • «هنوز این کار را در صفحه‌گسترده انجام می‌دهیم» — پست X، 2026-10-18
  • «بخش سخت، راه‌اندازی است» — پست X، 2026-10-02

به‌عنوان زبان علامت خورده، نه شاهد شیوع.

جایگزین‌هایی که خریداران می‌گویند

صفحه‌گسترده، مجموعه نرم‌افزاری موجود و هیچ‌کاری نکردن. منبع: https://example.com/thread (2026-10-18).

اعتراض‌ها و شواهد لازم

بررسی امنیتی و مسیر مهاجرت. خریداران مرجع نام‌دار می‌خواهند؛ مرجع عمومی نداریم، پس پرسش باز می‌ماند.

پرسش‌های باز

  • چه بخشی از این بخش قبلاً ردیف بودجه اختصاصی دارد؟
  • آیا اعتراض با اندازه شرکت تغییر می‌کند؟

منابع

  • https://example.com/category-page
  • https://example.com/pricing-page
  • https://example.com/thread

فراخوانی‌های دقیق

برای توسعه‌دهندگان: همان گردش‌کار به‌صورت کد، به ترتیب اجرا.

نمایش فراخوانی‌های واقعی API
  1. پرسش بازار را قاب‌بندی کنید

    Chat پاسخ و صفحات استفاده‌شده را برمی‌گرداند، پس با پرسشی به‌قدر کافی باریک شروع کنید: چه کسی می‌خرد، امروز از چه استفاده می‌کنند، چه مخالفت‌هایی پیش می‌آید. منابع را به‌عنوان پیوندهای سرنخ نگه دارید؛ پاسخ سرنخ است، پیوندها شاهدند و فهرست منابع را می‌بندند.

    gtm.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 product = "scheduling tool"; // replace with your product
    const segment = "operations teams at 50-200 person companies";
    const region = "DACH";
    
    const market = await felo<ChatData>("/v2/chat", {
      query: `Who buys ${product} for ${segment} in ${region}, what do they use today, and what objections come up?`,
    });
    
    const seedSources = market.data.resources.slice(0, 5);

    خروجی نمونه

    {
      "answer": "Buyers in this segment usually start from spreadsheets and …",
      "sources": [
        { "link": "https://example.com/category-page", "title": "…", "snippet": "…" }
      ]
    }
  2. صفحات دسته را خودتان بخوانید

    صفحاتی که بازار را قاب می‌گیرند دانلود کنید: نمای کلی دسته، مقایسه و قیمت. با حالت خواندن به Markdown استخراج کنید و تاریخ دانلود را بنویسید، چون کیفیت خوانش بازار به صفحات پشت آن بستگی دارد.

    gtm.ts
    type ExtractData = { data: { content: string } };
    
    const marketPages = [
      { url: "https://example.com/category", title: "Category overview" },
      { url: "https://example.com/comparison", title: "Comparison page" },
      { url: "https://example.com/pricing", title: "Pricing page" },
    ];
    
    const pages = await Promise.all(
      marketPages.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/category",
      "checkedAt": "2026-10-30",
      "content": "# Category overview\n\nExtracted page text…"
    }
  3. جمع کنید خریداران مشکل را چگونه توصیف می‌کنند

    در X کلماتی را جست‌وجو کنید که خریداران هنگام روبه‌رو شدن با مشکل به کار می‌برند نه نام محصول. حساب و تاریخ را نگه دارید؛ خلاصه پست‌ها را برای زبان و مخالفت‌ها استفاده می‌کند نه به‌عنوان سنجه اندازه بازار یا تکرار.

    gtm.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 language = await felo<XData>("/v2/x/tweet/search", {
      query: `(spreadsheet OR "scheduling tool") (alternative OR "looking for")`,
      limit: 25,
      since_time: since,
    });
    
    const quotes = language.data.tweets.slice(0, 5);

    خروجی نمونه

    { "data": { "tweets": [
      {
        "content": "we are still doing this in a spreadsheet",
        "author": { "username": "example_ops" },
        "created_at": "2026-10-18T11:05:00Z",
        "metrics": { "retweet_count": 1, "favorite_count": 18 }
      }
    ] } }
  4. خلاصه را حول تصمیم بنویسید

    تعریف بخش، زبان خریداران، جایگزین‌ها، مخالفت‌ها و پرسش‌های باز را در یک Markdown جمع کنید. هر ادعا منبع و تاریخ نگه می‌دارد، اندازه بازار فقط با منبع می‌آید و آنچه منابع عمومی پاسخ نمی‌دهند به پرسش‌های باز می‌رود نه استنتاج.

    gtm.ts
    const today = new Date().toISOString().slice(0, 10);
    
    const sourceLine = (title: string, url: string, date: string) =>
      `- ${title}: ${url} (checked ${date})`;
    
    const brief = [
      `# GTM brief — ${segment} in ${region}`,
      "",
      "## Segment definition",
      "See the category page for how the segment is described. Market size: Not available from public sources reviewed.",
      "",
      "## Buyer language",
      ...quotes.map((post) => `- @${post.author.username}, ${post.created_at.slice(0, 10)}: ${post.content}`),
      "",
      "## Alternatives buyers mention",
      "Spreadsheets, an incumbent suite, and doing nothing. Treated as language until a source ranks them.",
      "",
      "## Objections and proof required",
      "Migration path and a named reference. Marked open: whether the objection changes by company size.",
      "",
      "## Open questions",
      "- How much of the segment already has a dedicated budget line?",
      "- Which objection blocks a pilot most often?",
      "",
      "## Sources",
      ...pages.map((page) => sourceLine(page.title, page.url, page.checkedAt)),
      ...seedSources.map((source) => `- ${source.title}: ${source.link}`),
    ].join("\n");
    
    console.log(brief);

    خروجی نمونه

    # GTM brief — operations teams at 50-200 person companies in DACH
  5. شواهد را برای بازار بعدی نگه دارید

    برای هر بخش و منطقه یک LiveDoc بسازید، صفحات دانلودشده را به‌عنوان منابع URL و خلاصه را به‌عنوان سند اضافه کنید. بازار بعدی از همان منابع شروع می‌شود بدون دانلود دوباره دسته، و افزودن دوباره URL حذف تکراری می‌شود.

    gtm.ts
    type LiveDocData = { data: { short_id: string } };
    
    const briefDoc = await felo<LiveDocData>("/v2/livedocs", {
      name: `GTM: ${segment} — ${region}`,
      description: `Market evidence checked ${today}`,
    });
    
    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: `GTM brief ${today}`,
      content: brief,
    });
    
    console.log(briefDoc.data.short_id); // reuse for the next region

    خروجی نمونه

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

چه چیزی دارد

  • خوانش بازار با منابع از Chat API و صفحات پشت آن
  • صفحات دسته، مقایسه و قیمت به‌صورت Markdown
  • زبان و مخالفت‌های خریداران از X با حساب و تاریخ
  • خلاصه‌ای حول تصمیم عرضه نه موضوع
  • LiveDoc تا منطقه یا عرضه بعدی شواهد را دوباره استفاده کند

چه کاری نمی‌کند

  • فقط منابع عمومی؛ بدون گزارش پرداختی، پنل یا مصاحبه مشتری
  • هرگز اندازه یا رشد بازار را تخمین نمی‌زند — بدون داده «در دسترس نیست» می‌نویسد
  • پست‌های X زبان و سیگنال‌اند نه نمونه نماینده خریداران
  • بخش یا قیمت را برای شما انتخاب نمی‌کند
  • خلاصه را منتشر نمی‌کند یا در CRM نمی‌نویسد

پرسش‌ها

آیا گزارش بازار پرداختی لازم است؟

نه. گردش‌کار منابع عمومی را می‌خواند و شکاف‌ها را علامت می‌زند. اگر گزارش دارید آن را به‌عنوان سند در LiveDoc اضافه کنید و مثل هر منبع دیگر نقل کنید.

آیا می‌توان بازار را به زبان دیگر بررسی کرد؟

بله. منطقه و زبان را تنظیم کنید. نقل‌قول‌ها به زبان اصلی با ترجمه کنار آن می‌مانند تا بازبین محلی عبارت را بررسی کند.

آیا اندازه بازار به دست می‌آید؟

فقط وقتی منبعی ذکر کند با پیوند و تاریخ. وگرنه خلاصه «در دسترس نیست» می‌نویسد نه اینکه عدد بسازد یا از یک پست استنتاج کند.

آیا با مشتریان صحبت می‌کند؟

نه. منابع عمومی را می‌خواند. یادداشت مصاحبه را به‌عنوان سند اضافه کنید و داخلی علامت بزنید؛ خلاصه هرگز یادداشت خصوصی را شاهد عمومی معرفی نمی‌کند.

تفاوتش با خلاصه پژوهش چیست؟

خلاصه پژوهش به یک پرسش پاسخ می‌دهد. این گردش‌کار شواهد را حول تصمیم go-to-market می‌چیند — بخش، زبان خریداران، جایگزین‌ها، مخالفت‌ها و شواهد درخواستی — تا به برنامه عرضه برسد.

هزینه یک خلاصه چقدر است؟

هر فراخوانی چت، استخراج و جست‌وجوی X بر اساس استفاده اعتبار مصرف می‌کند؛ نرخ‌های فعلی در صفحه قیمت است. پرامپت پیش از هزینه تأیید می‌خواهد.

گردش‌کارهای مرتبط

آن را از خود کنید

همان دستور، متناسب با روش واقعی تحویل شما.

بر اساس منطقه اجرا کنید

ساختار بخش‌ها را نگه دارید و فقط منطقه و زبان را عوض کنید. برای هر منطقه یک LiveDoc و همان پرسش‌ها تا خلاصه‌ها قابل مقایسه باشند.

یادداشت مصاحبه اضافه کنید

یادداشت تماس مشتری را به‌عنوان سند بچسبانید و داخلی علامت بزنید. خلاصه می‌تواند آن‌ها را کنار شواهد عمومی نقل کند اما یادداشت خصوصی را شاهد عمومی معرفی نمی‌کند.

ارائه عرضه را تغذیه کنید

بخش مخالفت و شواهد را به گردش‌کار ارائه بدهید و فهرست منابع را نگه دارید. خلاصه لایه شواهد می‌ماند؛ ارائه نمایش است نه منبع حقیقت دوم.

صفحات مرجع پشت این دستور و گام‌های بعدی.