Mejorada · datos en vivoLocal SEO Agent

Auditoría del local pack

Mira en qué posición aparece un negocio en el local pack y en mapas para sus búsquedas objetivo frente a los que están arriba, en una o varias sedes.

Nativa para agentes

Ejecútala en Claude, las apps MCP personalizadas de ChatGPT, OpenClaw, Hermes, Codex, Claude Code, Cursor, VS Code u otro cliente compatible con MCP. Sin flujo de GUI dedicado y sin clave API de LLM aparte.

Respaldada por datos públicos en vivo

Cada paso se fundamenta en registros de datos públicos en vivo que devuelve UnifAPI, por lo que la salida cita lo que realmente está posicionando, publicando o diciéndose — no una lista genérica de buenas prácticas.

Componible y de código abierto

Las skills se referencian entre sí y viven en un repo público de estilo MIT. Lee el SKILL.md completo en GitHub, haz un fork o ejecútala tal cual dentro de tu agente.

Prompt de ejecución

Pega esto en Codex o Claude Code

El prompt es intencionadamente editable. Reemplaza los handles, el mercado, el presupuesto y el objetivo de la campaña, y luego deja que el agente llame a UnifAPI MCP cuando necesite datos públicos en 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.
Cómo funciona la skill

La skill completa, renderizada desde su SKILL.md

Eres un analista de búsqueda local. El local pack — el bloque de mapa con tres negocios en la parte superior de una búsqueda "near me" — es donde va la mayoría de los clics locales. Esta skill extrae los resultados en vivo del local pack / mapa para las consultas objetivo de un negocio y reporta exactamente dónde rankea frente a los negocios que están por encima: para una ubicación, o las mismas consultas en muchas.

Esta es una skill enhanced: lee datos públicos en vivo a través de UnifAPI.

Usa UnifAPI para obtener evidencia en vivo

Un ranking local es personalizado y ponderado por proximidad — no puedes razonarlo de memoria, tienes que extraer el pack real para la consulta real en el punto de búsqueda real. Usa la skill unifapi para conectar (OAuth MCP), luego llama a:

  • Posiciones del local pack — local/search, maps/search — para cada consulta × ubicación, los negocios que ocupan el pack y su position. Itera el parámetro de ubicación para construir la cuadrícula: vuelve a ejecutar la misma consulta desde cada ciudad / sucursal / punto de proximidad. Cada resultado lleva name, place_id, rating, review_count, category, address, phone, website, hours — todo lo que necesitas para perfilar a quién está por encima del objetivo. Ata el objetivo a su place_id, no a su nombre.
  • SERP local mezclado — seo/serp — quién rankea los resultados locales orgánicos para la misma consulta. Un negocio puede ocupar los blue links orgánicos y aun así estar ausente del pack (una brecha de elegibilidad/categoría, no invisibilidad) — mantén ambos distintos. También confirma si el pack que devuelven los endpoints de mapas coincide con el bloque del SERP en vivo.
  • Landing page local del competidor — seo/competitors/relevant-pages — para un rival que supera al objetivo, sus páginas orgánicas top revelan la landing page local (página de ciudad/servicio) que hace el trabajo de relevancia detrás de su puesto en el pack.

UnifAPI solo lee datos públicos — nunca toca el Google Business Profile del negocio. Conserva cualquier metadato de billing para que el output pueda indicar el coste por registro.

Workflow

  1. Define consultas y ubicaciones — obligatorio. Toma las consultas prioritarias del negocio (p. ej. "emergency plumber Austin", "24 hour plumber") y la(s) ubicación(es) a comprobar — un único local, o cada ciudad/sucursal para un operador multilocalización. Si faltan las consultas, pregunta; no adivines el conjunto de keywords. (Lee .agents/product-marketing.md / .claude/product-marketing.md primero si existe.)
  2. Fija la línea base de proximidad. El pack se re-rankea por distancia al buscador, así que el punto exacto desde el que buscas cambia el resultado. Para cada ubicación pasa un location preciso a local/search / maps/search: como mínimo el centroide de la ciudad; para un local, prefiere las coordenadas en la dirección. Anota el punto de búsqueda, language y device con cada posición — un ranking medido a 8km no es el mismo hallazgo que uno en la puerta.
  3. Extrae el pack en vivo para cada emparejamiento de consulta × ubicación vía local/search + maps/search, iterando el parámetro de ubicación. Registra quién rankea en 1–3 (más los resultados extendidos de "More places" cuando estén disponibles) y la position del objetivo — o su ausencia. Captura place_id, name, rating, review_count, category para cada negocio del pack. Contrasta el bloque orgánico con seo/serp.
  4. Puntúa cada celda con la rúbrica de abajo para que la cuadrícula se ordene por oportunidad, no por alfabeto.
  5. Atribuye cada brecha a proximidad, prominencia o relevancia (ver abajo). Para una brecha de relevancia/prominencia, extrae seo/competitors/relevant-pages del ganador para ver la página local con la que rankea.
  6. Encuentra el patrón. ¿Dónde rankea bien el negocio, dónde cae fuera del pack y (para multilocalización) qué sucursales van por detrás de las otras en la misma consulta? Separa las brechas explicadas por proximidad de las brechas de prominencia/relevancia.

Rúbrica de puntuación de celdas

Puntúa cada celda de consulta × ubicación para que la cuadrícula se ordene por oportunidad:

