Prospector — busca de pessoas
Encontra pessoas, empresas e contatos públicos (LinkedIn, Google Maps, sites de empresas) com o padrão assíncrono de jobs: inicia a busca, avisa o usuário e consulta o resultado.
Atualizado em 01 de set. de 2026
Prospecção é o caso de uso onde o agente substitui horas de navegação: "gerentes de RH em Curitiba", "clínicas de fisioterapia em Campinas com telefone", "ache o contato da acme.com".
As buscas rodam sobre as ferramentas de dados da HINOW (/v1/tools/*) — LinkedIn, leads B2B estilo Apollo, Google Maps e varredura de sites — que são assíncronas por natureza: a rota responde na hora com um job_id e a busca continua no servidor. É o mesmo padrão do vídeo, e o agente conversa naturalmente durante a espera.
Custo por busca
Cada ferramenta tem um teto (ex.: varredura de site ≤ $0,80; perfis do LinkedIn ≤ $2) e a cobrança é pelo uso real — uma varredura típica sai por ~$0,04. O prompt manda confirmar filtros antes de buscas amplas e limitar resultados a 10.
Como importar
Na plataforma: Agents → Importar, escolha o arquivo baixado. Ele entra como um rascunho novo (nada existente é alterado), com ids de observabilidade renovados. Depois preencha o que é do seu ambiente — credenciais, URLs e bases de conhecimento — e publique.
{
"format": "hinow.agent",
"version": 1,
"exported_at": "2026-09-01T00:00:00Z",
"credentials_included": false,
"agent": {
"name": "Prospector",
"description": "Encontra pessoas, empresas e contatos públicos (LinkedIn, Google Maps, sites) com o padrão assíncrono de jobs: inicia a busca, avisa o usuário e consulta o resultado.",
"avatar": null,
"model": null,
"system_prompt": null,
"config": {},
"tools": null,
"workflow": {
"nodes": [
{
"id": "start",
"type": "start",
"position": {
"x": 300,
"y": 0
},
"data": {
"label": "Início",
"variables": []
}
},
{
"id": "agent-1",
"type": "agent",
"position": {
"x": 285,
"y": 160
},
"data": {
"name": "prospector",
"model": "hinow/himax",
"system_prompt": "Você é um assistente de prospecção B2B. Encontra pessoas, empresas e contatos públicos na web para o time comercial.\n\nCOMO AS BUSCAS FUNCIONAM (leia com atenção)\nToda busca é ASSÍNCRONA, em duas etapas:\n1. Chame a rota de busca. Ela responde na hora com um job_id — a busca continua rodando no servidor.\n2. AVISE o usuário, em uma frase, o que você está buscando (\"Buscando gerentes de RH em Curitiba, um instante...\").\n3. Chame resultado_busca com o job_id. Se status for \"running\" ou \"queued\", chame de novo — até 4 vezes. Se ainda não terminou, ESCREVA O CÓDIGO DO JOB NA SUA MENSAGEM (ex.: `busca: 0b1b638b-…`, o id completo) e diga que o usuário pode perguntar \"e aí?\" em instantes. Só o que você escreve fica na conversa — na próxima mensagem, retome pelo código que VOCÊ anotou, nunca invente um.\n4. Quando status=\"succeeded\", apresente o resultado.\n\nCOMO APRESENTAR\n- Tabela com as colunas que importam (nome, cargo, empresa, local, link).\n- Diga quantos resultados vieram e ofereça refinar.\n- NUNCA invente pessoa, cargo, e-mail ou telefone: só o que a busca devolveu.\n\nREGRAS\n- Antes de buscas amplas, confirme os filtros com o usuário (cargo, local, quantidade). Busca custa dinheiro.\n- Peça no máximo o necessário: maxItems=10 salvo pedido diferente.\n- Dados são públicos e para prospecção legítima. Recuse pedidos de vigilância de indivíduos, listas para spam em massa ou dados de menores. Em caso de dúvida sobre a finalidade, pergunte.\n- Não acumule jobs: termine (ou desista de) uma busca antes de abrir outra.",
"config": {
"temperature": 0.3,
"max_tool_loops": 14
}
}
},
{
"id": "hook-1",
"type": "webhook",
"position": {
"x": 575,
"y": 160
},
"data": {
"label": "Busca na web",
"config": {
"name": "HINOW Tools",
"baseUrl": "https://api.hinow.ai/v1/tools",
"timeout": 30000,
"auth": {
"type": "bearer",
"token": "COLE_SUA_API_KEY_hi"
},
"retryOnError": true,
"maxRetries": 2,
"routes": [
{
"id": "r1",
"name": "buscar_pessoas",
"method": "POST",
"path": "/linkedin-profile",
"description": "Busca pessoas no LinkedIn por texto livre e filtros. Responde com um job_id.",
"whenToUse": "Para encontrar profissionais: 'gerentes de RH em Curitiba', 'CTOs de fintech'. É o começo do fluxo assíncrono — depois chame resultado_busca.",
"responseDescription": "202 com data.job_id e data.poll_url. A busca continua no servidor.",
"parameters": [
{
"name": "searchQuery",
"type": "string",
"required": true,
"description": "Busca em texto livre: nomes, cargos, palavras-chave",
"howToObtain": "Monte a partir do pedido do usuário",
"example": "gerente de recursos humanos"
},
{
"name": "locations",
"type": "array",
"required": false,
"description": "Locais das pessoas (cidades, estados, países)",
"example": "[\"Curitiba, Brazil\"]"
},
{
"name": "currentJobTitles",
"type": "array",
"required": false,
"description": "Cargos atuais para filtrar",
"example": "[\"HR Manager\"]"
},
{
"name": "maxItems",
"type": "number",
"required": false,
"description": "Quantos perfis (padrão 25, máx 100). Use 10 salvo pedido diferente",
"example": "10"
},
{
"name": "mode",
"type": "string",
"required": false,
"description": "basic (nome/headline) ou full (perfil completo). Use basic para listas",
"example": "basic"
}
],
"enabled": true
},
{
"id": "r2",
"name": "buscar_leads",
"method": "POST",
"path": "/leads-finder",
"description": "Lista de leads B2B estilo Apollo: pessoas por cargo/local + dados da empresa.",
"whenToUse": "SÓ quando o usuário pedir explicitamente uma lista de leads/prospecção B2B, e DEPOIS de confirmar cargo, local e quantidade — é a busca mais cara.",
"responseDescription": "202 com data.job_id. Depois, resultado_busca.",
"parameters": [
{
"name": "contact_job_titles",
"type": "array",
"required": false,
"description": "Cargos desejados",
"example": "[\"Head of Marketing\"]"
},
{
"name": "contact_location",
"type": "array",
"required": false,
"description": "Locais das pessoas",
"example": "[\"Brazil\"]"
},
{
"name": "company_industry",
"type": "array",
"required": false,
"description": "Setores da empresa",
"example": "[\"software\"]"
},
{
"name": "max_result",
"type": "number",
"required": false,
"description": "Quantos leads (padrão 25). Confirme com o usuário",
"example": "10"
}
],
"enabled": true
},
{
"id": "r3",
"name": "buscar_empresas_maps",
"method": "POST",
"path": "/google-maps",
"description": "Empresas no Google Maps: telefone, endereço, site, categoria e avaliações.",
"whenToUse": "Para achar negócios locais e telefones confiáveis: 'clínicas de fisioterapia em Campinas'. Fluxo assíncrono — depois chame resultado_busca.",
"responseDescription": "202 com data.job_id.",
"parameters": [
{
"name": "searchStringsArray",
"type": "array",
"required": true,
"description": "Termos de busca (nicho e/ou nome)",
"example": "[\"clínica de fisioterapia\"]"
},
{
"name": "locationQuery",
"type": "string",
"required": false,
"description": "Onde buscar (cidade, região)",
"example": "Campinas, SP"
},
{
"name": "maxCrawledPlacesPerSearch",
"type": "number",
"required": false,
"description": "Máximo de lugares por termo (padrão 5)",
"example": "5"
}
],
"enabled": true
},
{
"id": "r4",
"name": "buscar_contatos_site",
"method": "POST",
"path": "/website-contacts",
"description": "Varre o site de uma empresa atrás de e-mails, telefones e redes sociais públicas.",
"whenToUse": "Quando já se sabe a empresa e falta o contato: 'ache o contato da acme.com'. Fluxo assíncrono — depois chame resultado_busca.",
"responseDescription": "202 com data.job_id.",
"parameters": [
{
"name": "websites",
"type": "array",
"required": true,
"description": "URLs dos sites a varrer",
"example": "[\"https://www.acme.com\"]"
}
],
"enabled": true
},
{
"id": "r5",
"name": "resultado_busca",
"method": "GET",
"path": "/jobs/{{job_id}}",
"description": "Consulta o andamento e o resultado de uma busca iniciada.",
"whenToUse": "Logo depois de qualquer rota de busca, com o job_id devolvido. Repita enquanto status for queued/running (até 4 vezes por turno).",
"responseDescription": "data.status: queued | running | succeeded | failed. Quando succeeded, data.result traz os itens e data.cost o custo real.",
"parameters": [
{
"name": "job_id",
"type": "string",
"required": true,
"description": "Id do job",
"howToObtain": "Veio da resposta da rota de busca",
"example": "0b1b638b-..."
}
],
"enabled": true
}
]
}
}
},
{
"id": "end-1",
"type": "end",
"position": {
"x": 305,
"y": 330
},
"data": {
"label": "Fim",
"status": "success"
}
}
],
"edges": [
{
"id": "e1",
"source": "start",
"target": "agent-1"
},
{
"id": "e2",
"source": "hook-1",
"target": "agent-1",
"sourceHandle": "tool",
"targetHandle": "slot-1"
},
{
"id": "e3",
"source": "agent-1",
"target": "end-1"
}
]
}
}
}| Rota | Ferramenta | Para quê |
|---|---|---|
buscar_pessoas | /v1/tools/linkedin-profile | Profissionais por texto livre + filtros (cargo, local). mode: basic para listas enxutas. |
buscar_leads | /v1/tools/leads-finder | Lista B2B estilo Apollo — a mais cara; o prompt exige confirmação explícita antes. |
buscar_empresas_maps | /v1/tools/google-maps | Negócios locais com telefone, endereço e avaliações. |
buscar_contatos_site | /v1/tools/website-contacts | Varre o site de uma empresa atrás de e-mails, telefones e redes. |
resultado_busca | GET /v1/tools/jobs/{{job_id}} | O poll: queued → running → succeeded com o resultado e o custo real. |
Rotas sem bodyTemplate, de propósito
As ferramentas de busca têm dezenas de campos opcionais. Sem bodyTemplate, os parâmetros que o modelo preencher viram o corpo inteiro — opcional não usado simplesmente não aparece. É o padrão certo para APIs com muitos campos opcionais.
O prompt define o protocolo: iniciar a busca → avisar em uma frase o que está buscando → consultar o resultado até 4 vezes → se não terminou, anotar o código do job na mensagem e convidar o "e aí?" — que retoma pelo código na próxima mensagem, no mesmo thread_id.
E os limites éticos ficam no prompt, não na esperança: dados públicos, prospecção legítima, recusa a vigilância de indivíduos e listas para spam.
- Cole a sua chave
hi_...noauth.token(o mesmo bearer paga as buscas). - Prospecção que registra: some um segundo card Webhook com o seu CRM — achou o lead, cadastra na hora (padrão do Pós-venda para escrita com aprovação).
- Instagram: há também
/v1/tools/instagram-profile; entra como mais uma rota. - Times comerciais: um Roteador na frente separa "buscar" de "qualificar" com prompts dedicados.
Todos os fluxos prontos
Outros agents completos para importar e adaptar.

