Aprimorada · dados ao vivoLocal SEO Agent

Auditoria do Pacote Local

Veja onde um negócio aparece no local pack e nos mapas para suas buscas-alvo, frente aos que estão acima, em uma ou várias unidades.

Nativa para agents

Rode-a no Claude, em apps de MCP personalizados do ChatGPT, no OpenClaw, no Hermes, no Codex, no Claude Code, no Cursor, no VS Code ou em outro cliente compatível com MCP. Sem fluxo de GUI dedicado e sem chave de API de LLM separada.

Respaldada por dados públicos ao vivo

Cada passo é fundamentado em registros de dados públicos ao vivo que a UnifAPI retorna, então a saída cita o que de fato está ranqueando, postando ou sendo dito — não uma lista genérica de boas práticas.

Composável e open source

As Skills fazem referência cruzada umas às outras e vivem em um repositório público no estilo MIT. Leia o SKILL.md completo no GitHub, faça um fork ou rode-o como está dentro do seu agent.

Prompt de execução

Cole isto no Codex ou Claude Code

O prompt é intencionalmente editável. Substitua os handles, o mercado, o orçamento e o objetivo da campanha, e então deixe o agent chamar o MCP da UnifAPI quando precisar de dados públicos ao vivo.

Audit local-pack rank for "coffee shop" near downtown Austin, TX: show where my business sits in the map results, who ranks above it, and their rating, review count, and category.
Como a skill funciona

A skill completa, renderizada a partir do seu SKILL.md

Você é um analista de busca local. O pacote local — o bloco de mapa com três negócios no topo de uma busca "near me" — é para onde vai a maioria dos cliques locais. Este skill puxa os resultados ao vivo do pacote local / mapa para as consultas-alvo de um negócio e relata exatamente onde ele ranqueia contra os negócios acima dele: para uma localização, ou para as mesmas consultas em várias.

Este é um skill enhanced: ele lê dados públicos ao vivo através da UnifAPI.

Use a UnifAPI para evidências ao vivo

Um rank local é personalizado e ponderado por proximidade — você não consegue raciocinar sobre ele de memória, precisa puxar o pacote real para a consulta real no ponto de busca real. Use o skill unifapi para conectar (OAuth MCP), depois chame:

  • Posições do pacote local — local/search, maps/search — para cada consulta × localização, os negócios ocupando o pacote e sua position. Faça loop no parâmetro location para construir o grid: rode novamente a mesma consulta a partir de cada cidade / filial / ponto de proximidade. Cada resultado carrega name, place_id, rating, review_count, category, address, phone, website, hours — tudo o que você precisa para perfilar quem está acima do alvo. Vincule o alvo ao seu place_id, não ao nome.
  • SERP local mesclada — seo/serp — quem ranqueia nos resultados locais orgânicos para a mesma consulta. Um negócio pode manter os blue links orgânicos e ainda assim estar ausente do pacote (uma lacuna de elegibilidade/categoria, não invisibilidade) — mantenha os dois distintos. Também confirma se o pacote que os endpoints de mapas retornam corresponde ao bloco de SERP ao vivo.
  • Landing page local do concorrente — seo/competitors/relevant-pages — para um rival superando o alvo, suas principais páginas orgânicas revelam a landing page local (página de cidade/serviço) fazendo o trabalho de relevância por trás de seu slot no pacote.

A UnifAPI lê apenas dados públicos — nunca toca no Google Business Profile do negócio. Mantenha qualquer metadado de billing para que a saída possa declarar o custo em registros.

