SEO Optimization for osly.ai Landing Page

    Shared 8/9/2025

    460 views

    Visual Workflow

    JSON Code

    {
      "id": "la553Mg6J7WQDtQp",
      "meta": {
        "instanceId": "017a7fc3d74edc30de2a0f52f2562bd6175764dc2df5355a276ce0ae3f651006"
      },
      "name": "SEO Optimization for osly.ai Landing Page",
      "tags": [],
      "nodes": [
        {
          "id": "webhook-trigger",
          "name": "Webhook Trigger",
          "type": "n8n-nodes-base.webhook",
          "position": [
            0,
            0
          ],
          "webhookId": "seo-optimization-webhook",
          "parameters": {
            "path": "la553Mg6J7WQDtQp",
            "options": {
              "noResponseBody": false
            }
          },
          "typeVersion": 2
        },
        {
          "id": "scrape-landing-page",
          "name": "Scrape Landing Page Content",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            208,
            0
          ],
          "parameters": {
            "url": "https://osly.ai/",
            "options": {
              "timeout": 130000,
              "response": {
                "response": {
                  "responseFormat": "text"
                }
              }
            },
            "jsonBody": "={\n  \"instructions\": \"Go to https://osly.ai and extract comprehensive SEO-relevant content including: page title, meta description, all headings (H1, H2, H3), main content text, image alt texts, internal and external links, page structure, and any schema markup. Focus on gathering all text content that would be relevant for SEO analysis.\",\n  \"output_schema\": {\n    \"type\": \"object\",\n    \"properties\": {\n      \"title\": {\"type\": \"string\", \"description\": \"Page title tag\"},\n      \"meta_description\": {\"type\": \"string\", \"description\": \"Meta description content\"},\n      \"headings\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"h1\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}, \"description\": \"All H1 headings\"},\n          \"h2\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}, \"description\": \"All H2 headings\"},\n          \"h3\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}, \"description\": \"All H3 headings\"}\n        }\n      },\n      \"main_content\": {\"type\": \"string\", \"description\": \"Main page content text\"},\n      \"images\": {\n        \"type\": \"array\",\n        \"items\": {\n          \"type\": \"object\",\n          \"properties\": {\n            \"src\": {\"type\": \"string\"},\n            \"alt\": {\"type\": \"string\"}\n          }\n        },\n        \"description\": \"Images with alt text\"\n      },\n      \"links\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"internal\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}, \"description\": \"Internal links\"},\n          \"external\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}, \"description\": \"External links\"}\n        }\n      },\n      \"word_count\": {\"type\": \"number\", \"description\": \"Total word count\"},\n      \"schema_markup\": {\"type\": \"string\", \"description\": \"Any schema markup found\"}\n    },\n    \"required\": [\"title\", \"main_content\"]\n  },\n  \"number_of_results\": 1,\n  \"timeout_seconds\": 120\n}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "process-scraped-data",
          "name": "Process Scraped Data",
          "type": "n8n-nodes-base.code",
          "position": [
            400,
            0
          ],
          "parameters": {
            "jsCode": "// Process scraped landing page data for SEO analysis\nconst items = $input.all();\nconst processedResults = [];\n\nfor (const item of items) {\n  const data = item.json;\n  \n  // Extract the scraped content from browser service response\n  let scrapedContent;\n  if (data.results && data.results.length > 0) {\n    scrapedContent = data.results[0];\n  } else if (data.title || data.main_content) {\n    scrapedContent = data;\n  } else {\n    // Handle case where scraping failed\n    processedResults.push({\n      json: {\n        error: 'Failed to scrape landing page content',\n        raw_response: data,\n        timestamp: new Date().toISOString()\n      }\n    });\n    continue;\n  }\n  \n  // Process and structure the scraped data\n  const processedData = {\n    // Basic page info\n    page_title: scrapedContent.title || '',\n    meta_description: scrapedContent.meta_description || '',\n    word_count: scrapedContent.word_count || 0,\n    \n    // Heading structure\n    h1_headings: scrapedContent.headings?.h1 || [],\n    h2_headings: scrapedContent.headings?.h2 || [],\n    h3_headings: scrapedContent.headings?.h3 || [],\n    total_headings: (scrapedContent.headings?.h1?.length || 0) + \n                   (scrapedContent.headings?.h2?.length || 0) + \n                   (scrapedContent.headings?.h3?.length || 0),\n    \n    // Content analysis\n    main_content: scrapedContent.main_content || '',\n    content_length: (scrapedContent.main_content || '').length,\n    \n    // Images and media\n    total_images: scrapedContent.images?.length || 0,\n    images_with_alt: scrapedContent.images?.filter(img => img.alt && img.alt.trim() !== '').length || 0,\n    images_without_alt: scrapedContent.images?.filter(img => !img.alt || img.alt.trim() === '').length || 0,\n    \n    // Link analysis\n    internal_links: scrapedContent.links?.internal || [],\n    external_links: scrapedContent.links?.external || [],\n    total_internal_links: scrapedContent.links?.internal?.length || 0,\n    total_external_links: scrapedContent.links?.external?.length || 0,\n    \n    // Technical SEO\n    has_schema_markup: !!(scrapedContent.schema_markup && scrapedContent.schema_markup.trim() !== ''),\n    schema_markup: scrapedContent.schema_markup || '',\n    \n    // SEO metrics calculations\n    title_length: (scrapedContent.title || '').length,\n    meta_description_length: (scrapedContent.meta_description || '').length,\n    \n    // Keyword density preparation (for AI analysis)\n    content_for_analysis: [\n      scrapedContent.title || '',\n      scrapedContent.meta_description || '',\n      ...(scrapedContent.headings?.h1 || []),\n      ...(scrapedContent.headings?.h2 || []),\n      ...(scrapedContent.headings?.h3 || []),\n      scrapedContent.main_content || ''\n    ].join(' '),\n    \n    // Raw data for AI analysis\n    raw_scraped_data: scrapedContent,\n    \n    // Processing metadata\n    processed_at: new Date().toISOString(),\n    source_url: 'https://osly.ai'\n  };\n  \n  processedResults.push({\n    json: processedData\n  });\n}\n\nreturn processedResults;"
          },
          "typeVersion": 2
        },
        {
          "id": "ai-seo-analyzer",
          "name": "AI SEO Analyzer",
          "type": "@n8n/n8n-nodes-langchain.agent",
          "position": [
            608,
            0
          ],
          "parameters": {
            "text": "=You are an expert SEO analyst. Analyze the osly.ai landing page content and provide comprehensive SEO optimization recommendations.\n\nPage Data to Analyze:\n- Title: {{ $json.page_title }}\n- Meta Description: {{ $json.meta_description }}\n- Word Count: {{ $json.word_count }}\n- H1 Headings: {{ JSON.stringify($json.h1_headings) }}\n- H2 Headings: {{ JSON.stringify($json.h2_headings) }}\n- H3 Headings: {{ JSON.stringify($json.h3_headings) }}\n- Content: {{ $json.main_content.substring(0, 2000) }}...\n- Images: {{ $json.total_images }} total, {{ $json.images_with_alt }} with alt text\n- Links: {{ $json.total_internal_links }} internal, {{ $json.total_external_links }} external\n- Schema Markup: {{ $json.has_schema_markup ? 'Present' : 'Missing' }}\n\nProvide a comprehensive SEO analysis with:\n1. Current SEO score (1-100)\n2. Critical issues that need immediate attention\n3. Technical SEO recommendations\n4. Content optimization suggestions\n5. Keyword strategy recommendations\n6. Meta tag improvements\n7. Heading structure optimization\n8. Image optimization recommendations\n9. Internal linking suggestions\n10. Schema markup recommendations\n11. Page speed and performance suggestions\n12. Mobile optimization recommendations\n13. Specific action items with priority levels (High/Medium/Low)\n14. Expected impact of each recommendation\n\nUse current SEO best practices and search for the latest SEO trends and algorithm updates to ensure recommendations are up-to-date.",
            "options": {
              "maxIterations": 5,
              "systemMessage": "Be efficient with tool usage. For multiple research needs, use comprehensive batch searches instead of individual calls. Limit to maximum 5-7 tool calls total. CRITICAL: Before responding, validate your output meets ALL specified requirements including exact counts, complete data processing, and format compliance. Self-correct any deficiencies."
            },
            "promptType": "define",
            "hasOutputParser": true
          },
          "typeVersion": 1.6
        },
        {
          "id": "anthropic-chat-model",
          "name": "Anthropic Chat Model",
          "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
          "position": [
            608,
            208
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "claude-sonnet-4-20250514",
              "cachedResultName": "Claude Sonnet 4"
            },
            "options": {}
          },
          "credentials": {
            "anthropicApi": {
              "id": "tlmNGkJzhPkMJDcU",
              "name": "Claude API (System)"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "perplexity-search",
          "name": "Perplexity Search",
          "type": "n8n-nodes-base.perplexityTool",
          "position": [
            800,
            304
          ],
          "parameters": {
            "model": "sonar",
            "options": {},
            "messages": {
              "message": [
                {
                  "content": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('message0_Text', ``, 'string') }}"
                }
              ]
            },
            "requestOptions": {}
          },
          "credentials": {
            "perplexityApi": {
              "id": "7kE9bq9i7tz9LOQi",
              "name": "Perplexity API (System)"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "structured-output-parser",
          "name": "Structured Output Parser",
          "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
          "position": [
            800,
            112
          ],
          "parameters": {
            "autoFix": true,
            "jsonSchemaExample": "{\n  \"seo_score\": 75,\n  \"critical_issues\": [\n    \"Missing H1 tag\",\n    \"Meta description too short\",\n    \"No schema markup\"\n  ],\n  \"technical_seo\": {\n    \"title_optimization\": \"Optimize title length to 50-60 characters\",\n    \"meta_description\": \"Expand meta description to 150-160 characters\",\n    \"heading_structure\": \"Add proper H1 tag and improve heading hierarchy\",\n    \"schema_markup\": \"Implement Organization and WebSite schema\"\n  },\n  \"content_optimization\": {\n    \"keyword_strategy\": \"Focus on 'AI automation', 'workflow automation', 'business automation'\",\n    \"content_length\": \"Increase content to 1500+ words for better ranking\",\n    \"readability\": \"Improve content structure with bullet points and subheadings\"\n  },\n  \"image_optimization\": {\n    \"alt_text_missing\": 3,\n    \"recommendations\": \"Add descriptive alt text to all images\"\n  },\n  \"link_optimization\": {\n    \"internal_linking\": \"Add more internal links to key pages\",\n    \"external_links\": \"Include authoritative external references\"\n  },\n  \"action_items\": [\n    {\n      \"task\": \"Add proper H1 tag\",\n      \"priority\": \"High\",\n      \"impact\": \"Significant improvement in search rankings\",\n      \"effort\": \"Low\"\n    }\n  ],\n  \"expected_improvements\": {\n    \"seo_score_increase\": 15,\n    \"ranking_potential\": \"20-30% improvement in search visibility\",\n    \"timeline\": \"2-4 weeks for implementation, 4-8 weeks to see results\"\n  }\n}"
          },
          "typeVersion": 1.3
        },
        {
          "id": "anthropic-chat-model1",
          "name": "Anthropic Chat Model1",
          "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
          "position": [
            800,
            400
          ],
          "parameters": {
            "model": {
              "__rl": true,
              "mode": "list",
              "value": "claude-sonnet-4-20250514",
              "cachedResultName": "Claude Sonnet 4"
            },
            "options": {}
          },
          "credentials": {
            "anthropicApi": {
              "id": "tlmNGkJzhPkMJDcU",
              "name": "Claude API (System)"
            }
          },
          "typeVersion": 1.3
        },
        {
          "id": "format-seo-report",
          "name": "Format SEO Report",
          "type": "n8n-nodes-base.code",
          "position": [
            1008,
            0
          ],
          "parameters": {
            "jsCode": "// Format the SEO analysis into a comprehensive report\nconst items = $input.all();\nconst formattedReports = [];\n\nfor (const item of items) {\n  const seoData = item.json.output || item.json;\n  \n  // Create formatted SEO report\n  const report = {\n    // Executive Summary\n    executive_summary: {\n      current_seo_score: seoData.seo_score || 0,\n      overall_assessment: seoData.seo_score >= 80 ? 'Excellent' : \n                         seoData.seo_score >= 60 ? 'Good' : \n                         seoData.seo_score >= 40 ? 'Needs Improvement' : 'Poor',\n      critical_issues_count: (seoData.critical_issues || []).length,\n      priority_actions: (seoData.action_items || []).filter(item => item.priority === 'High').length\n    },\n    \n    // Detailed Analysis\n    analysis: {\n      technical_seo: seoData.technical_seo || {},\n      content_optimization: seoData.content_optimization || {},\n      image_optimization: seoData.image_optimization || {},\n      link_optimization: seoData.link_optimization || {}\n    },\n    \n    // Critical Issues\n    critical_issues: seoData.critical_issues || [],\n    \n    // Action Items by Priority\n    high_priority_actions: (seoData.action_items || []).filter(item => item.priority === 'High'),\n    medium_priority_actions: (seoData.action_items || []).filter(item => item.priority === 'Medium'),\n    low_priority_actions: (seoData.action_items || []).filter(item => item.priority === 'Low'),\n    \n    // Expected Improvements\n    expected_improvements: seoData.expected_improvements || {},\n    \n    // Report Metadata\n    report_generated: new Date().toISOString(),\n    website_analyzed: 'https://osly.ai',\n    analysis_type: 'Comprehensive SEO Audit',\n    \n    // Formatted Report Text\n    formatted_report: `# SEO Optimization Report for osly.ai\\n\\n## Executive Summary\\n- **Current SEO Score**: ${seoData.seo_score || 0}/100\\n- **Overall Assessment**: ${seoData.seo_score >= 80 ? 'Excellent' : seoData.seo_score >= 60 ? 'Good' : seoData.seo_score >= 40 ? 'Needs Improvement' : 'Poor'}\\n- **Critical Issues**: ${(seoData.critical_issues || []).length}\\n- **High Priority Actions**: ${(seoData.action_items || []).filter(item => item.priority === 'High').length}\\n\\n## Critical Issues\\n${(seoData.critical_issues || []).map(issue => `- ${issue}`).join('\\n')}\\n\\n## Technical SEO Recommendations\\n${Object.entries(seoData.technical_seo || {}).map(([key, value]) => `- **${key.replace(/_/g, ' ').toUpperCase()}**: ${value}`).join('\\n')}\\n\\n## Content Optimization\\n${Object.entries(seoData.content_optimization || {}).map(([key, value]) => `- **${key.replace(/_/g, ' ').toUpperCase()}**: ${value}`).join('\\n')}\\n\\n## High Priority Action Items\\n${(seoData.action_items || []).filter(item => item.priority === 'High').map(item => \n  `- **${item.task}**\\n  - Priority: ${item.priority}\\n  - Impact: ${item.impact}\\n  - Effort: ${item.effort}\\n`\n).join('\\n')}\\n\\n## Expected Improvements\\n- **SEO Score Increase**: +${seoData.expected_improvements?.seo_score_increase || 0} points\\n- **Ranking Potential**: ${seoData.expected_improvements?.ranking_potential || 'Not specified'}\\n- **Timeline**: ${seoData.expected_improvements?.timeline || 'Not specified'}\\n\\n---\\n*Report generated on ${new Date().toLocaleDateString()} at ${new Date().toLocaleTimeString()}*`,\n    \n    // Raw analysis data\n    raw_analysis: seoData\n  };\n  \n  formattedReports.push({\n    json: report\n  });\n}\n\nreturn formattedReports;"
          },
          "typeVersion": 2
        },
        {
          "id": "create-seo-document",
          "name": "Create SEO Report Document",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            1200,
            0
          ],
          "parameters": {
            "url": "https://docs.googleapis.com/v1/documents",
            "method": "POST",
            "options": {
              "response": {
                "response": {
                  "responseFormat": "json"
                }
              }
            },
            "jsonBody": "={\n  \"title\": \"SEO Optimization Report - osly.ai - {{ new Date().toLocaleDateString() }}\"\n}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "genericCredentialType",
            "genericAuthType": "httpHeaderAuth",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "credentials": {
            "httpHeaderAuth": {
              "id": "Wnx2GQlOBFByUM5I",
              "name": "Google Docs (Pipedream) - m8XDOmnvwecoLW16j6Mgd9rKdP82"
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "merge-report-data",
          "name": "Merge Report Data",
          "type": "n8n-nodes-base.merge",
          "position": [
            1408,
            0
          ],
          "parameters": {
            "mode": "combine",
            "options": {},
            "combineBy": "combineByPosition"
          },
          "typeVersion": 3.2
        },
        {
          "id": "combine-data",
          "name": "Combine Data",
          "type": "n8n-nodes-base.set",
          "position": [
            1600,
            0
          ],
          "parameters": {
            "include": "selected",
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "document-id-field",
                  "name": "documentId",
                  "type": "string",
                  "value": "={{ $input.item.json.documentId }}"
                },
                {
                  "id": "formatted-report-field",
                  "name": "formatted_report",
                  "type": "string",
                  "value": "={{ $input.item.json.formatted_report }}"
                },
                {
                  "id": "seo-score-field",
                  "name": "seo_score",
                  "type": "number",
                  "value": "={{ $input.item.json.executive_summary.current_seo_score }}"
                },
                {
                  "id": "critical-issues-field",
                  "name": "critical_issues_count",
                  "type": "number",
                  "value": "={{ $input.item.json.executive_summary.critical_issues_count }}"
                }
              ]
            },
            "includeOtherFields": true
          },
          "typeVersion": 3.4
        },
        {
          "id": "add-content-to-document",
          "name": "Add Content to Document",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            1808,
            0
          ],
          "parameters": {
            "url": "=https://docs.googleapis.com/v1/documents/{{ $json.documentId }}:batchUpdate",
            "method": "POST",
            "options": {
              "response": {
                "response": {
                  "responseFormat": "json"
                }
              }
            },
            "jsonBody": "={\n  \"requests\": [\n    {\n      \"insertText\": {\n        \"location\": {\n          \"index\": 1\n        },\n        \"text\": {{ JSON.stringify($json.formatted_report) }}\n      }\n    }\n  ]\n}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "genericCredentialType",
            "genericAuthType": "httpHeaderAuth",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "credentials": {
            "httpHeaderAuth": {
              "id": "Wnx2GQlOBFByUM5I",
              "name": "Google Docs (Pipedream) - m8XDOmnvwecoLW16j6Mgd9rKdP82"
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "save-to-sheets",
          "name": "Save Summary to Google Sheets",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            2000,
            0
          ],
          "parameters": {
            "url": "https://sheets.googleapis.com/v4/spreadsheets/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/values/SEO_Reports!A:F:append?valueInputOption=USER_ENTERED",
            "method": "POST",
            "options": {
              "response": {
                "response": {
                  "responseFormat": "json"
                }
              }
            },
            "jsonBody": "={\n  \"values\": [\n    [\n      \"{{ new Date().toLocaleDateString() }}\",\n      \"osly.ai\",\n      {{ $json.seo_score }},\n      {{ $json.critical_issues_count }},\n      \"{{ $json.documentId }}\",\n      \"SEO Optimization Report Generated\"\n    ]\n  ]\n}",
            "sendBody": true,
            "sendHeaders": true,
            "specifyBody": "json",
            "authentication": "genericCredentialType",
            "genericAuthType": "httpHeaderAuth",
            "headerParameters": {
              "parameters": [
                {
                  "name": "Content-Type",
                  "value": "application/json"
                }
              ]
            }
          },
          "credentials": {
            "httpHeaderAuth": {
              "id": "4GJG4qjI9qTMbJCp",
              "name": "Google Sheets (Pipedream) - m8XDOmnvwecoLW16j6Mgd9rKdP82"
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "success-response",
          "name": "Success Response",
          "type": "n8n-nodes-base.set",
          "position": [
            2208,
            0
          ],
          "parameters": {
            "options": {},
            "assignments": {
              "assignments": [
                {
                  "id": "success-field",
                  "name": "success",
                  "type": "boolean",
                  "value": true
                },
                {
                  "id": "message-field",
                  "name": "message",
                  "type": "string",
                  "value": "SEO optimization report generated successfully"
                },
                {
                  "id": "document-url-field",
                  "name": "document_url",
                  "type": "string",
                  "value": "=https://docs.google.com/document/d/{{ $json.documentId }}/edit"
                },
                {
                  "id": "seo-score-summary-field",
                  "name": "seo_score",
                  "type": "number",
                  "value": "={{ $json.seo_score }}"
                },
                {
                  "id": "critical-issues-summary-field",
                  "name": "critical_issues",
                  "type": "number",
                  "value": "={{ $json.critical_issues_count }}"
                },
                {
                  "id": "timestamp-field",
                  "name": "generated_at",
                  "type": "string",
                  "value": "={{ new Date().toISOString() }}"
                }
              ]
            }
          },
          "typeVersion": 3.4
        }
      ],
      "active": true,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "c1eeb7fa-36d3-4a03-845c-af07c8d82eb5",
      "connections": {
        "Combine Data": {
          "main": [
            [
              {
                "node": "Add Content to Document",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI SEO Analyzer": {
          "main": [
            [
              {
                "node": "Format SEO Report",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Webhook Trigger": {
          "main": [
            [
              {
                "node": "Scrape Landing Page Content",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Format SEO Report": {
          "main": [
            [
              {
                "node": "Create SEO Report Document",
                "type": "main",
                "index": 0
              },
              {
                "node": "Merge Report Data",
                "type": "main",
                "index": 1
              }
            ]
          ]
        },
        "Merge Report Data": {
          "main": [
            [
              {
                "node": "Combine Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Perplexity Search": {
          "ai_tool": [
            [
              {
                "node": "AI SEO Analyzer",
                "type": "ai_tool",
                "index": 0
              }
            ]
          ]
        },
        "Anthropic Chat Model": {
          "ai_languageModel": [
            [
              {
                "node": "AI SEO Analyzer",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Process Scraped Data": {
          "main": [
            [
              {
                "node": "AI SEO Analyzer",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Anthropic Chat Model1": {
          "ai_languageModel": [
            [
              {
                "node": "Structured Output Parser",
                "type": "ai_languageModel",
                "index": 0
              }
            ]
          ]
        },
        "Add Content to Document": {
          "main": [
            [
              {
                "node": "Save Summary to Google Sheets",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Structured Output Parser": {
          "ai_outputParser": [
            [
              {
                "node": "AI SEO Analyzer",
                "type": "ai_outputParser",
                "index": 0
              }
            ]
          ]
        },
        "Create SEO Report Document": {
          "main": [
            [
              {
                "node": "Merge Report Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Scrape Landing Page Content": {
          "main": [
            [
              {
                "node": "Process Scraped Data",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Save Summary to Google Sheets": {
          "main": [
            [
              {
                "node": "Success Response",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    }