Felo API PlatformFelo API Platform

Obsah

Naplňte měsíc obsahu otázkami publika

Zmapujte témata s Chat, najděte otázky publika na X, vezměte skutečný úhel z transkriptu videa a sestavte čtyřtýdenní kalendář, kde každý řádek uvádí svůj důkaz.

Čas25 minutÚroveňStředníAktualizováno2026-10-30
Pro kohoContent leadSocial mediaTvůrci

Zkopírovat prompt

Nahraďte pole v hranatých závorkách a vložte do Claude Code, Codex nebo AI s přístupem k terminálu. Nainstaluje skill Felo, zeptá se před utracením kreditů a spustí workflow.

Naplánuj čtyři týdny obsahu o [téma] pro [publikum].

Kanál: [kanál]. Povolené formáty: [seznam]. Dny publikace: [dny]. Jazyk: [jazyk].
Referenční video (volitelně): [URL YouTube nebo ID videa]. Období otázek publika: posledních [90] dní.

Vytvoř Markdown kalendářní tabulku s jedním řádkem na nápad:
| Datum | Formát | Pracovní titul | Úhel | Důkaz |
- Datum: příští čtyři týdny v povolených dnech.
- Formát: jeden z povolených.
- Pracovní titul: jak se obsah jmenuje.
- Úhel: slib publiku v jedné větě.
- Důkaz: otázka, příspěvek, stránka nebo časové razítko videa, které nápad ospravedlňuje.

Za tabulku přidej:
1. Tři témata, na kterých měsíc stojí.
2. Které nápady pocházejí z otázek publika, které z referenčního videa a které jsou tvoje hypotéza.
3. Co je potřeba prozkoumat před napsáním každého obsahu.
4. Seznam zdrojů s odkazy a daty.

Pravidla:
- Jsou to nápady, ne záruky. Nikdy neslibuj dosah, kliknutí, pozice ani růst.
- Nevymýšlej trendy, objem vyhledávání, čísla engagementu ani citace.
- Každou otázku publika připoj k datovanému příspěvku nebo stránce. Když jsou důkazy slabé, označ nápad jako hypotézu.
- Referenční video používej jen pro úhly, které skutečně pokrývá; cituj krátce s časovými razítky.
- Než utratíš kredity, ukaž plánovaná vyhledávání a extrakce a počkej na mé schválení.
- Neplánuj příspěvky, nevytvářej koncepty v CMS a nic nezveřejňuj.
- Výsledek zapiš do ./content-calendar.md a shrň ho v chatu.

Kopie obsahuje i instalační kroky a bezpečnostní pravidla.

Co dostanete

Ukázkový výstup jednoho běhu. Ne živé generování.

Ukázkový kalendář (výňatek)

Obsahový kalendář — ukázkový měsíc

Témata

  1. Čas na čištění je skrytý náklad.
  2. Místo na pracovní desce rozhoduje o koupi.
  3. Koupě pro sebe vs. jako dárek.

Kalendář

DatumFormátPracovní titulekÚhelDůkaz
2026-11-02KaruselTest čištění za 5 minutUkázat krok čištění, který nikdo nefilmuje@example_home, 2026-10-24
2026-11-04Krátké videoMísto na desce, změřenoPorovnat stopu na skutečné desceReferenční video — 42 s
2026-11-09NewsletterProč těsnění selháváVysvětlit režim selhání, který kupující hlásí@example_buyer, 2026-10-19

Odkud nápady jsou

Dva řádky z datovaných otázek publika, jeden z referenčního videa; řádek s hypotézou by byl označen.

Co nejdřív prozkoumat

Míru vrácení a politiku výměny těsnění — ani jedno zdroje výše nepokrývají.

Zdroje

  • https://example.com/category-guide — 2026-10-12
  • https://x.com/example_home/status/... — 2026-10-24

Přesná volání

Pro vývojáře: stejný workflow jako kód, v pořadí provádění.

Zobrazit skutečná API volání
  1. Zmapujte témata s Chat

    Zeptejte se Chat na podtémata nejvíc hledaná publikem a držte zdroje.

    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);

    Ukázkový výstup

    {
      "answer": "Beginners ask about cleanup, counter space, and grind size …",
      "sources": [
        { "link": "https://example.com/guide", "title": "…", "snippet": "…" }
      ]
    }
  2. Najděte otázky publika na X

    Hledejte otázky k tématu na X za posledních 90 dní, držte účty a data.

    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;

    Ukázkový výstup

    { "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/..."
      }
    ] } }
  3. Vezměte referenční transkript

    Použijte YouTube Subtitling pro transkript a najděte znovupoužitelný skutečný úhel.

    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`,
    );

    Ukázkový výstup

    {
      "title": "Example Video Title",
      "contents": [
        { "text": "Subtitle text", "start": 42.3, "duration": 8.1 }
      ]
    }
  4. Sestavte čtyřtýdenní kalendář

    Vytvořte Markdown tabulku s datem, formátem, pracovním názvem, úhlem a důkazem.

    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);

    Ukázkový výstup

    | 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 |
  5. Uložte do LiveDoc

    Uložte kalendář a zdroje do LiveDoc k revizi na konci měsíce.

    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));

    Ukázkový výstup

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

Co obsahuje

  • Mapa témat z Chat
  • Datované otázky publika na X
  • Transkript a úhel referenčního videa
  • Čtyřtýdenní obsahový kalendář
  • LiveDoc s plánem a zdroji

Co nedělá

  • Nepředpovídá výkon a negarantuje návštěvnost
  • Nečte vaši historickou analytiku
  • Nepíše celé posty a nepublikuje
  • Bez referenčního videa lze krok vynechat
  • Kalendář je návrh, ne slib

Otázky

Odkud nápady?

Z mapy témat Chat, skutečných otázek publika na X a úhlu referenčního videa. Každá položka drží odkaz nebo datum důkazu.

Ví, co fungovalo dřív?

Ne. Nečte analytiku; historické výsledky doplníte sami.

Píše i posty?

Ne. Dává kalendář a úhly; psaní je na vás nebo vašem psacím agentovi.

Bez referenčního videa?

Krok vynechejte; témata a otázky X kalendář unesou.

Lze plánovat publikace?

Ne. Tvoří plánovací soubor; plánování je ve vašem nástroji.

Kolik stojí jedno plánování?

Chat, X Search a transkript videa se účtují podle užití; aktuální sazby na stránce cen a prompt žádá schválení před útratou.

Související workflowy

Přizpůsobte

Stejný recept, upravený podle toho, jak skutečně dodáváte.

Jen dva týdny

Zkraťte čtyři týdny na dva pro týmy, které začínají.

Rozdělte podle kanálu

Udělejte sloupce newsletter, X a YouTube se stejným tématem v jiných formátech.

Přidejte produktový launch

Nastavte data launchů jako pevné řádky a obsah vyplňte kolem.

Referenční stránky za tímto receptem a další kroky.