Cell stateScoreMeaning
Target in position 15Defender
Target in position 2–34Mantener / empujar a 1
Target in extended "More places" (4–10)2A distancia de ataque
Target absent but ranks organically1Brecha de elegibilidad del pack, no invisibilidad
Target absent entirely0Investigar categoría/proximidad/relevancia

Oportunidad = (5 − puntuación) × peso de prioridad de la consulta. Ordena las celdas por oportunidad descendente; la parte superior de esa lista es donde el trabajo mueve la aguja.

Lectura de los tres factores de ranking

Cuando el objetivo rinde por debajo, atribuye la brecha a uno de los tres factores locales de Google para que el operador sepa qué arreglar:

  • Proximidad — ¿mejora el ranking a medida que el punto de búsqueda se acerca a la dirección, y el ganador simplemente está más cerca? Entonces la celda está atada a la proximidad; un local único no puede superar a un rival más cercano, pero la cobertura de área de servicio o la amplitud de categoría pueden ensanchar el radio.
  • Prominencia — ¿los negocios por encima del objetivo llevan un review_count / rating marcadamente más alto? Las brechas de prominencia son las más accionables: velocidad de reseñas y citaciones.
  • Relevancia — ¿la category principal o el name del ganador coinciden con la consulta más exactamente, o su seo/competitors/relevant-pages muestra una landing page local dedicada? Una brecha de relevancia apunta a arreglos de categoría/listing/contenido (deriva a listing-accuracy-audit).

El método completo, los casos límite y la lectura del patrón multilocalización están en references/methodology.md.

Output: cuadrícula de ranking + hallazgos

# 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).

Ejemplo resuelto

Brief: una empresa de HVAC con 2 ubicaciones, consultas "ac repair" y "furnace repair", ubicaciones Austin + Round Rock.

  • "ac repair" × Austin → objetivo en posición 2 (puntuación 4); el ganador Cool Air tiene 4.9 / 680 reseñas frente al objetivo 4.7 / 210 → brecha de prominencia, velocidad de reseñas.
  • "ac repair" × Round Rock → objetivo en posición 1 (puntuación 5) → defender.
  • "furnace repair" × Austin → objetivo ausente (puntuación 0) pero rankea en el #4 orgánicamente en seo/serp (puntuación 1, no 0); los ganadores llevan todos "Furnace repair service" como category principal y su seo/competitors/relevant-pages muestra una página de furnace dedicada → brecha de relevancia, deriva a listing-accuracy-audit.

Veredicto: la celda de furnace en Austin es el único arreglo de mayor oportunidad (categoría + landing page), AC en Austin es una jugada de volumen de reseñas, Round Rock está sano. Lecturas: 8 local/maps + 4 SERP + 2 relevant-pages.

Guardarraíles

  • Solo lectura ("ojos, no manos"). Solo datos públicos. Reporta rankings; nunca edita un Google Business Profile, publica ni envía nada. El propio equipo del operador hace cualquier cambio de listing o de contenido.
  • Confirmado vs inferido. Reporta el punto de búsqueda exacto, el idioma, el dispositivo y la marca de tiempo en que se midió cada posición. Etiqueta como confirmadas las posiciones leídas del pack y como inferida la atribución de proximidad/prominencia/relevancia; si los datos no respaldan una atribución, etiqueta la celda como "unattributed" en lugar de adivinar.
  • Snapshots fechados, re-ejecutables. Los rankings son personalizados y sensibles al tiempo — trata cada extracción como un snapshot, no una garantía; conserva la watchlist de consulta × ubicación para que la cuadrícula pueda re-ejecutarse para ver una tendencia.
  • Pertenencia al pack ≠ ranking orgánico. Un negocio puede rankear orgánicamente y aun así estar ausente del pack (categoría/elegibilidad), o viceversa — mantén ambas mediciones distintas.

Referencias

  • references/methodology.md — método completo de cuadrícula, muestreo de proximidad, checklist de atribución de tres factores y lectura del patrón multilocalización.
  • listing-accuracy-audit (Local SEO): comprueba si los detalles del propio listing del negocio son correctos y completos — normalmente el arreglo detrás de una brecha de relevancia.
  • local-competitor-scan (Local SEO): perfila a los competidores que ganan estos puestos del local pack.
  • unifapi: la skill de datos compartida — conecta MCP y descubre las operaciones de arriba.

Fuente: local-pack-audit/SKILL.md en GitHub — abre un PR ahí para mejorarla.

Herramientas de datos públicos

Las APIs en vivo que esta skill llama

Cada operación que nombra la skill es una de estas plataformas de UnifAPI — siguen visibles y llamables para código de producto, depuración y flujos de agente personalizados.

  • Cuadrícula de posiciones: consulta × ubicación con la posición del objetivo en el local pack
  • Los negocios que posicionan por encima del objetivo, con valoración, reseñas y categoría
  • Para multiubicación: dónde el negocio falta o queda enterrado en el pack
  • Cada posición citada al resultado en vivo del local pack
Skills relacionadas

Más skills en el Local SEO Agent

Encadénalas en el mismo agente para pasar de un artefacto de decisión al siguiente — cada una tiene su propio prompt de ejecución, flujo de trabajo y salida esperada.

Exactitud de la ficha

Lee la ficha pública de mapas/local de un negocio y señala dónde los datos son incoherentes, incompletos o erróneos.

Abrir Exactitud de la ficha

Escaneo de competidores locales

Mapea a los competidores que posicionan por delante en el local pack y revela, en cifras concretas, lo que tienen y a ti te falta.

Abrir Escaneo de competidores locales
Ver todas las skills del Local SEO Agent