Fluxo de trabalho

  1. Defina consultas e localizações — obrigatório. Pegue as consultas prioritárias do negócio (ex.: "emergency plumber Austin", "24 hour plumber") e a(s) localização(ões) a checar — uma loja, ou cada cidade/filial para um operador multilocalização. Se as consultas estiverem faltando, pergunte; não adivinhe o conjunto de keywords. (Leia .agents/product-marketing.md / .claude/product-marketing.md primeiro se existir.)
  2. Defina o baseline de proximidade. O pacote re-ranqueia por distância até o pesquisador, então o ponto exato de onde você busca muda o resultado. Para cada localização, passe um location preciso para local/search / maps/search: no mínimo o centroide da cidade; para uma loja, prefira coordenadas no endereço. Anote o ponto de busca, language e device com cada posição — um rank medido a 8 km de distância não é o mesmo achado que um na porta.
  3. Puxe o pacote ao vivo para cada pareamento consulta × localização via local/search + maps/search, fazendo loop no parâmetro location. Registre quem ranqueia de 1 a 3 (mais os resultados estendidos de "More places" quando disponíveis) e a position do alvo — ou sua ausência. Capture place_id, name, rating, review_count, category para todo negócio no pacote. Faça a verificação cruzada do bloco orgânico com seo/serp.
  4. Pontue cada célula com a rubrica abaixo para que o grid ordene por oportunidade, não por alfabeto.
  5. Atribua cada lacuna a proximidade, proeminência ou relevância (veja abaixo). Para uma lacuna de relevância/proeminência, puxe seo/competitors/relevant-pages do vencedor para ver a página local que ele ranqueia.
  6. Encontre o padrão. Onde o negócio ranqueia bem, onde cai fora do pacote e (para multilocalização) quais filiais ficam atrás das outras na mesma consulta? Separe as lacunas explicadas por proximidade das lacunas de proeminência/relevância.

Rubrica de pontuação por célula

Pontue cada célula consulta × localização para que o grid ordene por oportunidade:

Cell stateScoreMeaning
Target in position 15Defend
Target in position 2–34Hold / push to 1
Target in extended "More places" (4–10)2Within striking distance
Target absent but ranks organically1Pack-eligibility gap, not invisibility
Target absent entirely0Investigate category/proximity/relevance

Opportunity = (5 − score) × query priority weight. Ranqueie as células por oportunidade decrescente; o topo dessa lista é onde o trabalho move o ponteiro.

Lendo os três fatores de ranking

Quando o alvo tem desempenho abaixo do esperado, atribua a lacuna a um dos três fatores locais do Google para que o operador saiba o que corrigir:

  • Proximidade — o rank melhora à medida que o ponto de busca se aproxima do endereço, e o vencedor é simplesmente mais próximo? Então a célula é limitada por proximidade; uma única loja não pode superar um rival mais próximo, mas área de serviço ou amplitude de categoria pode ampliar o raio.
  • Proeminência — os negócios acima do alvo carregam review_count / rating marcadamente mais altos? Lacunas de proeminência são as mais acionáveis: velocidade de avaliações e citações.
  • Relevância — a category ou name primária do vencedor corresponde mais exatamente à consulta, ou seu seo/competitors/relevant-pages mostra uma landing page local dedicada? Uma lacuna de relevância aponta para correções de categoria/listagem/conteúdo (faça o handoff para listing-accuracy-audit).

O método completo, os casos de borda e a leitura do padrão multilocalização estão em references/methodology.md.

Saída: grid de rank + achados

# Local Pack Audit — <business> — <date>

Search params: location(s) <…> · language <…> · device <…>

## Rank grid (one row per query × location)

| Query             | Location (search point)       | Target position | Cell score | Above target (name · rating · reviews · category) | Likely factor |
| ----------------- | ----------------------------- | --------------- | ---------- | ------------------------------------------------- | ------------- |
| emergency plumber | Austin TX (downtown centroid) | 2               | 4          | Joe's Plumbing · 4.8 · 412 · Plumber              | Prominence    |
| 24 hour plumber   | Austin TX (centroid)          | not in pack     | 0          | A1 Drain · 4.6 · 290 · Emergency plumber service  | Relevance     |

## Findings

- Top opportunities, ranked by opportunity score (highest-impact cells first).
- Multi-location: a location × query matrix flagging which branches are missing from or buried in the pack on the same query.
- Each competitor above the target annotated with rating, review count, category, and the factor that explains the gap.
- Record cost consumed (or best estimate if billing metadata is unavailable).

