0

Pitch: um gerador de ideias de app em que número sem fonte vira estimativa (e o que a conferência à mão pegou)

Construí, dentro do PostaGen, um gerador de ideias de app. Você escolhe o nicho, o público e o país; ele pesquisa na web e devolve de 5 a 8 ideias com nota, concorrentes e faixa de preço. Para a ideia escolhida, monta o playbook do MVP, um prompt para construir o protótipo no Claude ou no ChatGPT e um plano de lançamento de 4 semanas.

O que deu mais trabalho foi uma regra: nenhum número sem fonte aparece como fato. Abaixo, como montei isso com a API do Claude, quanto custa e onde a regra ainda falha.

O pipeline

  1. A pesquisa é uma chamada com a ferramenta de busca na web do servidor da Anthropic (web_search_20260209, até 8 buscas, user_location no país escolhido). O prompt pede fonte para todo fato e separa análise de fato. A resposta volta como texto com citações.
  2. A API não aceita citações junto com saída em JSON (structured outputs). Então uma segunda chamada, sem busca, transforma as notas em JSON com schema fixo. Ela recebe a lista numerada das URLs que a busca devolveu e só pode usar essas.
  3. O servidor valida sem modelo nenhum: toda URL do JSON precisa estar na lista que a busca retornou. Concorrente sem URL válida sai. Frase sem fonte válida ganha a marca "estimativa", e faixa de preço sem fonte também.
  4. Playbook e plano de lançamento são chamadas sob demanda, com JSON schema. O prompt de construção sai de um modelo fixo preenchido com o playbook, para ter tamanho previsível.

Um detalhe que precisa de tratamento: a busca às vezes para no meio com stop_reason: "pause_turn". É preciso reenviar o conteúdo do assistente e continuar; sem isso, a pesquisa termina pela metade.

Quanto custa

Três varreduras de 27/out, mercado Brasil:

NichoBuscasFontes lidasTempoCusto
Beleza e estética (B2B)874103 sUS$ 0,36
Pets (consumidor final)87693 sUS$ 0,32
Educação e cursos (criadores)85689 sUS$ 0,33

O playbook sai por uns US$ 0,02 e o plano por uns US$ 0,03. Quase todo o custo da varredura é token de entrada, porque os resultados da busca entram no contexto (a de beleza usou 76,8 mil tokens de entrada e 12,2 mil de saída), mais US$ 0,01 por busca.

O que a conferência à mão pegou

Abri os 56 links das três varreduras. 52 abriram na hora, 3 não responderam e 1 bloqueou acesso automatizado. Os números de mercado que conferi batiam: 236 mil empresas de beleza formalizadas em 2025 (Sebrae), R$ 75,4 bilhões no setor pet em 2024 (Abinpet), as taxas de Hotmart, Kiwify e Eduzz.

Três coisas deram errado:

  • Uma frase sobre o mercado pet dizia "cerca de 160 milhões de pets, entre eles 60 milhões de cães e 30 milhões de gatos, em cerca de 32 milhões de lares". A fonte confirma os pets, os cães (62,2 milhões) e os gatos (30,8 milhões). Os 32 milhões de lares não estão em nenhuma das duas fontes. A validação passou porque as duas URLs eram reais e tinham vindo da busca.
  • Em alguns casos, o "site" do concorrente era uma página de reclamação no Reclame Aqui, e não o site da empresa.
  • Um artigo de blog que compara taxas de plataformas entrou como concorrente.

Validar a URL mostra que a fonte existe e foi lida. Para saber se ela traz o número da frase, falta outra checagem. A que estou considerando: pedir ao modelo o trecho exato que sustenta cada número e conferir no código se o trecho está na página.

"Abrir no Claude" usa https://claude.ai/new?q= e "Enviar ao ChatGPT" usa https://chatgpt.com/?q=, com o prompt codificado na URL. O que vi testando:

  • O ChatGPT abre e já envia o prompt, mesmo sem login. Um prompt de 6.444 caracteres chegou inteiro.
  • No Claude sem login, a página manda para o login. O prompt curto sobrevive ao redirecionamento; o longo se perde. Logado, não consegui testar, então a página avisa para entrar antes de clicar.

Por isso os botões só aparecem até 6.000 caracteres, e o "Copiar" fica sempre.

Pode testar

A página mostra as três varreduras com as fontes, o ranking, o prompt e as semanas de lançamento, sem cadastro, e os botões do prompt funcionam ali: postagen.ia.br/gerador-de-apps

Para fazer a sua varredura precisa de conta. O plano grátis dá 1 varredura, 2 playbooks e 1 plano de lançamento por mês. Procuro 10 pessoas que querem construir um app ou SaaS para usar e me dizer onde a pesquisa errou. Se achar um número que a fonte não traz, comenta aqui.

Stack: Next.js 16 na Vercel, Supabase com RLS (o dono só lê, a escrita é só pelo servidor) e a API do Claude com a busca na web.

Carregando publicação patrocinada...
2

Pro caso dos 32 milhões de lares dá pra aproveitar uma coisa que a primeira chamada já devolve. Cada citação da busca (web_search_result_location) vem com um cited_text, que é o trecho da página que sustentou a frase, com até 150 caracteres. Se a segunda chamada receber as frases junto com esses trechos, e não só a lista de URLs, o servidor consegue conferir sem modelo se cada número da frase aparece no trecho citado. O que não aparecer vira estimativa, do mesmo jeito que você já faz com URL inválida.

Como o trecho é curto, às vezes o número vai ficar de fora e marcar estimativa à toa, mas pra essa regra acho melhor errar pra esse lado.

E o Reclame Aqui aparecendo como site de concorrente dá pra cortar na origem com o blocked_domains da ferramenta de busca, se ele não for fonte de mais nada na pesquisa.

1

Valeu, as duas são boas e fui olhar o código.

O cited_text resolve exatamente o caso dos 32 milhões de lares. Hoje a primeira chamada já percorre as citações, mas só guarda a URL e joga o trecho fora. Guardando o trecho, dá para conferir no servidor se o número da frase aparece nele, sem modelo. Concordo com errar para o lado da estimativa: um número bom marcado como estimativa custa menos do que um número inventado com cara de fato.

O blocked_domains eu não posso usar inteiro, porque o Reclame Aqui é de onde saem as reclamações que justificam a ideia. Vou fazer a regra na validação: URL do Reclame Aqui vale como fonte de reclamação, mas não como site de concorrente.

Quando subir as duas, rodo as três varreduras de novo e conto aqui quantos números caíram para estimativa.

1

faz sentido, bloquear o domínio inteiro ia tirar justamente a fonte das reclamações.

uma coisa pra quando subir a conferência: o número quase nunca vem escrito igual na frase e no trecho. "32 milhões", "32 mi" e "32.000.000" são o mesmo valor, então vale normalizar os dois lados antes de comparar, senão muito número certo cai pra estimativa à toa.