Felo API PlatformFelo API Platform

วิจัย

เปลี่ยนคำค้นเป็นบรีฟเนื้อหา SEO

ดูว่าหน้าใดตอบวันนี้ อ่านเป็น Markdown ทำแผนที่คำถามที่ครอบคลุมและที่ขาด แล้วเขียนบรีฟให้นักเขียนร่างโครงได้

เวลา25 นาทีระดับระดับกลางอัปเดต2026-10-30
สำหรับใครการตลาดเนื้อหาผู้เชี่ยวชาญ SEOบรรณาธิการ

คัดลอกพรอมป์ต์

แทนช่องในวงเล็บเหลี่ยมแล้ววางใน Claude Code, Codex หรือ AI ที่เข้าถึงเทอร์มินัล ระบบจะติดตั้งสกิล Felo ถามก่อนใช้เครดิต และรันเวิร์กโฟลว์

เขียนสรุปเนื้อหา SEO สำหรับคำค้น [คำค้นเป้าหมาย] ของ [ผลิตภัณฑ์หรือเว็บไซต์]

ผู้อ่าน: [ผู้อ่าน] ตลาดและภาษา: [ภูมิภาค], [ภาษา] มุมมอง: [คู่มือ / เปรียบเทียบ / หน้าสินค้า] การตัดสินใจที่รองรับ: [บทความใหม่ / อัปเดต / เติมช่องว่าง]

อ่านสิ่งที่ตอบคำค้นนี้อยู่ก่อน แล้วจึงร่างโครง สร้างสรุป Markdown ที่มี:
1. คำค้นเป้าหมายและเจตนาการค้นที่คุณอนุมาน พร้อมหลักฐานของการตีความนั้น
2. สิ่งที่หน้าเว็บปัจจุบันครอบคลุม: ชื่อเรื่อง URL และหัวข้อเปิด
3. คำถามที่หน้าเว็บปัจจุบันตอบ และคำถามที่ยังขาด
4. โครงร่างที่เสนอ โดยหนึ่งบรรทัดต่อหัวข้อว่าต้องพิสูจน์อะไร
5. หลักฐานและตัวอย่างจากแหล่งข้อมูล พร้อมลิงก์
6. รายการแหล่งอ้างอิงทั้งหมด

กฎ:
- ห้ามอ้างปริมาณการค้นหา ความยากของคำค้น อันดับ หรือทราฟฟิก เวิร์กโฟลว์นี้ไม่ได้วัดสิ่งเหล่านั้น ให้เขียน “ไม่ได้วัดที่นี่” แทนตัวเลข
- ห้ามแต่งสถิติ คำพูด หรือข้อกล่าวอ้างเกี่ยวกับเนื้อหาคู่แข่ง
- อธิบายเจตนาเป็นการอ่านหน้าเว็บ ไม่ใช่ข้อเท็จจริงที่วัดได้
- เก็บคำพูดให้สั้น ระบุที่มา และมีลิงก์
- แปลงภูมิภาคและภาษาเป็นค่าที่ชัดเจน
- ก่อนใช้เครดิต ให้แสดงการเรียก API ที่จะทำและรอการอนุมัติจากฉัน
- ห้ามเผยแพร่ ตั้งเวลา หรือส่งสิ่งใด
- เขียนผลลัพธ์ลง ./seo-brief.md และสรุปในแชท

สำเนายังรวมขั้นตอนติดตั้งและกฎความปลอดภัย

สิ่งที่คุณได้รับ

ตัวอย่างผลลัพธ์จากการรันหนึ่งครั้ง ไม่ใช่การสร้างสด

ตัวอย่างสรุป (ตัดตอน)

สรุป SEO — “วิธีทำให้การคัดแยกงานสนับสนุนเป็นอัตโนมัติ”

คำค้นเป้าหมายและเจตนา

คำค้น: “วิธีทำให้การคัดแยกงานสนับสนุนเป็นอัตโนมัติ” หน้าที่ส่งกลับเริ่มด้วยขั้นตอนใช้งาน ไม่ใช่หน้าผลิตภัณฑ์ เจตนาจึงอ่านเป็นการทำตามขั้นตอน นี่คือการอ่านหน้า ไม่ใช่ป้ายเจตนาที่วัดได้

หน้าที่มีอยู่ครอบคลุมอะไร

หน้าURLเริ่มด้วย
ทำให้การคัดแยกงานสนับสนุนเป็นอัตโนมัติ: คู่มือปฏิบัติhttps://example.com/guideกฎการกำหนดเส้นทาง แล้วแท็ก
เช็กลิสต์ระบบอัตโนมัติการคัดแยกhttps://example.com/checklistตัวเช็กลิสต์

คำถามที่หน้าตอบ

  • ระบบอัตโนมัติเปลี่ยนอะไร
  • เริ่มจากกฎการกำหนดเส้นทางใด

คำถามที่ขาด

  • จะวัดได้อย่างไรว่าการคัดแยกดีขึ้นจริง
  • ทำอะไรเมื่อตัวจำแนกผิด

