Felo API PlatformFelo API Platform

Pesquisa

Pesquise uma conta-alvo antes do primeiro contato

Leia o site da empresa, a cobertura recente e o que ela publica, depois escreva um briefing da conta com movimentos recentes, prioridades prováveis, assuntos para a conversa e incógnitas honestas.

Tempo20 minutosNívelInicianteAtualizado2026-10-30
Para quemFundadores e operadoresExecutivos de contaLíderes de vendas

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.

Monte um briefing de conta sobre [nome ou domínio da empresa] antes de [abordagem / call de descoberta / renovação].

Nossa oferta: [produto ou serviço]. Comprador que nos interessa: [papel]. Janela de movimentos recentes: [últimos 90 dias / últimos 12 meses].

Leia o site deles, a cobertura pública e os posts públicos. Produza um briefing em Markdown com:
1. O que eles fazem, em um parágrafo, com fontes.
2. Movimentos recentes: lançamentos, financiamento, contratação, liderança, parcerias — com datas e links.
3. Prioridades prováveis do trimestre, claramente marcadas como inferência.
4. Assuntos para abrir conversa: três observações específicas, cada uma com sua fonte.
5. Desconhecidos: o que você não conseguiu verificar em fontes públicas.
6. Uma lista completa de fontes.

Regras:
- Nunca invente nome de contato, e-mail, telefone, headcount, receita ou valor de financiamento.
- Apenas fontes públicas: sem dados privados, sem páginas restritas a login, sem diretórios raspados.
- Não grave em CRM nem em qualquer outro sistema. O briefing é um arquivo que uma pessoa revisa.
- Marque toda inferência como inferência; mantenha fatos com links e datas.
- Não afirme a intenção do comprador como fato.
- Antes de gastar créditos, mostre as chamadas de API planejadas e aguarde minha aprovação.
- Não envie, agende, publique nem mande mensagem para ninguém.
- Grave o resultado em ./account-brief.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 briefing de conta (trecho)

Briefing de conta — [empresa], verificado em 2026-10-30

O que fazem

Fabrica robôs de picking para armazéns de operadores logísticos médios. Fonte: https://example.com/about (verificado em 2026-10-30).

Movimentos recentes

  • Abriu um segundo site de montagem — https://example.com/news/expansion (2026-10-24)
  • Contratando time de “operações de implantação” — https://example.com/careers (verificado em 2026-10-30)
  • Post da conta sobre integração de parceiro — @example_company (2026-10-21)

Prioridades prováveis (inferência)

Implantações mais rápidas em mais sites. Inferência do post de expansão e do novo cargo de implantação — não é plano declarado nem confirmado publicamente.

Assuntos para abrir conversa

  • O segundo site é novo: perguntar como o playbook de implantação muda quando os sites diferem. Fonte: https://example.com/news/expansion
  • Um cargo dedicado de operações de implantação sugere passagem entre vendas e instalação. Fonte: https://example.com/careers

Desconhecidos

  • Quem lidera operações de implantação hoje: não disponível em fontes públicas.
  • Tamanho da frota e valores de contrato: não disponível.

Fontes

  • https://example.com/about
  • https://example.com/news/expansion
  • https://example.com/careers

As chamadas exatas

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

