Radar de Empresas
Orquestrador de inteligência competitiva. Recebe nomes de empresas, realiza pesquisa paralela em mais de 8 plataformas, pontua cada uma em uma escala de calor de 0 a 100 e produz um relatório radar estruturado com briefings de IA.
Esta é uma skill de orquestração. Ela delega a coleta de dados a micro-skills existentes do opendirectory e coordena sua saída — não as substitui.
Arquitetura
ENTRADA: Nome(s) / URL(s) de empresa
|
[1. Fase de Perfil] — Pesquisa web para construir perfis de empresa
|
[2. Coleta de Sinais] — Pesquisa paralela em plataformas (8 canais)
/ | | | | | \ \
GH TW RD HN PH YC WEB MIDIA
|
[3. Motor de Pontuação] — Pontuação de calor 4 dimensões (0-100)
|
[4. Síntese de IA] — Geração de briefing executivo
|
SAÍDA: Relatório Radar + Análises Detalhadas por Empresa
Canais de Sinal e Mapeamentos do Opendirectory
| Canal | Skill do Opendirectory | O que Detecta |
|---|---|---|
| GitHub | gh-issue-to-demand-signal + pesquisa web | Estrelas, forks, commits, releases, velocidade de lançamento |
| Twitter/X | twitter-GTM-find-skill | Tweets, menções, engajamento, atividade do fundador |
reddit-icp-monitor, reddit-post-engine | Sentimento da comunidade, pontos de dor, buzz | |
| Hacker News | hackernews-intel | Menções em histórias, pontos, sinais de primeira página |
| Product Hunt | producthunt-launch-kit | Lançamentos, votos, atividade de criadores |
| YC Jobs | yc-intent-radar-skill / yc-jobs-scraper | Listagens de emprego, departamentos contratantes, sinais de crescimento |
| Web / Imprensa | Pesquisa Tavily + competitor-pr-finder | Notícias, anúncios de produtos, financiamento |
| Preços | pricing-finder | Mudanças de preço, atualizações de tier, estrutura de planos |
| Posição de Mercado | map-your-market | ICP, cenário competitivo, lacunas de mensagem |
Erros Comuns
| O agente vai querer... | Por que isso é errado |
|---|---|
| Executar skills sequencialmente | Todos os 8 canais de sinal são independentes. Devem ser executados em paralelo. |
| Alucinar contagens de estrelas do GitHub ou números de contratação | Cada dado deve ser rastreável a um resultado de pesquisa específico ou saída de skill. Sem "aproximadamente 500 estrelas". |
| Pular o cálculo da pontuação de calor | O relatório radar requer saída pontuada, não apenas um despejo de dados brutos. A pontuação de calor é o diferencial central. |
| Gerar relatórios incompletos porque uma skill falhou | Um canal com falha não bloqueia o relatório completo. Pontue o que você tem, anote lacunas. |
| Usar conhecimento de treinamento de IA para descrições de empresas | Toda descrição de empresa deve vir de pesquisa web ao vivo, não da memória. |
| Esquecer de pontuar níveis de atividade a partir das pontuações de calor | A pontuação de calor tem limites explícitos: Alto (60+), Médio (30-59), Baixo (1-29), Inativo (0). |
Passo 1: Verificação de Configuração
Verifique se as chaves de API necessárias estão acessíveis para os canais que a plataforma do usuário suporta:
if [ -z "$TAVILY_API_KEY" ]; then echo "TAVILY_API_KEY: NÃO DEFINIDA — obrigatória para enriquecimento web"; else echo "TAVILY_API_KEY: configurada"; fi
if [ -z "$GITHUB_TOKEN" ]; then echo "GITHUB_TOKEN: não definido — API do GitHub limitada a 60 req/h"; else echo "GITHUB_TOKEN: configurado"; fi
As skills específicas sendo orquestradas têm seus próprios requisitos de chave de API. Verifique o SKILL.md de cada skill para detalhes. Obrigatório para operação completa:
TAVILY_API_KEY— pesquisa web e enriquecimento de empresa (obtenha em app.tavily.com)GITHUB_TOKEN— acesso à API do GitHub (obtenha em github.com/settings/tokens)
Se TAVILY_API_KEY estiver faltando: pare e informe o usuário. Sem ela, a criação de perfil de empresa e o enriquecimento web não podem operar.
Passo 2: Analisar Entrada
Colete da conversa:
companies: lista de nomes/URLs de empresas para rastrear (obrigatório, mínimo 1, máximo 10 por execução)output_preference: "relatório completo" (padrão), "apenas alertas", "apenas briefing", ou "apenas pontuação de calor" (tabela de classificação + pontuações apenas, sem análises detalhadas)timeframe: "tempo real" (padrão) ou "última semana" ou "último mês"
Se o usuário fornecer um único nome de empresa: ainda execute o pipeline completo do radar. Radars de empresa única são válidos — obtenha o perfil completo.
Se mais de 10 empresas: informe ao usuário "Máximo de 10 empresas por varredura de radar. Executarei as primeiras 10. Informe se quiser substituir alguma."
Pergunte se alguma empresa tem handles conhecidos específicos:
- Nome da organização no GitHub (se diferente do nome da empresa)
- Handle do Twitter
- Lote YC (se for empresa YC)
- Slug do Product Hunt
Isso economiza tempo de pesquisa. Se desconhecido, a fase de perfil os descobrirá.
Passo 3: Fase de Perfil da Empresa
Para cada empresa, construa um perfil básico antes de executar a pesquisa nas plataformas.
Passo 3a: Enriquecimento Web Inicial
Para cada empresa, execute uma pesquisa Tavily para descobrir:
[nome da empresa] site oficial twitter github linkedin producthunt yc fundadores
Extraia dos resultados da pesquisa:
- Domínio / URL do site
- Descrição (2-3 frases)
- Handle do Twitter (a partir de URLs twitter.com/X.com nos resultados)
- Organização no GitHub (a partir de URLs github.com nos resultados)
- URL do LinkedIn
- Slug do Product Hunt
- Lote YC e URL (se aplicável)
- Nomes dos fundadores e handles do Twitter
Formato de saída: Para cada empresa, produza um objeto de perfil seguindo references/company-profile-format.md.
Passo 3b: Confirmar com o Usuário
Exiba os perfis descobertos e peça ao usuário para confirmar ou corrigir antes de prosseguir.
## Perfis de Empresa Descobertos
| Empresa | Domínio | Twitter | GitHub | Lote YC | Fundadores |
|---|---|---|---|---|---|
| ... | ... | ... | ... | ... | ... |
Corrija quaisquer handles incorretos antes de prosseguir para a coleta de sinais?
Aguarde a confirmação do usuário. Não pule esta etapa — handles errados produzem sinais errados.
Passo 4: Coleta Paralela de Sinais
Agora execute a pesquisa em todas as plataformas em paralelo para todas as empresas confirmadas.
Mapa de Coleta de Sinais
Para cada plataforma, use o método apropriado. Execute TODAS as plataformas simultaneamente — não as sequencie.
Sinal do GitHub
Use pesquisa web (Tavily) para encontrar a organização no GitHub, depois pesquise:
github.com/[org] estrelas forks commits
Extraia:
- Total de estrelas em todos os repositórios
- Total de forks
- Commits recentes (últimos 7 dias)
- Releases recentes (últimos 30 dias)
- Data do último push
- Linguagem principal
- Contagem de issues abertos
Ou chame a skill gh-issue-to-demand-signal se quiser uma análise mais profunda de sinal de demanda a partir de Issues do GitHub.
Sinal do Twitter/X
Use a skill twitter-GTM-find-skill ou pesquisa Tavily:
twitter.com/[handle] site:twitter.com [empresa] startup
Extraia:
- Contagem de tweets recentes (últimas 24h)
- Volume de menções
- Atividade de tweets do fundador
- Principais tópicos/hashtags
Sinal do Reddit
Use a abordagem reddit-icp-monitor ou pesquisa Tavily:
site:reddit.com [nome da empresa] [categoria do produto]
Extraia:
- Contagem de menções
- Pontuação de posts (upvotes)
- Sentimento (positivo/negativo/misto)
- Principais reclamações ou elogios
- Subreddits relevantes
Sinal do Hacker News
Use a abordagem hackernews-intel ou a pesquisa da API HN Algolia:
site:news.ycombinator.com [nome da empresa]
Extraia:
- Contagem de histórias
- Total de pontos
- Histórias na primeira página
- Principais tópicos
Sinal do Product Hunt
Use a abordagem producthunt-launch-kit ou pesquisa Tavily:
site:producthunt.com [nome da empresa] produtos
Extraia:
- Lançamentos recentes
- Contagem de upvotes
- Comentários/sentimento
- Frequência de lançamentos
Sinal de Empregos YC
Use a abordagem yc-intent-radar-skill / yc-jobs-scraper ou pesquisa Tavily:
site:workatastartup.com [nome da empresa] OR site:ycombinator.com/companies [nome da empresa]
Extraia:
- Contagem de empregos abertos
- Títulos/funções dos empregos
- Distribuição por departamento (Engenharia, Vendas, Marketing, etc.)
- Localização/status remoto
Sinal Web / Imprensa
Use pesquisa Tavily:
[nome da empresa] financiamento anúncio lançamento de produto notícias 2026
Extraia:
- Rodadas de financiamento recentes
- Lançamentos de produtos
- Contratações importantes anunciadas na imprensa
- Anúncios de parcerias
Sinal de Preços (opcional, execute se o usuário quiser inteligência de preços)
Use a skill pricing-finder ou pesquisa Tavily:
[nome da empresa] planos de preços 2026
Extraia:
- Tiers de preço
- Mudanças na estrutura de planos
- Tier gratuito vs pago
Tratamento de Falhas
- Se qualquer canal retornar 0 resultados, anote no relatório como "Nenhum sinal detectado"
- Se alguma skill não estiver disponível (chave de API faltando), anote como "Canal indisponível"
- Nunca invente dados a partir da memória. Se não conseguir encontrar, marque como não encontrado.
- Um canal vazio não invalida o relatório completo.
Passo 5: Cálculo da Pontuação de Calor
Use o script scripts/heat-score-calc.mjs incluído para pontuar cada empresa. Este script implementa o algoritmo de pontuação de 4 dimensões de references/heat-score-methodology.md.
Como Executar
Colete todos os dados de sinal em um arquivo JSON correspondente a este schema:
{
"companies": [{
"name": "NomeDaEmpresa",
"signals": {
"stars": null, "forks": null, "ph_votes": null,
"commits_week": null, "releases_month": null,
"active_shipping": false, "last_activity_days": null,
"tweets_24h": null, "mentions": null,
"reddit_posts": null, "reddit_score": null,
"hn_stories": null, "hn_points": null,
"youtube_videos": null,
"jobs": null, "dept_count": null,
"sentiment": null, "traction": null
}
}]
}
Preencha cada campo com o valor descoberto. Deixe null para qualquer coisa não encontrada — o script trata null como 0.
Depois execute:
node scripts/heat-score-calc.mjs --file signals.json
Ou canalize:
echo '{"companies":[...]}' | node scripts/heat-score-calc.mjs
O Que Retorna
O script gera JSON com resultados por empresa:
{
"generated_at": "2026-05-29T...",
"company_count": 3,
"companies": [
{
"name": "Vercel",
"heat_score": 89,
"level": "High",
"dimensions": {
"authority": { "score": 25, "max": 25, "breakdown": {...} },
"shipping": { "score": 25, "max": 25, "breakdown": {...} },
"social": { "score": 17, "max": 25, "breakdown": {...} },
"growth": { "score": 22, "max": 25, "breakdown": {...} }
},
"alerts": [...]
}
]
}
Cada empresa inclui:
heat_score— total 0-100level— Alto (60+), Médio (30-59), Baixo (1-29), Inativo (0)dimensions— pontuação por dimensão com máximo e detalhamento itemizadoalerts— sinais notáveis detectados automaticamente
Regras de Pontuação (implementadas no script)
Estas são as fórmulas que o script aplica. Estão documentadas aqui para transparência:
| Dimensão | Sinais | Máx |
|---|---|---|
| Autoridade | Estrelas GitHub (min(15, estrelas/1000*3)), forks (min(5, forks/200*2)), votos PH (min(5, votos/100*5)) | 25 |
| Lançamento | Commits/semana (min(10, commits*2)), releases/mês (5 se >0), flag ativo (5), atualidade (5 se <7d, 3 se <30d) | 25 |
| Social | Tweets (5), menções (5), posts Reddit (3) + pontuação (2), histórias HN (4) + pontos (3), YouTube (3) | 25 |
| Crescimento | Empregos (min(10, empregos*3)), diversidade de dept (min(5, dept_count*2)), sentimento IA (5), tração IA (5) | 25 |
- Cada dimensão atinge o máximo em 25. Sinais ausentes pontuam 0. Nunca estime dados.
- Metodologia completa e casos de borda em
references/heat-score-methodology.md.
Passo 6: Briefing Executivo de IA
Para cada empresa com pontuação acima de 0 (ou seja, qualquer sinal detectado), gere um briefing executivo de IA usando os dados coletados.
O briefing deve cobrir:
**Briefing Executivo: [Nome da Empresa]**
**Contexto:** 1-2 frases sobre o que eles fazem e sua posição no mercado
**Pontuação de Calor:** [pontuação]/100 — [Nível de Atividade]
**Atividade Recente:**
- Produto: principais sinais de produto ou lançamento encontrados
- Contratação: status de contratação, departamentos, funções notáveis
- Comunidade: resumo de sentimento do Reddit/HN/Twitter
**Avaliação de Ameaça:**
- Nível de ameaça competitiva: [Baixo / Médio / Alto]
- Justificativa: 2-3 frases sobre o porquê
**Sinal Chave (principal conclusão):**
Uma frase sobre a coisa mais importante que está acontecendo com esta empresa.
**Confiança dos Dados:**
Quais canais tinham dados bons vs. o que estava faltando.
Regras:
- Toda afirmação no briefing deve ser rastreável aos dados coletados
- A seção "Confiança dos Dados" é obrigatória — seja honesto sobre lacunas
- A avaliação de ameaça deve comparar com as outras empresas no radar, não em um vácuo
- Mantenha cada briefing abaixo de 250 palavras
Passo 7: Montar e Gerar o Relatório Radar
Compile tudo no formato estruturado do relatório radar. Use references/radar-report-template.md para a estrutura exata de saída.
O relatório deve incluir:
- Resumo Executivo — Principais conclusões com empresas classificadas
- Tabela de Classificação de Pontuação de Calor — Tabela classificada de todas as empresas
- Análises Detalhadas por Empresa — Cada empresa com perfil completo, dados de sinal, detalhamento de pontuação e briefing de IA
- Alertas de Sinal — Eventos notáveis detectados (surtos de contratação, momentos virais, lançamentos)
- Notas de Qualidade dos Dados — Quais canais tinham dados, quais estavam faltando
Saída em formato markdown, pronto para copiar para Slack, Notion, Google Docs ou e-mail.
Passo 8: Opcional — Agendar Radar Recorrente
Se o usuário quiser monitoramento contínuo:
- Salve a lista de empresas e a configuração da API
- Configure um cron (GitHub Actions ou cron do sistema)
- Cada execução produz um relatório atualizado
- Configure alertas para mudanças de pontuação (ex.: "alertar se qualquer empresa subir 20+ pontos")
Esta skill é um orquestrador — cada execução executa o pipeline completo novamente.