Nội dung
Lấp một tháng nội dung bằng câu hỏi của khán giả
Lập bản đồ chủ đề với Chat, tìm câu hỏi khán giả trên X, lấy góc thật từ bản ghi video và dựng lịch bốn tuần nơi mỗi dòng nêu bằng chứng.
Sao chép prompt
Thay các trường trong ngoặc vuông rồi dán vào Claude Code, Codex hoặc AI có quyền truy cập terminal. Nó cài skill Felo, hỏi trước khi dùng credit và chạy quy trình.
Lập kế hoạch bốn tuần nội dung về [chủ đề] cho [độc giả]. Kênh: [kênh]. Định dạng được phép: [danh sách]. Ngày đăng: [ngày]. Ngôn ngữ: [ngôn ngữ]. Video tham chiếu (tùy chọn): [URL YouTube hoặc ID video]. Khung thời gian cho câu hỏi độc giả: [90] ngày qua. Tạo bảng lịch Markdown với một dòng cho mỗi ý tưởng: | Ngày | Định dạng | Tiêu đề tạm | Góc tiếp cận | Bằng chứng | - Ngày: bốn tuần tới, vào các ngày được phép. - Định dạng: một trong các định dạng được phép. - Tiêu đề tạm: tên của nội dung. - Góc tiếp cận: lời hứa với độc giả trong một câu. - Bằng chứng: câu hỏi, bài đăng, trang hoặc mốc thời gian video biện minh cho ý tưởng. Sau bảng, thêm: 1. Ba chủ đề làm nền cho tháng. 2. Ý tưởng nào đến từ câu hỏi độc giả, ý nào từ video tham chiếu, ý nào là giả thuyết của bạn. 3. Những gì cần nghiên cứu trước khi viết từng nội dung. 4. Danh sách nguồn kèm liên kết và ngày. Quy tắc: - Đây là ý tưởng, không phải bảo đảm. Không bao giờ hứa về độ phủ, lượt nhấp, thứ hạng hay tăng trưởng. - Không bịa xu hướng, lượng tìm kiếm, số tương tác hay trích dẫn. - Gắn mỗi câu hỏi độc giả với bài đăng hoặc trang có ngày. Nếu bằng chứng mỏng, ghi ý tưởng là giả thuyết. - Chỉ dùng video tham chiếu cho các góc nó thực sự bao phủ; trích ngắn kèm mốc thời gian. - Trước khi tiêu tín dụng, hiển thị các tìm kiếm và trích xuất dự định và chờ tôi phê duyệt. - Không lên lịch bài, không tạo bản nháp trong CMS và không công bố gì. - Ghi kết quả vào ./content-calendar.md và tóm tắt trong chat.
Bản sao cũng gồm các bước cài đặt và quy tắc an toàn.
Bạn nhận được gì
Kết quả mẫu của một lần chạy. Không phải tạo trực tiếp.
Lịch nội dung — tháng ví dụ
Chủ đề
- Thời gian vệ sinh là chi phí ẩn.
- Không gian mặt bàn quyết định mua.
- Mua cho mình vs mua làm quà.
Lịch
| Ngày | Định dạng | Tiêu đề tạm | Góc | Bằng chứng |
|---|---|---|---|---|
| 2026-11-02 | Carousel | Bài kiểm tra vệ sinh 5 phút | Cho thấy bước vệ sinh không ai quay | @example_home, 2026-10-24 |
| 2026-11-04 | Video ngắn | Không gian mặt bàn, đo được | So sánh dấu chân trên mặt bàn thật | Video tham chiếu — 42 giây |
| 2026-11-09 | Bản tin | Vì sao gioăng hỏng | Giải thích kiểu hỏng người mua liên tục báo | @example_buyer, 2026-10-19 |
Ý tưởng đến từ đâu
Hai dòng từ câu hỏi có ngày của độc giả, một từ video tham chiếu; dòng giả thuyết sẽ được ghi nhãn.
Cần nghiên cứu trước
Tỷ lệ trả hàng và chính sách thay gioăng — nguồn trên không đề cập.
Nguồn
- https://example.com/category-guide — 2026-10-12
- https://x.com/example_home/status/... — 2026-10-24
Các lệnh gọi chính xác
Dành cho lập trình viên: cùng quy trình dưới dạng mã, theo thứ tự chạy.
Hiện lệnh gọi API thật
Lập bản đồ chủ đề với Chat
Hỏi Chat các chủ đề phụ khán giả tìm nhiều nhất và giữ nguồn.
calendar.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 topic = "portable espresso makers"; const audience = "home espresso beginners"; const themes = await felo<ChatData>("/v2/chat", { query: `Themes, recurring questions, and content gaps around ${topic} for ${audience}`, }); const sources = themes.data.resources.slice(0, 5);Kết quả mẫu
{ "answer": "Beginners ask about cleanup, counter space, and grind size …", "sources": [ { "link": "https://example.com/guide", "title": "…", "snippet": "…" } ] }Tìm câu hỏi khán giả trên X
Tìm câu hỏi liên quan chủ đề trên X trong 90 ngày, giữ tài khoản và ngày.
calendar.ts type XData = { data: { tweets: { content: string; author: { username: string }; created_at: string; url: string; }[]; }; }; const since = Math.floor((Date.now() - 90 * 24 * 60 * 60 * 1000) / 1000); const questions = await felo<XData>("/v2/x/tweet/search", { query: `"${topic}" (recommend OR beginner OR how)`, limit: 50, since_time: since, }); const asked = questions.data.tweets;Kết quả mẫu
{ "data": { "tweets": [ { "content": "How do you clean one of these without taking it apart?", "author": { "username": "example_home" }, "created_at": "2026-10-24T11:30:00Z", "url": "https://x.com/example_home/status/..." } ] } }Lấy bản ghi tham chiếu
Dùng YouTube Subtitling lấy bản ghi và tìm góc thật dùng lại được.
calendar.ts type SubtitleData = { data: { title: string; contents: { text: string; start: number; duration: number }[]; }; }; const videoCode = "dQw4w9WgXcQ"; // replace with your reference video id const video = await felo<SubtitleData>( `/v2/youtube/subtitling?video_code=${videoCode}&language=en&with_time=true`, );Kết quả mẫu
{ "title": "Example Video Title", "contents": [ { "text": "Subtitle text", "start": 42.3, "duration": 8.1 } ] }Dựng lịch bốn tuần
Tạo bảng Markdown với ngày, định dạng, tiêu đề tạm, góc và bằng chứng.
calendar.ts const start = new Date(); const day = (offset: number) => { const date = new Date(start); date.setDate(date.getDate() + offset); return date.toISOString().slice(0, 10); }; type Idea = { dayOffset: number; format: string; title: string; angle: string; evidence: string; }; // Rows come from the themes, the dated questions, and the transcript. const anchor = video.data.contents[0]; const ideas: Idea[] = [ { dayOffset: 1, format: "carousel", title: "The 5-minute cleanup test", angle: "Show the cleanup step nobody films", evidence: asked[0]?.url ?? "hypothesis", }, { dayOffset: 3, format: "short video", title: "Counter space, measured", angle: "Compare footprints on one real counter", evidence: anchor ? `${video.data.title} — ${Math.round(anchor.start)}s` : video.data.title, }, ]; const calendar = [ "| Date | Format | Working title | Angle | Evidence |", "| --- | --- | --- | --- | --- |", ...ideas.map( (idea) => `| ${day(idea.dayOffset)} | ${idea.format} | ${idea.title} | ${idea.angle} | ${idea.evidence} |`, ), ].join("\n"); console.log(calendar);Kết quả mẫu
| Date | Format | Working title | Angle | Evidence | | --- | --- | --- | --- | --- | | 2026-11-02 | carousel | The 5-minute cleanup test | Show the cleanup step nobody films | https://x.com/example_home/status/... | | 2026-11-04 | short video | Counter space, measured | Compare footprints on one real counter | Example Video Title — 42s |
Lưu vào LiveDoc
Lưu lịch và nguồn trong LiveDoc để xem lại cuối tháng.
calendar.ts type LiveDocData = { data: { short_id: string } }; const plan = await felo<LiveDocData>("/v2/livedocs", { name: `Content calendar: ${topic}`, description: "Monthly plan with themes, calendar rows, and evidence", }); await felo(`/v2/livedocs/${plan.data.short_id}/resources/urls`, { urls: sources.map((source) => ({ url: source.link, title: source.title })), }); await felo(`/v2/livedocs/${plan.data.short_id}/resources/doc`, { title: `Content calendar — ${day(0).slice(0, 7)}`, content: calendar, }); type Retrieved = { data: { title: string; content: string; score: number }[] }; const lastMonth = await felo<Retrieved>( `/v2/livedocs/${plan.data.short_id}/resources/retrieve`, { query: "what did we plan last month" }, ).then((res) => res.data.filter((hit) => hit.score >= 0.7));Kết quả mẫu
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Bao gồm
- Bản đồ chủ đề từ Chat
- Câu hỏi khán giả có ngày trên X
- Bản ghi và góc của video tham chiếu
- Lịch nội dung bốn tuần
- LiveDoc với kế hoạch và nguồn
Không làm gì
- Không dự đoán hiệu suất hay bảo đảm traffic
- Không đọc analytics lịch sử của bạn
- Không viết toàn bộ bài và không đăng
- Không có video tham chiếu thì có thể bỏ bước
- Lịch là đề xuất, không phải lời hứa
Câu hỏi
Ý tưởng đến từ đâu?
Từ bản đồ chủ đề của Chat, câu hỏi thật của khán giả trên X và góc của video tham chiếu. Mỗi mục giữ liên kết hoặc ngày bằng chứng.
Có biết điều gì từng hiệu quả không?
Không. Nó không đọc analytics; kết quả lịch sử do bạn thêm.
Có viết bài không?
Không. Nó giao lịch và góc; việc viết do bạn hoặc writing agent.
Không có video tham chiếu thì sao?
Bỏ bước đó; chủ đề và câu hỏi X vẫn đủ chống lịch.
Có lên lịch đăng tự động không?
Không. Nó tạo tệp kế hoạch; lịch đăng nằm ở công cụ của bạn.
Một lần lập kế hoạch tốn bao nhiêu?
Chat, X Search và bản ghi video tính theo mức dùng; giá hiện tại ở trang giá và prompt hỏi duyệt trước khi chi.
Quy trình liên quan
Biến một truy vấn tìm kiếm thành báo cáo nội dung SEO
Xem trang nào đang trả lời truy vấn, đọc chúng dưới dạng Markdown, lập bản đồ câu hỏi được trả lời và bị bỏ qua, rồi viết báo cáo để người viết dựng dàn ý.
Mở quy trìnhNội dungXuất bản bản tin AI hằng ngày mà nhóm bạn thực sự đọc
Lấy bản tóm tắt tin có nguồn, thêm thảo luận của người thực hành trên X, lấy một bản ghi video, dựng bản tin Markdown và lưu vào LiveDoc.
Mở quy trìnhNội dungBiến thảo luận xã hội thành báo cáo lắng nghe hằng tuần
Tìm bài X tuần qua về thương hiệu và đối thủ, thêm bối cảnh web có nguồn, đọc các trang đằng sau và lưu mọi bản tin để tuần sau bắt đầu từ điều đã biết.
Mở quy trìnhTùy biến
Cùng công thức, điều chỉnh theo cách bạn thực sự triển khai.
Chỉ hai tuần
Nén bốn tuần thành hai cho nhóm mới bắt đầu.
Tách theo kênh
Tạo cột newsletter, X và YouTube với cùng chủ đề ở định dạng khác.
Thêm ra mắt sản phẩm
Đặt ngày ra mắt làm dòng cố định và lấp nội dung xung quanh.
Đi tiếp
Các trang tham chiếu đằng sau công thức và nơi đi tiếp.