{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://alejandrocastanoduque.com/#website",
      "url": "https://alejandrocastanoduque.com/es/",
      "name": "Alejandro Castaño, Portfolio",
      "inLanguage": "es",
      "publisher": {
        "@id": "https://alejandrocastanoduque.com/#person"
      }
    },
    {
      "@type": "Person",
      "@id": "https://alejandrocastanoduque.com/#person",
      "name": "Alejandro Castaño Duque",
      "alternateName": "Alejandro Castaño",
      "jobTitle": "Technical SEO & GEO Strategist",
      "description": "SEO técnico y GEO para e-commerce: visibilidad en Google y en las respuestas de IA, medida en GA4 y Search Console. Berlín.",
      "email": "mailto:alejandrocadu@gmail.com",
      "url": "https://alejandrocastanoduque.com/es/",
      "image": "https://alejandrocastanoduque.com/og.png",
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Berlin",
        "addressCountry": "DE"
      },
      "worksFor": {
        "@type": "Organization",
        "name": "Loona Marketing"
      },
      "alumniOf": [
        {
          "@type": "CollegeOrUniversity",
          "name": "Gisma University of Applied Sciences"
        },
        {
          "@type": "CollegeOrUniversity",
          "name": "Universidad de Medellín"
        }
      ],
      "knowsLanguage": [
        {
          "@type": "Language",
          "name": "Spanish"
        },
        {
          "@type": "Language",
          "name": "English"
        },
        {
          "@type": "Language",
          "name": "German"
        }
      ],
      "knowsAbout": [
        "Marketing Automation",
        "AI Agents",
        "Model Context Protocol",
        "Claude",
        "Technical SEO",
        "Generative Engine Optimization",
        "Structured Data",
        "Core Web Vitals",
        "Google Search Console",
        "Google Analytics 4",
        "Google Tag Manager",
        "Server-side tracking",
        "Looker Studio",
        "Shopify",
        "WordPress"
      ],
      "sameAs": [
        "https://www.linkedin.com/in/alejandrocastanod/"
      ]
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Technical SEO & GEO Strategist",
          "item": "https://alejandrocastanoduque.com/es/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Proyectos",
          "item": "https://alejandrocastanoduque.com/es/projects/"
        }
      ]
    },
    {
      "@type": "CollectionPage",
      "@id": "https://alejandrocastanoduque.com/es/projects/#webpage",
      "url": "https://alejandrocastanoduque.com/es/projects/",
      "inLanguage": "es",
      "isPartOf": {
        "@id": "https://alejandrocastanoduque.com/#website"
      },
      "name": "Proyectos",
      "description": "Sistemas que construí para SEO, GEO y medición, y algunos proyectos propios.",
      "mainEntity": {
        "@id": "https://alejandrocastanoduque.com/es/projects/#list"
      }
    },
    {
      "@type": "ItemList",
      "@id": "https://alejandrocastanoduque.com/es/projects/#list",
      "name": "Proyectos",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#ai-visibility",
            "url": "https://alejandrocastanoduque.com/es/projects/#ai-visibility",
            "name": "Monitoreo de visibilidad en IA y GEO técnico",
            "description": "Visibilidad, share of voice y fuentes citadas en Peec AI en AI Overviews, ChatGPT y Perplexity; un tracker con grounding de Gemini como aproximación al fan-out; crawlers de IA desbloqueados en Cloudflare. Órdenes desde asistentes de IA +40% interanual.",
            "keywords": "Peec AI, Gemini API, Cloudflare, GA4",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 2,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#merchant-ai-feed",
            "url": "https://alejandrocastanoduque.com/es/projects/#merchant-ai-feed",
            "name": "Datos de producto para compras con IA",
            "description": "Un feed suplementario con los conversational attributes de Google (preguntas y respuestas, productos relacionados, variantes, popularidad), en vivo desde jul 2026 con refresh automático. El catálogo activo (889 productos) se verificó contra el fabricante para alimentarlo.",
            "keywords": "Merchant Center, Supplemental feed, Python",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 3,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#competitor-intel",
            "url": "https://alejandrocastanoduque.com/es/projects/#competitor-intel",
            "name": "Inteligencia competitiva: precio, contenido y negocio",
            "description": "Una lectura semanal de 6 tiendas competidoras que responde tres preguntas. Cómo ponen precio: paridad MAP y quién la rompe, anclaje con precios tachados, subidas coordinadas de un fabricante, Black Friday armado por niveles semanas antes. Qué publican: ritmo editorial, los temas que nos faltaban y cambios en la visibilidad en IA. Hacia dónde va su negocio: cuatro marcas consolidadas en una sola plataforma, marcas propias que reemplazan productos de terceros, nuevos canales de pauta, páginas de referidos de clínicas y pago a plazos. Cada hallazgo llega al área responsable con una recomendación y sigue abierto hasta que se decide.",
            "keywords": "changedetection.io, Shopify API, Python, Decision log",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 4,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#measurement-stack",
            "url": "https://alejandrocastanoduque.com/es/projects/#measurement-stack",
            "name": "Stack de medición SEO y GEO",
            "description": "Archivo diario de Search Console en SQLite más allá del límite de 16 meses, un monitor de updates de Google (14 días antes vs después), herramientas de causal impact para cambios SEO y verificación de crawlers de IA contra los rangos de IP publicados.",
            "keywords": "Search Console API, SQLite, Causal impact",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 5,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#ad-signals",
            "url": "https://alejandrocastanoduque.com/es/projects/#ad-signals",
            "name": "Conversiones offline y chequeos de salud del tracking",
            "description": "El ID de clic del anuncio se captura en la tienda y se sube cada día a Google Ads como conversión offline, para que la puja aprenda de órdenes reales; el montaje se validó de punta a punta antes de salir en vivo. Monitores semanales comparan las órdenes de Shopify con las compras en GA4, alertan si la diferencia supera el 20% y siguen la cobertura de atribución.",
            "keywords": "Google Ads API, Cloudflare Workers, GA4, Python",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 6,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#seo-reporting",
            "url": "https://alejandrocastanoduque.com/es/projects/#seo-reporting",
            "name": "Reporte SEO mensual automatizado",
            "description": "Saca Search Console y GA4 por sus APIs y arma el deck mensual, con nuestros cambios en el sitio y los updates de Google marcados en las gráficas, para que cada movimiento del tráfico llegue con su explicación y no con una suposición.",
            "keywords": "Search Console API, GA4 Data API, python-pptx",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 7,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#content-research",
            "url": "https://alejandrocastanoduque.com/es/projects/#content-research",
            "name": "Herramientas de content gap y demanda",
            "description": "Una herramienta de content gap que pondera las páginas de la competencia por su posición en el SERP (BM25), extrae temas y mapea encabezados con embeddings, más minería de demanda en Reddit con la API oficial. Las dos alimentan los briefs SEO.",
            "keywords": "Python, BM25, spaCy, Reddit API",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 8,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#local-toolkit",
            "url": "https://alejandrocastanoduque.com/es/projects/#local-toolkit",
            "name": "Un kit local de research para SEO y GEO",
            "description": "Herramientas de línea de comandos que escribí, sobre software open source que corro en mi Mac (Firecrawl, crawl4ai, changedetection.io): un scraper que escala del método más liviano a un navegador headless y se detiene ante un captcha en vez de resolverlo, transcripciones de YouTube en lote, Google Trends y diferencias de catálogo de la competencia, extracción de datos estructurados, un chequeo de agentic commerce para tiendas Shopify y un comando que prende y apaga los servicios locales.",
            "keywords": "Python, Bash, Firecrawl (self-hosted), crawl4ai",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 9,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#claude-mcp",
            "url": "https://alejandrocastanoduque.com/es/projects/#claude-mcp",
            "name": "Skills, agentes y conectores MCP de Claude",
            "description": "Adaptados por cliente y conectados a GA4, Search Console, Ahrefs, SEMrush, DataForSEO, Screaming Frog, Shopify, GTM y Cloudflare, para correr auditorías y reportes desde un solo lugar. Incluye flujos por marca para briefs, fichas de producto, colecciones y arreglos técnicos.",
            "keywords": "Claude, MCP, Claude Code",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 10,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#lead-automation",
            "url": "https://alejandrocastanoduque.com/es/projects/#lead-automation",
            "name": "Automatización de leads y una CLI de deploy",
            "description": "Google Apps Script para validación, anti-spam, Google Sheets y entrega al CRM sin entrada manual. Los deploys pasaron de unos 30 minutos a un solo comando con una CLI propia.",
            "keywords": "Apps Script, CLI, GTM server-side",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        },
        {
          "@type": "ListItem",
          "position": 11,
          "item": {
            "@type": "CreativeWork",
            "@id": "https://alejandrocastanoduque.com/es/projects/#berlin-job-pipeline",
            "url": "https://alejandrocastanoduque.com/es/projects/#berlin-job-pipeline",
            "name": "Pipeline de búsqueda de empleo y un MCP para auditar LinkedIn",
            "description": "Un pipeline sobre APIs oficiales de empleo que filtra roles por idioma, sponsorship de visa y umbral salarial, y un servidor MCP que audita un perfil de LinkedIn contra las keywords de títulos reales. Sin scraping, sin acceso a la cuenta.",
            "keywords": "Job APIs, MCP, Automation",
            "creator": {
              "@id": "https://alejandrocastanoduque.com/#person"
            }
          }
        }
      ]
    }
  ]
}
