SEO Research Semanal en Piloto Automático (Ahorro 12 Horas/Mes)
Hago research SEO cada lunes a la 1 AM. No manualmente — un cron lo hace por mí.
Output:
- Reporte markdown con gaps de keywords
- 7 tareas creadas en NocoDB con prioridad
- Análisis E-E-A-T (qué keywords aprovechan mi exit/experiencia)
Tiempo invertido: 5 minutos leyendo reporte (vs 3 horas/semana manual).
Ahorro: 12 horas/mes.
No es magia. Es un sistema que automatiza lo tedioso (fetch data, comparar lists, detectar gaps) para que yo enfoque en lo estratégico (qué escribir, cómo posicionar).
Te muestro cómo funciona (con código incluido).
El Problema: SEO Manual es Tedioso
Research SEO tradicional:
- Abrir Ahrefs/SEMrush/Serpstat
- Ver keywords que rankeas
- Ver keywords que competidores rankean
- Comparar listas manualmente (Excel hell)
- Identificar gaps («ellos rankean X, yo no»)
- Priorizar por volumen + dificultad
- Crear tareas en task manager
Tiempo: 2-3 horas/semana.
Frecuencia: Semanal (porque keywords cambian, competidores publican).
Resultado: SEO se deprioritiza porque es aburrido.
La Solución: Automatización SEO con Serpstat API
Mi setup:
- API: Serpstat (keyword research + competitor analysis)
- Cron: Lunes 1 AM (sesión isolated, no clutter main session)
- Modelo: Opus 4.6 (análisis estratégico requiere pensamiento profundo)
- Output: Markdown report + tareas NocoDB
- Cost: $69/mes Serpstat + $1.20/mes Opus cron
Workflow:
- Fetch keywords de mis 2 dominios (cristiantala.com, ecosistemastartup.com)
- Fetch high-volume keywords tech/startups (Chile)
- Gap analysis (keywords donde NO rankeo)
- E-E-A-T analysis (cuáles aprovechan mi experiencia real)
- Crear tareas NocoDB con prioridad
- Guardar reporte en
content-strategy/keyword-research/weekly-YYYY-MM-DD.md
El Código (Simplificado)
## Pseudo-código del cron SEO
import serpstat
import nocodb
from openai import ChatCompletion # O Anthropic
def weekly_seo_research():
# 1. Fetch keywords de mis dominios
cristiantala_kw = serpstat.get_domain_keywords("cristiantala.com")
# Returns: 98 keywords
ecosistema_kw = serpstat.get_domain_keywords("ecosistemastartup.com")
# Returns: 92 keywords
# 2. Fetch target keywords (tech/startup niche)
target_keywords = serpstat.get_keywords_top(
query="startup OR pitch OR inversión OR fundraising OR IA",
country="CL",
limit=500
)
# 3. Gap analysis
my_keywords = set(cristiantala_kw + ecosistema_kw)
target_set = set(target_keywords)
gaps = target_set - my_keywords
# Filter by volume > 100/month AND difficulty < 40
high_value_gaps = [
kw for kw in gaps
if kw['volume'] > 100 and kw['difficulty'] < 40
]
# 4. E-E-A-T Analysis with Opus
prompt = f"""
Analiza estos keyword gaps para Cristian Tala:
Contexto:
- Exit founder (vendió fintech)
- 30+ inversiones angel
- Mentor tech y startups
Keywords gaps: {high_value_gaps}
Para cada keyword:
1. Relevancia (1-10)
2. E-E-A-T advantage (tiene ventaja por experiencia real?)
3. Ángulo de contenido (qué perspectiva única puede dar?)
4. Prioridad (P0/P1/P2/P3)
Return top 10 opportunities.
"""
analysis = opus_model.generate(prompt)
# 5. Create NocoDB tasks
for opportunity in analysis['top_10']:
nocodb.create_task({
"title": f"SEO: Write '{opportunity['keyword']}' post",
"description": f"""
Keyword: {opportunity['keyword']}
Volume: {opportunity['volume']}/month
Difficulty: {opportunity['difficulty']}
Angle: {opportunity['content_angle']}
E-E-A-T: {opportunity['eeat_advantage']}
""",
"priority": opportunity['priority'],
"tags": ["SEO", "Content", "Blog"],
"value": calculate_value(opportunity)
})
# 6. Generate report
report = generate_markdown_report(analysis)
save_to_file(f"content-strategy/keyword-research/weekly-{today}.md", report)
return report
Ejemplo de Reporte (Real)
Fecha: 2026-02-16
## SEO Weekly Report — 2026-02-16
### Summary
- **cristiantala.com:** 98 keywords ranking
- **ecosistemastartup.com:** 92 keywords ranking
- **Content gaps found:** 47 high-value keywords
- **Tasks created:** 7 (P1: 3, P2: 4)
### Top Opportunities
#### 1. "pitch deck template" (3.6K/mo, Difficulty 35)
**Angle:** Share actual pitch deck from exit + investor feedback
**E-E-A-T:** Real exit + 30+ investments = unfair advantage
**Traffic potential:** 500-800/month
**Priority:** P1
**Why this matters:**
- High search volume in Chile
- Personal experience = credibility competitors lack
- Can include real pitch deck (anonymized) + investor quotes
- Natural funnel to mentoring/consulting
**Recommended structure:**
1. My actual pitch deck (annotated)
2. What worked (investor perspective)
3. What didn't work (honest)
4. Template download (lead magnet)
**NocoDB Task ID:** 130
---
#### 2. "product market fit" (390/mo, Difficulty 28)
**Angle:** PMF lessons from Pago Fácil (plugin → 6K companies)
**E-E-A-T:** Built product from 0 → exit, knows PMF journey
**Traffic potential:** 150-250/month
**Priority:** P1
**Why this matters:**
- Underserved keyword (low difficulty)
- Real PMF story: plugin open source used by 3K companies gratis → pivot to SaaS → 6K paying
- Tactical insights (not theory)
**Angle único:**
- "How I knew we had PMF: 3 signals that mattered (and 5 vanity metrics I ignored)"
- Numbers: 3K free users, conversion to paid, retention curves
**NocoDB Task ID:** 131
---
#### 3. "startup equity calculator" (720/mo, Difficulty 32)
**Angle:** Interactive calculator + equity mistakes from 30+ investments
**E-E-A-T:** Investor perspective (sees both sides: founder + investor)
**Traffic potential:** 300-500/month
**Priority:** P2 (requires tool development)
**Why P2 not P1:**
- Needs interactive tool (not just blog post)
- Development time ~8h
- High impact but not quick win
**Recommended approach:**
1. Simple calculator (equity split scenarios)
2. Common mistakes (from portfolio companies)
3. Investor POV: "What I look for in cap tables"
**NocoDB Task ID:** 132
---
### Strategic Recommendations
#### 1. Prioritize Exit Story Content (Highest E-E-A-T)
Keywords where real exit experience = unfair advantage:
- pitch deck template
- term sheet negotiations
- due diligence process
- exit valuation
- investor updates
**Action:** Create pillar page "Startup Fundraising Guide" linking to all related posts.
---
#### 2. Leverage Dual Perspective (Founder + Investor)
Unique angle: Seen both sides of the table.
Content ideas:
- "What investors look for (from someone who raised AND invested)"
- "Pitch deck mistakes I made (and now see in portfolio)"
- "Due diligence from both sides"
---
#### 3. Internal Linking Strategy
- Ecosistema posts → cristiantala posts (dofollow)
- Pass authority from high-traffic Ecosistema (60K/mo) to cristiantala
- Canonical URLs + disclaimer
**Benefit:** Leverage existing traffic to boost new domain.
---
### Tasks Created (NocoDB)
1. ✅ SEO: Write "pitch deck template" post (P1, Value 9/10) — Task #130
2. ✅ SEO: Write "product market fit" post (P1, Value 8/10) — Task #131
3. ✅ SEO: Write "startup equity calculator" post (P2, Value 8/10) — Task #132
4. ✅ SEO: Write "term sheet negotiations" post (P1, Value 7/10) — Task #133
5. ✅ SEO: Write "investor updates template" post (P2, Value 7/10) — Task #134
6. ✅ SEO: Write "due diligence checklist" post (P2, Value 6/10) — Task #135
7. ✅ SEO: Write "exit valuation multiples" post (P2, Value 7/10) — Task #136
---
### Metrics to Track
**Next week (2026-02-23):**
- cristiantala.com keywords (target: 105+)
- New keywords ranking (target: 5+)
- Traffic from SEO posts (Google Analytics)
**Monthly review:**
- Keyword growth rate
- Traffic vs tasks completed
- ROI per keyword (traffic × conversion)
E-E-A-T: Tu Ventaja Competitiva
E-E-A-T = Experience, Expertise, Authority, Trust (Google’s quality guidelines).
Mi caso:
- Experience: Vendí startup, hice 30+ inversiones
- Expertise: 11 años docente universitario (programación, algoritmos)
- Authority: Forbes Chile, Bloomberg Línea, Diario Financiero mencionan
- Trust: Blog personal con nombre real, LinkedIn verificado
Implicación SEO:
- NO competir en keywords genéricos («cómo hacer startup»)
- SÍ competir en keywords donde experiencia = ventaja («negociar term sheet», «due diligence investor»)
Resultado: Rankeo más alto con menos backlinks (porque Google valora E-E-A-T).
Lecciones Aprendidas
1. Opus Para Análisis, No Haiku
Probé Haiku para análisis SEO.
Haiku output:
- Lista keywords mecánicamente
- No detecta conexiones temáticas
- Pierde E-E-A-T context
Opus output:
- «Tu exit te da credibilidad para ‘pitch deck’ que competidores no tienen»
- Sugiere pillar pages (agrupa keywords related)
- Prioriza por business impact, no solo volumen
Veredicto: SEO analysis IS strategic thinking. Requiere Opus.
2. Content Gaps ≠ Keyword Stuffing
190 keyword gaps NO significa «escribir 190 posts.»
Mejor approach:
- Agrupar keywords por tema («pitch deck», «investor deck», «startup presentation» = 1 pillar post)
- Crear contenido comprensivo (3,000+ palabras)
- Cubrir naturalmente 10-20 keywords relacionados
Resultado: 10 pillar posts > 100 thin posts.
3. Weekly Cadence = Sostenible
Probé daily SEO checks → demasiado ruido.
Weekly funciona porque:
- Tiempo suficiente para ejecutar tasks de semana anterior
- Keywords no cambian diariamente
- Evita backlog explosion
4. Automate Data, Not Decisions
Serpstat API fetch data → automatizado.
Qué keywords escribir → decisión humana (Opus-asistida).
Anti-pattern: «Just write about top 10 keywords by volume.»
Reality: Volume sin relevancia = esfuerzo desperdiciado.
5. E-E-A-T Beats Backlinks
Experimento:
- Post genérico («cómo hacer pitch deck»): 20 backlinks, posición #25
- Post con exit story («pitch deck que cerró $60M»): 3 backlinks, posición #8
Por qué: Google detecta expertise (exit mencionado, números reales, perspectiva única).
Lección: Para founder content, E-E-A-T > backlinks.
Serpstat API (Setup)
Pricing: Professional plan $69/mo (10K requests/day).
Endpoints útiles:
1. Domain Keywords
GET https://api.serpstat.com/v4/domain_keywords
?domain=cristiantala.com
&se=g_cl # Google Chile
Returns: All keywords domain ranks for.
2. Keyword Top
GET https://api.serpstat.com/v4/keywords_top
?query=startup
&se=g_cl
&limit=500
Returns: High-volume keywords related to query.
3. Keyword Difficulty
GET https://api.serpstat.com/v4/keyword_difficulty
?keyword=pitch%20deck
&se=g_cl
Returns: SEO difficulty score (0-100).
Auth: API token en header Authorization: Token YOUR_TOKEN.
Rate limits: 10K requests/day (Professional plan).
Cron Config (OpenClaw)
{
"name": "SEO Weekly Report",
"schedule": {
"kind": "cron",
"expr": "0 1 * * 1",
"tz": "America/Santiago"
},
"payload": {
"kind": "agentTurn",
"message": "Run weekly SEO research. Fetch keywords from cristiantala.com and ecosistemastartup.com via Serpstat API. Identify content gaps, analyze E-E-A-T opportunities, create NocoDB tasks. Save report to content-strategy/keyword-research/weekly-YYYY-MM-DD.md.",
"model": "opus",
"timeoutSeconds": 600
},
"sessionTarget": "isolated",
"delivery": {
"mode": "announce",
"channel": "telegram"
},
"enabled": true
}
Por qué Lunes 1 AM:
- Antes de arrancar semana de trabajo
- Tareas SEO creadas listas para lunes AM
- No interrumpe workflow diario
NocoDB Schema (SEO Tasks)
Campos relevantes:
| Campo | Valor Ejemplo |
|---|---|
| Title | «SEO: Write ‘pitch deck template’ post» |
| Description | Keyword, volume, angle, E-E-A-T advantage |
| Priority | P1 (based on E-E-A-T + volume) |
| Value | 9/10 (business impact score) |
| Tags | SEO, Content, Blog |
| Due Date | (opcional, basado en priority) |
Priorización:
- P0: Urgent SEO opportunities (competitor ranking spike, trend)
- P1: High E-E-A-T + high volume
- P2: Medium E-E-A-T + medium volume
- P3: Low priority, nice-to-have
Alternativas (Si No Usas OpenClaw)
Opción A: Zapier + Serpstat + Notion
Flow:
- Zapier Scheduled Trigger (weekly Monday 1 AM)
- Serpstat API webhook (fetch keywords)
- Filter + Parse (Python code in Zapier)
- Create Notion tasks
Cost: $20/mo Zapier + $69/mo Serpstat = $89/mo.
Opción B: Script Python + Cron
## cron-seo-research.py
import requests
import json
from datetime import datetime
SERPSTAT_API = "YOUR_TOKEN"
NOTION_TOKEN = "YOUR_TOKEN"
def fetch_keywords(domain):
url = f"https://api.serpstat.com/v4/domain_keywords"
params = {"domain": domain, "se": "g_cl"}
headers = {"Authorization": f"Token {SERPSTAT_API}"}
response = requests.get(url, params=params, headers=headers)
return response.json()['result']['data']
def create_notion_task(keyword, details):
url = "https://api.notion.com/v1/pages"
headers = {
"Authorization": f"Bearer {NOTION_TOKEN}",
"Content-Type": "application/json",
"Notion-Version": "2022-06-28"
}
data = {
"parent": {"database_id": "YOUR_DATABASE_ID"},
"properties": {
"Name": {"title": [{"text": {"content": f"SEO: {keyword}"}}]},
"Priority": {"select": {"name": details['priority']}},
"Tags": {"multi_select": [{"name": "SEO"}, {"name": "Content"}]}
}
}
requests.post(url, json=data, headers=headers)
## Run
cristiantala_kw = fetch_keywords("cristiantala.com")
## ... gap analysis logic ...
## ... create tasks ...
Cron:
0 1 * * 1 /usr/bin/python3 /path/to/cron-seo-research.py
Cost: $69/mo Serpstat only.
Opción C: Manual Review (Free)
Cada lunes:
- Serpstat dashboard manual
- Export keywords CSV
- Compare en Excel
- Crear tareas manual en Notion/Asana
Tiempo: 2-3 horas.
Cost: $0 (si ya tienes Serpstat).
Resultados (30 Días)
Stats:
- Keywords analizados: 680
- Content gaps identificados: 190
- High-value opportunities: 47
- Tasks creados: 21 (P1: 7, P2: 10, P3: 4)
- Tasks completados: 8 (38% completion en 30 días)
SEO impact (early):
- New keywords ranking: 12
- Traffic increase: +8% (demasiado early para significance)
- Blog posts publicados: 3
Tiempo ahorrado:
- Manual: 3h/semana
- Automatizado: 5 min review
- Ahorro: 2h 55min/semana = 12 horas/mes
ROI Calculation
Cost:
- Serpstat: $69/mo (shared con otros proyectos)
- Opus cron: $1.20/mo
- Total: $70/mo
Value:
- Tiempo ahorrado: 12h/mes
- A $100/hora = $1,200 value
- Net ROI: $1,130/mes
Payback: Inmediato (mes 1).
Conclusión: SEO Doesn’t Happen By Accident
SEO manual = «Debería hacer SEO.»
SEO automatizado = «Aquí 7 tasks con ROI claro.»
Sistema convierte buenas intenciones en ejecución consistente.
Resultado:
- 12 hours/month saved
- Consistencia semanal (no «cuando tengo tiempo»)
- E-E-A-T focus (aprovecha ventaja competitiva real)
Si haces content marketing y tienes >50 posts, automatizar SEO research paga su peso en oro.
Repo completo:
- GitHub: openclaw-production-guide
- Case 4: SEO Weekly Reports
- Scripts Python + Serpstat integration
¿Automatizas SEO research? ¿Qué herramientas usas? Comparte en comentarios.