Mostrar as chamadas reais da API
  1. Obtenha a visão geral

    Pergunte ao Chat o que a empresa faz e quais mudanças públicas recentes aconteceram, guardando as fontes citadas.

    account.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 company = "Example Robotics";
    const domain = "example.com";
    const buyerRole = "Head of Operations";
    
    const overview = await felo<ChatData>("/v2/chat", {
      query: `What does ${company} do, who buys from it, and what changed in the last 90 days?`,
    });
    
    const seedSources = overview.data.resources.slice(0, 5);

    Saída de exemplo

    {
      "answer": "The company builds …",
      "sources": [
        { "link": "https://example.com/about", "title": "…", "snippet": "…" }
      ]
    }
  2. Leia site, preços e vagas

    Com Web Fetch, leia About, preços e vagas para entender produto, clientes e cargos abertos.

    account.ts
    type ExtractData = { data: { content: string } };
    
    const companyPages = [
      { url: `https://${domain}/about`, title: "About" },
      { url: `https://${domain}/pricing`, title: "Pricing" },
      { url: `https://${domain}/careers`, title: "Careers" },
    ];
    
    const pages = await Promise.all(
      companyPages.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 };
      }),
    );

    Saída de exemplo

    {
      "url": "https://example.com/careers",
      "checkedAt": "2026-10-30",
      "content": "# Careers\n\nOpen roles: deployment operations…"
    }
  3. Veja sinais públicos dos últimos 90 dias

    Pesquise no X o nome da empresa e do produto, guardando posts públicos, perfis e datas dos últimos 90 dias.

    account.ts
    type XData = {
      data: {
        tweets: {
          content: string;
          author: { username: string };
          created_at: string;
          metrics: { retweet_count: number; favorite_count: number };
        }[];
      };
    };
    
    const since = Math.floor((Date.now() - 90 * 24 * 60 * 60 * 1000) / 1000);
    
    const posts = await felo<XData>("/v2/x/tweet/search", {
      query: `"${company}" (hiring OR launch OR partnership OR expansion)`,
      limit: 20,
      since_time: since,
    });
    
    const recent = posts.data.tweets.slice(0, 5);

    Saída de exemplo

    { "data": { "tweets": [
      {
        "content": "We just opened our second assembly site",
        "author": { "username": "example_company" },
        "created_at": "2026-10-21T14:02:00Z",
        "metrics": { "retweet_count": 4, "favorite_count": 31 }
      }
    ] } }
  4. Escreva o briefing da conta

    Descreva visão da empresa, movimentos recentes, prioridades prováveis, assuntos para a conversa, incógnitas e fontes.

    account.ts
    const today = new Date().toISOString().slice(0, 10);
    
    const accountBrief = [
      `# Account brief — ${company}`,
      `Checked ${today}. Buyer role: ${buyerRole}.`,
      "",
      "## What they do",
      overview.data.answer,
      "",
      "## Recent moves",
      ...recent.map(
        (post) => `- ${post.created_at.slice(0, 10)}: ${post.content} (from @${post.author.username})`,
      ),
      ...pages.map((page) => `- ${page.title} page captured ${page.checkedAt}: ${page.url}`),
      "",
      "## Likely priorities (inference)",
      "<!-- One or two sentences from the moves above. Mark them as inference, never a stated plan. Delete this comment when filled. -->",
      "",
      "## Conversation starters",
      ...recent.slice(0, 3).map(
        (post) => `- Ask about: ${post.content.slice(0, 100)} (dated ${post.created_at.slice(0, 10)})`,
      ),
      "",
      "## Unknowns",
      "- Who owns the workflow we sell into: Not available from public sources.",
      "- Contract values and team size: Not available.",
      "",
      "## Sources",
      ...pages.map((page) => `- ${page.title}: ${page.url}`),
      ...seedSources.map((source) => `- ${source.title}: ${source.link}`),
    ].join("\n");
    
    console.log(accountBrief);

    Saída de exemplo

    # Account brief — Example Robotics
  5. Salve no LiveDoc

    Salve o briefing e as fontes no LiveDoc para reutilizar no próximo contato.

    account.ts
    type LiveDocData = { data: { short_id: string } };
    
    const accountDoc = await felo<LiveDocData>("/v2/livedocs", {
      name: `Account: ${company}`,
      description: `Briefs and sources checked ${today}`,
    });
    
    await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/urls`, {
      urls: [
        ...pages.map((page) => ({ url: page.url, title: page.title })),
        ...seedSources.map((source) => ({ url: source.link, title: source.title })),
      ],
    });
    
    await felo(`/v2/livedocs/${accountDoc.data.short_id}/resources/doc`, {
      title: `Account brief ${today}`,
      content: accountBrief,
    });
    
    console.log(accountDoc.data.short_id); // the next call reuses this LiveDoc

    Saída de exemplo

    { "short_id": "PvyKouzJirXjFdst4uKRK3" }

O que está incluído

  • Visão geral da empresa com fontes do Chat
  • Extração de site, preços e vagas em Markdown
  • Posts públicos datados no X
  • Briefing de conta estruturado
  • LiveDoc com as evidências

O que não faz

  • Não fornece e-mails, telefones ou dados pessoais de contato
  • Não lê dados privados nem páginas só para login
  • Não grava no CRM nem envia mensagens
  • Número de funcionários, receita e investimento só com fonte explícita
  • Prioridades e intenções são marcadas como inferência

Perguntas

Ele fornece e-mails de contato?

Não. O fluxo só faz pesquisa pública e não fornece e-mail, telefone ou dados pessoais.

De onde vêm os dados?

O Chat devolve uma visão com fontes, o Web Fetch lê site, preços e vagas, e o X Search adiciona posts públicos. Cada item mantém link e data.

Posso pesquisar empresas fora de tecnologia?

Sim. Onde há pouca informação pública, o briefing marca as incógnitas em vez de inventar.

Ele grava no CRM?

Não. Ele gera apenas um briefing em Markdown; a integração com CRM é sua.

As prioridades são fatos?

Não. O briefing marca “prioridades prováveis” como inferência e mostra as bases; a decisão final é do vendedor.

Quanto custa uma execução?

Chat, extração e busca no X 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ó um segmento

Restrinja a um setor ou região para o briefing ficar mais específico.

Adicione o último anúncio

Inclua a página do anúncio como fonte extra para os assuntos ficarem atuais.

Junto com a análise de concorrentes

Compare as prioridades do briefing com o posicionamento da análise de concorrentes para achar um ângulo de diferenciação.

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