โครงร่างที่เสนอ

  1. ระบบอัตโนมัติเปลี่ยนอะไร — พิสูจน์ว่าเป็นเรื่องคิว ไม่ใช่จำนวนคน
  2. กฎการกำหนดเส้นทางสามข้อแรกที่ควรทำอัตโนมัติ — พิสูจน์แต่ละข้อด้วยตัวอย่าง
  3. วิธีวัดในเดือนแรก — พิสูจน์ด้วยตัวชี้วัดที่หัวหน้าปฏิบัติการดึงได้
  4. เมื่อระบบอัตโนมัติผิด — พิสูจน์เส้นทางสำรองของมนุษย์

หลักฐาน

  • ตัวอย่างกฎการกำหนดเส้นทาง อ้างจาก https://example.com/guide (ตรวจสอบ 2026-10-30)

ไม่ได้วัดที่นี่

ปริมาณการค้นหา ความยากของคำค้น และอันดับ บริบทนี้อ่านหน้าสาธารณะ ไม่ได้ถามดัชนีค้นหาหรือตัวติดตามอันดับ

แหล่งข้อมูล

  • https://example.com/guide
  • https://example.com/checklist

การเรียกที่แน่นอน

สำหรับนักพัฒนา: เวิร์กโฟลว์เดียวกันในรูปโค้ดตามลำดับการทำงาน

แสดงการเรียก API จริง
  1. ดูว่าใครตอบวันนี้

    ถาม 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": "…" }
      ]
    }
  2. อ่านหน้าเป็น 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…"
    }
  3. ทำแผนที่ความครอบคลุมและช่องว่าง

    สกัด 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?" }
    ]
  4. เขียนบรีฟ

    อธิบายคำค้น เจตนา เปรียบเทียบความครอบคลุม คำถามที่ขาด โครงร่างที่เสนอ และรายการแหล่ง

    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"
  5. เก็บใน 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 ทุกการประเมินชี้หน้าและวันที่ชัดเจน

จัดการหลายคำค้นได้ไหม?

ได้ แต่ทีละคำค้น ทำขั้นตอนซ้ำต่อคำค้นและเก็บบรีฟแยก

เหมาะกับคำค้นแบบไหน?

ข้อมูล เปรียบเทียบ และ “วิธีทำ” เพราะหน้าสาธารณะให้สัญญาณพอ คำค้นเชิงธุรกรรมต้องใช้ข้อมูลสินค้าและการแปลงของคุณ

เขียนบทความไหม?

ไม่ ให้บรีฟและโครงร่าง การเขียนเป็นของบรรณาธิการหรือ writing agent

การรันหนึ่งครั้งมีค่าใช้จ่ายเท่าไร?

Chat และการสกัดใช้เครดิตตามการใช้งาน อัตราปัจจุบันที่หน้าค่าบริการ พรอมป์ต์ขออนุมัติก่อนใช้จ่าย

เวิร์กโฟลว์ที่เกี่ยวข้อง

วิจัย

เปลี่ยนคำถามหนึ่งข้อเป็นบรีฟวิจัยที่มีแหล่งอ้างอิง

ถามเว็บ บันทึกหน้าเว็บที่อยู่เบื้องหลังคำตอบเป็น Markdown เพิ่มสิ่งที่ผู้ปฏิบัติพูดบน X และเก็บหลักฐานใน LiveDoc ที่ค้นซ้ำได้

เปิดเวิร์กโฟลว์
เนื้อหา

เติมเนื้อหาหนึ่งเดือนด้วยคำถามของผู้ชม

ทำแผนที่หัวข้อด้วย Chat หาคำถามผู้ชมบน X ดึงมุมจริงจากทรานสคริปต์วิดีโอ และประกอบปฏิทินสี่สัปดาห์ที่ทุกแถวระบุหลักฐาน

เปิดเวิร์กโฟลว์
เนื้อหา

เผยแพร่สรุปข่าว AI รายวันที่ทีมอ่านจริง

รับสรุปข่าวพร้อมแหล่ง เพิ่มการพูดคุยของผู้ปฏิบัติบน X ดึงทรานสคริปต์วิดีโอ ประกอบฉบับเป็น Markdown และเก็บใน LiveDoc

เปิดเวิร์กโฟลว์

ปรับให้เป็นของคุณ

สูตรเดิม ปรับตามวิธีที่คุณส่งมอบจริง

เฉพาะคำค้นเปรียบเทียบ

จำกัดที่ “X vs Y” และ “X ที่ดีที่สุด” เพื่อเห็นมุมแตกต่างชัดขึ้น

เพิ่มหน้าสินค้าของคุณ

ใส่หน้าสินค้าเป็นแหล่งเพิ่ม เพื่อให้โครงร่างลงบนฟีเจอร์และราคาของคุณ

อัปเดตทุกไตรมาส

รันใหม่ใน LiveDoc เดิมและดูว่าหน้าคู่แข่งกับโครงร่างเปลี่ยนอย่างไร

หน้าเอกสารอ้างอิงเบื้องหลังสูตรนี้และก้าวต่อไป