Contenuti
Riempi un mese di contenuti con le domande del tuo pubblico
Mappa i temi con Chat, trova le domande del pubblico su X, prendi un angolo reale da una trascrizione video e componi un calendario di quattro settimane in cui ogni riga nomina la sua prova.
Copia il prompt
Sostituisci i campi tra parentesi quadre e incolla in Claude Code, Codex o qualsiasi IA con accesso al terminale. Installa lo skill Felo, chiede prima di spendere crediti ed esegue il workflow.
Pianifica quattro settimane di contenuti su [tema] per [pubblico]. Canale: [canale]. Formati consentiti: [elenco]. Giorni di pubblicazione: [giorni]. Lingua: [lingua]. Video di riferimento (opzionale): [URL YouTube o ID video]. Finestra delle domande del pubblico: ultimi [90] giorni. Produci una tabella calendario Markdown con una riga per idea: | Data | Formato | Titolo di lavoro | Angolo | Prova | - Data: le prossime quattro settimane, nei giorni consentiti. - Formato: uno di quelli consentiti. - Titolo di lavoro: come si chiama il contenuto. - Angolo: la promessa al pubblico in una frase. - Prova: la domanda, il post, la pagina o il timestamp del video che giustifica l’idea. Dopo la tabella aggiungi: 1. I tre temi su cui si costruisce il mese. 2. Quali idee vengono dalle domande del pubblico, quali dal video di riferimento e quali sono tue ipotesi. 3. Cosa dovresti ricercare prima di scrivere ogni contenuto. 4. Un elenco di fonti con link e date. Regole: - Sono idee, non garanzie. Non promettere mai copertura, clic, posizionamenti o crescita. - Non inventare tendenze, volume di ricerca, numeri di engagement o citazioni. - Collega ogni domanda del pubblico a un post o una pagina con data. Se le prove sono scarse, etichetta l’idea come ipotesi. - Usa il video di riferimento solo per gli angoli che copre davvero; cita brevemente con timestamp. - Prima di consumare crediti, mostra le ricerche ed estrazioni previste e attendi la mia approvazione. - Non programmare post, non creare bozze nel CMS e non pubblicare nulla. - Scrivi il risultato in ./content-calendar.md e riassumilo in chat.
La copia include anche i passaggi di installazione e le regole di sicurezza.
Cosa ottieni
Output di esempio di un'esecuzione. Non è generazione dal vivo.
Calendario contenuti — mese di esempio
Temi
- Il tempo di pulizia è il costo nascosto.
- Lo spazio sul piano decide l’acquisto.
- Comprare per sé vs. come regalo.
Calendario
| Data | Formato | Titolo di lavoro | Angolo | Prova |
|---|---|---|---|---|
| 2026-11-02 | Carosello | Il test di pulizia da 5 minuti | Mostrare il passaggio di pulizia che nessuno filma | @example_home, 2026-10-24 |
| 2026-11-04 | Video breve | Spazio sul piano, misurato | Confrontare gli ingombri su un piano reale | Video di riferimento — 42 s |
| 2026-11-09 | Newsletter | Perché la guarnizione si rompe | Spiegare il modo di guasto che gli acquirenti segnalano | @example_buyer, 2026-10-19 |
Da dove vengono le idee
Due righe vengono da domande datate del pubblico e una dal video di riferimento; una riga ipotesi sarebbe etichettata come tale.
Cosa ricercare prima
Tassi di reso e politica di sostituzione della guarnizione — nessuna è coperta dalle fonti sopra.
Fonti
- https://example.com/category-guide — 2026-10-12
- https://x.com/example_home/status/... — 2026-10-24
Le chiamate esatte
Per gli sviluppatori: lo stesso workflow come codice, nell'ordine di esecuzione.
Mostra le chiamate API reali
Mappa i temi con Chat
Chiedi a Chat i sotto-temi più cercati dal pubblico e conserva le fonti.
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);Output di esempio
{ "answer": "Beginners ask about cleanup, counter space, and grind size …", "sources": [ { "link": "https://example.com/guide", "title": "…", "snippet": "…" } ] }Trova le domande del pubblico su X
Cerca domande sul tema su X negli ultimi 90 giorni, conservando account e date.
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;Output di esempio
{ "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/..." } ] } }Prendi una trascrizione di riferimento
Usa YouTube Subtitling per una trascrizione e trova un angolo reale riutilizzabile.
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`, );Output di esempio
{ "title": "Example Video Title", "contents": [ { "text": "Subtitle text", "start": 42.3, "duration": 8.1 } ] }Componi il calendario di quattro settimane
Crea una tabella Markdown con data, formato, titolo di lavoro, angolo e prova.
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);Output di esempio
| 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 |
Salva nel LiveDoc
Salva calendario e fonti nel LiveDoc per la revisione di fine mese.
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));Output di esempio
{ "short_id": "PvyKouzJirXjFdst4uKRK3" }
Cosa include
- Mappa dei temi da Chat
- Domande datate del pubblico su X
- Trascrizione e angolo di un video di riferimento
- Calendario di quattro settimane
- LiveDoc con piano e fonti
Cosa non fa
- Non prevede performance e non garantisce traffico
- Non legge la tua analytics storica
- Non scrive post completi e non pubblica
- Senza video di riferimento il passo può essere saltato
- Il calendario è un suggerimento, non una promessa
Domande
Da dove vengono le idee?
Dalla mappa dei temi di Chat, dalle domande reali del pubblico su X e dall’angolo di un video di riferimento. Ogni voce conserva link o data della prova.
Sa cosa ha funzionato prima?
No. Non legge la analytics; i risultati storici li aggiungi tu.
Scrive anche i post?
No. Consegna calendario e angoli; la scrittura è tua o del tuo agent.
E senza video di riferimento?
Salta quel passo; temi e domande X sostengono comunque il calendario.
Posso pianificare le pubblicazioni?
No. Crea un file di piano; la pianificazione è nel tuo strumento.
Quanto costa una pianificazione?
Chat, X Search e trascrizione sono a consumo; le tariffe sono nella pagina prezzi e il prompt chiede approvazione prima di spendere.
Workflow correlati
Trasforma una query di ricerca in un brief di contenuto SEO
Guarda quali pagine rispondono oggi, leggile come Markdown, mappa le domande a cui rispondono e quelle che mancano, poi scrivi un brief da cui il copywriter può ricavare la scaletta.
Apri il workflowContenutiPubblica un digest quotidiano di notizie IA che il team legga davvero
Ottieni una rassegna con fonti, aggiungi le discussioni dei professionisti su X, prendi una trascrizione video, componi l’edizione in Markdown e archiviala in un LiveDoc.
Apri il workflowContenutiTrasforma le conversazioni social in un brief settimanale di ascolto
Cerca i post X dell’ultima settimana su brand e concorrenti, aggiungi contesto web con fonti, leggi le pagine dietro e archivia ogni edizione perché la settimana dopo parta da ciò che si sa.
Apri il workflowAdattala a te
La stessa ricetta, adattata a come lavori davvero.
Solo due settimane
Comprimi quattro settimane in due per team che iniziano.
Dividi per canale
Crea colonne newsletter, X e YouTube con lo stesso tema in formati diversi.
Aggiungi il lancio prodotto
Metti date di lancio come righe fisse e riempi intorno.
Continua
Le pagine di riferimento dietro questa ricetta e i prossimi passi.