Hermes Desktop es un asistente de inteligencia artificial local que puede ejecutarse en su máquina sin enviar datos a proveedores externos de LLM. Combinarlo con una API de búsqueda le brinda un asistente de investigación de SEO que tiene acceso a datos SERP en vivo mientras mantiene privado su flujo de trabajo. Este tutorial muestra cómo conectar Hermes Desktop a la API de Scavio para realizar seguimiento de clasificación, investigación de palabras clave y análisis de brechas de contenido. Construirás un flujo de trabajo de SEO local que consulta resultados de búsqueda en vivo y los procesa a través de tu modelo local de Hermes.
Requisitos previos
- Hermes Desktop instalado y ejecutándose
- Una clave API de Scavio de scavio.dev
- Python 3.8+ instalado
- solicita biblioteca instalada
Guia paso a paso
Paso 1: Configurar el cliente API de búsqueda
Cree un módulo de Python al que Hermes Desktop pueda llamar para obtener datos de búsqueda en vivo.
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def search(query, platform="google"):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": query})
return resp.json()
result = search("best project management tools 2026")
print(f"Results: {len(result.get('organic_results', []))}")Paso 2: Función de seguimiento de clasificación de compilación
Verifique dónde se clasifica su dominio para las palabras clave objetivo utilizando datos SERP en vivo.
def check_rank(keyword, domain):
data = search(keyword)
for i, r in enumerate(data.get("organic_results", [])):
if domain in r.get("link", ""):
return {"keyword": keyword, "position": i + 1, "url": r["link"]}
return {"keyword": keyword, "position": None, "url": None}
rank = check_rank("project management tools", "example.com")
print(f"Position: {rank['position']}")Paso 3: Extraer lagunas de contenido
Analice las páginas mejor clasificadas para encontrar temas de contenido que le faltan a su sitio.
def find_content_gaps(keyword, my_domain):
data = search(keyword)
paa = data.get("people_also_ask", [])
competitors = [r for r in data.get("organic_results", [])[:10]
if my_domain not in r.get("link", "")]
gaps = []
for q in paa:
gaps.append({"type": "paa", "topic": q.get("question", "")})
for c in competitors[:3]:
gaps.append({"type": "competitor", "title": c.get("title", ""),
"url": c.get("link", "")})
return gaps
gaps = find_content_gaps("project management tools", "example.com")
for g in gaps[:5]:
print(f"[{g['type']}] {g.get('topic') or g.get('title')}")Paso 4: Formatear salida para Hermes
Estructurar los datos de SEO como un formato listo para usar que Hermes Desktop pueda procesar.
def seo_report_for_hermes(keyword, domain):
rank = check_rank(keyword, domain)
gaps = find_content_gaps(keyword, domain)
lines = [f"SEO Report: {keyword}"]
lines.append(f"Current rank: {rank['position'] or 'Not found'}")
lines.append(f"Content gaps:")
for g in gaps[:5]:
lines.append(f" - [{g['type']}] {g.get('topic') or g.get('title')}")
return "\n".join(lines)
report = seo_report_for_hermes("project management tools", "example.com")
print(report)Ejemplo en Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def seo_check(keyword, domain):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": keyword})
data = resp.json()
for i, r in enumerate(data.get("organic_results", [])):
if domain in r.get("link", ""):
return {"keyword": keyword, "position": i + 1}
return {"keyword": keyword, "position": None}
print(seo_check("best project management tools", "example.com"))Ejemplo en JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function seoCheck(keyword, domain) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: keyword})
});
const results = (await r.json()).organic_results || [];
const idx = results.findIndex(r => (r.link||"").includes(domain));
return {keyword, position: idx >= 0 ? idx + 1 : null};
}
seoCheck("best project management tools", "example.com").then(console.log);Salida esperada
A local SEO research workflow powered by Hermes Desktop and live SERP data, providing rank tracking, content gap analysis, and prompt-ready reports.