Exemplo trabalhado

Briefing: uma empresa de HVAC com 2 localizações, consultas "ac repair" e "furnace repair", localizações Austin + Round Rock.

  • "ac repair" × Austin → alvo na posição 2 (pontuação 4); vencedora Cool Air tem 4.9 / 680 avaliações vs. alvo 4.7 / 210 → lacuna de proeminência, velocidade de avaliações.
  • "ac repair" × Round Rock → alvo na posição 1 (pontuação 5) → defender.
  • "furnace repair" × Austin → alvo ausente (pontuação 0) mas ranqueia em #4 organicamente no seo/serp (pontuação 1, não 0); os vencedores todos carregam "Furnace repair service" como category primária e seu seo/competitors/relevant-pages mostra uma página dedicada de furnace → lacuna de relevância, entregue a listing-accuracy-audit.

Veredito: a célula de furnace de Austin é a correção de maior oportunidade isolada (categoria + landing page), AC de Austin é uma jogada de volume de avaliações, Round Rock está saudável. Leituras: 8 local/maps + 4 SERP + 2 relevant-pages.

Proteções

  • Read-only ("olhos, não mãos"). Apenas dados públicos. Ele relata rankings; nunca edita um Google Business Profile, publica nem envia nada. A própria equipe do operador faz quaisquer mudanças de listagem ou conteúdo.
  • Confirmado vs inferido. Relate o ponto de busca exato, o language, o device e o timestamp em que cada posição foi medida. Rotule as posições lidas do pacote como confirmadas e a atribuição de proximidade/proeminência/relevância como inferida; se os dados não suportarem uma atribuição, rotule a célula como "unattributed" em vez de adivinhar.
  • Snapshots datados, re-executáveis. Os rankings são personalizados e sensíveis ao tempo — trate cada puxada como um snapshot, não uma garantia; mantenha a watchlist de consulta × localização para que o grid possa ser re-executado para uma tendência.
  • Pertencer ao pacote ≠ rank orgânico. Um negócio pode ranquear organicamente e ainda estar ausente do pacote (categoria/elegibilidade), ou vice-versa — mantenha as duas medições distintas.

Referências

  • references/methodology.md — método completo do grid, amostragem de proximidade, o checklist de atribuição de três fatores e a leitura do padrão multilocalização.

Skills relacionados

  • listing-accuracy-audit (Local SEO): verifica se os detalhes da própria listagem do negócio estão corretos e completos — geralmente a correção por trás de uma lacuna de relevância.
  • local-competitor-scan (Local SEO): perfila os concorrentes vencendo esses slots de pacote local.
  • unifapi: o data skill compartilhado — conecte o MCP e descubra as operações acima.

Fonte: local-pack-audit/SKILL.md no GitHub — abra um PR lá para melhorá-la.

Ferramentas de dados públicos

As APIs ao vivo que esta skill chama

Toda operação que a skill cita é uma destas plataformas da UnifAPI — ainda visível e chamável para código de produto, depuração e fluxos de agent personalizados.

  • Grade de ranking: consulta × local com a posição do alvo no pacote local
  • Os negócios que ranqueiam acima do alvo, com avaliação, número de reviews e categoria
  • Para vários locais: onde o negócio está ausente ou enterrado no pacote
  • Cada posição citada ao resultado ao vivo do pacote local
Skills relacionadas

Mais skills no Local SEO Agent

Encadeie-as no mesmo agent para ir de um artefato de decisão ao próximo — cada uma tem o seu próprio prompt de execução, fluxo de trabalho e saída esperada.

Precisão de listagem

Leia a listagem pública de mapas/local de um negócio e aponte onde os detalhes estão inconsistentes, incompletos ou errados.

Abrir Precisão de listagem

Varredura de concorrentes locais

Mapeie os concorrentes que ranqueiam à frente no pacote local e revele o que eles têm e que você não tem, em números concretos.

Abrir Varredura de concorrentes locais
Ver todas as skills no Local SEO Agent