Felo API PlatformFelo API Platform

Conteúdo

Preencha um mês de conteúdo com as perguntas da sua audiência

Mapeie temas no Chat, encontre as perguntas da audiência no X, pegue um ângulo real de uma transcrição de vídeo e monte um calendário de quatro semanas em que cada linha nomeia sua evidência.

Tempo25 minutosNívelIntermediárioAtualizado2026-10-30
Para quemLíderes de conteúdoSocial mediaCriadores

Copiar o prompt

Substitua os campos entre colchetes e cole no Claude Code, Codex ou qualquer IA com acesso ao terminal. Ela instala a skill da Felo, pergunta antes de gastar créditos e executa o fluxo.

Planeje quatro semanas de conteúdo sobre [tema] para [público].

Canal: [canal]. Formatos permitidos: [lista]. Dias de publicação: [dias]. Idioma: [idioma].
Vídeo de referência (opcional): [URL do YouTube ou ID do vídeo]. Janela de perguntas do público: últimos [90] dias.

Produza uma tabela de calendário em Markdown com uma linha por ideia:
| Data | Formato | Título de trabalho | Ângulo | Evidência |
- Data: as próximas quatro semanas, nos dias permitidos.
- Formato: um dos permitidos.
- Título de trabalho: como a peça se chama.
- Ângulo: a promessa feita ao público em uma frase.
- Evidência: a pergunta, post, página ou timestamp do vídeo que justifica a ideia.

Depois da tabela, adicione:
1. Os três temas que sustentam o mês.
2. Quais ideias vêm de perguntas do público, quais do vídeo de referência e quais são hipótese sua.
3. O que você precisaria pesquisar antes de escrever cada peça.
4. Uma lista de fontes com links e datas.

Regras:
- São ideias, não garantias. Nunca prometa alcance, cliques, posições ou crescimento.
- Não invente tendências, volume de busca, números de engajamento ou citações.
- Vincule cada pergunta do público a um post ou página com data. Se a evidência for fraca, rotule a ideia como hipótese.
- Use o vídeo de referência apenas para ângulos que ele realmente cobre; cite brevemente com timestamps.
- Antes de gastar créditos, mostre as buscas e extrações planejadas e aguarde minha aprovação.
- Não agende posts, não crie rascunhos no CMS e não publique nada.
- Grave o resultado em ./content-calendar.md e resuma no chat.

A cópia também inclui os passos de instalação e as regras de segurança.

O que você recebe

Saída de exemplo de uma execução. Não é geração ao vivo.

Exemplo de calendário (trecho)

Calendário de conteúdo — mês de exemplo

Temas

  1. Tempo de limpeza é o custo escondido.
  2. Espaço na bancada decide a compra.
  3. Comprar para si vs. comprar de presente.

Calendário

DataFormatoTítulo de trabalhoÂnguloEvidência
2026-11-02CarrosselO teste de limpeza em 5 minutosMostrar a etapa de limpeza que ninguém filma@example_home, 2026-10-24
2026-11-04Vídeo curtoEspaço na bancada, medidoComparar pegadas numa bancada realVídeo de referência — 42 s
2026-11-09NewsletterPor que a vedação falhaExplicar o modo de falha que compradores relatam@example_buyer, 2026-10-19

De onde vêm as ideias

Duas linhas vêm de perguntas datadas da audiência e uma do vídeo de referência; uma linha de hipótese seria rotulada como tal.

O que pesquisar primeiro

Taxas de devolução e política de troca da vedação — nenhuma está coberta pelas fontes acima.

Fontes

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

As chamadas exatas

Para desenvolvedores: o mesmo fluxo em código, na ordem de execução.

Mostrar as chamadas reais da API
  1. Mapeie os temas no Chat

    Pergunte ao Chat quais subtemas a audiência mais busca e guarde as fontes.

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

    Saída de exemplo

    {
      "answer": "Beginners ask about cleanup, counter space, and grind size …",
      "sources": [
        { "link": "https://example.com/guide", "title": "…", "snippet": "…" }
      ]
    }
  2. Encontre perguntas da audiência no X

    Pesquise perguntas sobre o tema no X nos últimos 90 dias, guardando perfis e datas.

    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;

    Saída de exemplo

    { "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. Pegue uma transcrição de referência

    Use o YouTube Subtitling para obter a transcrição de um vídeo e encontrar um ângulo real reutilizável.

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

    Saída de exemplo

    {
      "title": "Example Video Title",
      "contents": [
        { "text": "Subtitle text", "start": 42.3, "duration": 8.1 }
      ]
    }
  4. Monte o calendário de quatro semanas

    Crie uma tabela Markdown com data, formato, título de trabalho, ângulo e evidência.

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

    Saída de exemplo

    | 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. Salve no LiveDoc

    Salve o calendário e as fontes no LiveDoc para consultar no fechamento do mês.

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

    Saída de exemplo

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

O que está incluído

  • Mapa de temas do Chat
  • Perguntas datadas da audiência no X
  • Transcrição e ângulo de um vídeo de referência
  • Calendário de quatro semanas
  • LiveDoc com o plano e as fontes

O que não faz

  • Não prevê desempenho nem garante tráfego
  • Não lê sua analítica histórica
  • Não escreve posts completos nem publica
  • Sem vídeo de referência, o passo pode ser pulado
  • O calendário é sugestão, não promessa

Perguntas

De onde vêm as ideias do calendário?

Do mapa de temas do Chat, das perguntas reais da audiência no X e do ângulo de um vídeo de referência. Cada item mantém link ou data de evidência.

Ele sabe o que funcionou antes?

Não. Ele não lê sua analítica; o histórico precisa ser adicionado por você.

Ele também escreve os posts?

Não. Ele entrega o calendário e os ângulos; a escrita fica com você ou seu agent de escrita.

E se eu não tiver vídeo de referência?

Pule esse passo; temas e perguntas do X ainda sustentam o calendário.

Posso agendar as publicações automaticamente?

Não. Ele cria um arquivo de plano; o agendamento fica na sua ferramenta.

Quanto custa um planejamento?

Chat, busca no X e transcrição de vídeo são cobrados por uso; as tarifas atuais estão na página de preços, e o prompt pede aprovação antes de gastar.

Fluxos relacionados

Faça do seu jeito

A mesma receita, adaptada ao seu processo real.

Só duas semanas

Comprima quatro semanas em duas para times que estão começando a publicar.

Divida por canal

Crie colunas para newsletter, X e YouTube com o mesmo tema em formatos diferentes.

Inclua o lançamento do produto

Coloque datas de lançamento e eventos como linhas fixas e preencha o conteúdo ao redor.

As páginas de referência por trás desta receita e para onde ir depois.