SEO Research Semanal en Piloto Automático (Ahorro 12 Horas/Mes)

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:

  1. Abrir Ahrefs/SEMrush/Serpstat
  2. Ver keywords que rankeas
  3. Ver keywords que competidores rankean
  4. Comparar listas manualmente (Excel hell)
  5. Identificar gaps («ellos rankean X, yo no»)
  6. Priorizar por volumen + dificultad
  7. 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:

  1. Fetch keywords de mis 2 dominios (cristiantala.com, ecosistemastartup.com)
  2. Fetch high-volume keywords tech/startups (Chile)
  3. Gap analysis (keywords donde NO rankeo)
  4. E-E-A-T analysis (cuáles aprovechan mi experiencia real)
  5. Crear tareas NocoDB con prioridad
  6. 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:

  1. Agrupar keywords por tema («pitch deck», «investor deck», «startup presentation» = 1 pillar post)
  2. Crear contenido comprensivo (3,000+ palabras)
  3. 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:

  1. Zapier Scheduled Trigger (weekly Monday 1 AM)
  2. Serpstat API webhook (fetch keywords)
  3. Filter + Parse (Python code in Zapier)
  4. 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:

  1. Serpstat dashboard manual
  2. Export keywords CSV
  3. Compare en Excel
  4. 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:


¿Automatizas SEO research? ¿Qué herramientas usas? Comparte en comentarios.

Suscríbete a mi Newsletter

Estrategias de automatización, AI y startups que funcionan. Análisis semanal directo a tu inbox. (Sin spam, prometo intentarlo.)