{
  "name": "LinkedIn Post Assessment MVP",
  "nodes": [
    {
      "parameters": {
        "model": "llama-3.3-70b-versatile",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "typeVersion": 1,
      "position": [
        -224,
        176
      ],
      "id": "154f52e4-fd3a-41d4-9521-e7983aaf4edf",
      "name": "Groq Chat Model",
      "credentials": {
        "groqApi": {
          "id": "EwwLeY1ZtvK1sF5Z",
          "name": "Groq account"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $json.body.linkedinPost }}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "You are a LinkedIn content strategist analyzing posts for viral potential using the LinkedIn Viral Potential Framework.\n\nAnalyze the following LinkedIn post content:\n\nANALYSIS FRAMEWORK (100 points total):\n1. Hook Strength (0-20 points): Does the opening grab attention immediately?\n2. Value Proposition (0-25 points): Clear benefit/insight for the reader?\n3. Engagement Design (0-20 points): Elements that drive comments/discussions?\n4. Structure & Flow (0-15 points): Easy to scan and logical progression?\n5. Professional Authority (0-10 points): Demonstrates expertise authentically?\n6. CTA Effectiveness (0-10 points): Clear, specific action for readers?\n\nFor each category, provide:\n- Numerical score within the range\n- Brief analysis of strengths/weaknesses\n- 2-3 specific improvement recommendations\n\nAlso provide:\n- Overall score (sum of all categories)\n- Viral potential assessment (Low/Medium/High based on score)\n- Top 3 priority improvements\n- Overall strategic recommendation\n\nReturn analysis in valid JSON format only."
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.1,
      "position": [
        -112,
        -96
      ],
      "id": "b0255e79-0c35-4bad-8ea1-ffb1757b08aa",
      "name": "Linkedin Post Analyzer"
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "linkedin-analyzer",
        "responseMode": "responseNode",
        "options": {
          "allowedOrigins": "*"
        }
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        -368,
        -96
      ],
      "id": "4fb19fd8-4db9-4ec1-98a4-e716f767c315",
      "name": "Webhook",
      "webhookId": "199f63f9-ea75-4878-bd64-d97a0ee95e51"
    },
    {
      "parameters": {
        "jsonSchemaExample": "{\n  \"overall_score\": 85,\n  \"category_scores\": {\n    \"hook_strength\": {\n      \"score\": 18,\n      \"max_score\": 20,\n      \"analysis\": \"Strong opening question that stops scrolling\",\n      \"recommendations\": [\"Add specific statistic\", \"Make it more personal\"]\n    },\n    \"value_proposition\": {\n      \"score\": 20,\n      \"max_score\": 25,\n      \"analysis\": \"Clear actionable insights provided\",\n      \"recommendations\": [\"Include real example\", \"Add framework reference\"]\n    },\n    \"engagement_design\": {\n      \"score\": 15,\n      \"max_score\": 20,\n      \"analysis\": \"Good question at end, could be more specific\",\n      \"recommendations\": [\"Ask for specific experiences\", \"Create debate opportunity\"]\n    },\n    \"structure_flow\": {\n      \"score\": 12,\n      \"max_score\": 15,\n      \"analysis\": \"Easy to scan, good use of paragraphs\",\n      \"recommendations\": [\"Add bullet points\", \"Use more emojis\"]\n    },\n    \"professional_authority\": {\n      \"score\": 8,\n      \"max_score\": 10,\n      \"analysis\": \"Shows knowledge without being boastful\",\n      \"recommendations\": [\"Add personal experience\", \"Include data point\"]\n    },\n    \"cta_effectiveness\": {\n      \"score\": 7,\n      \"max_score\": 10,\n      \"analysis\": \"Generic call-to-action\",\n      \"recommendations\": [\"Be more specific\", \"Ask about particular scenario\"]\n    }\n  },\n  \"viral_potential\": \"High\",\n  \"top_3_improvements\": [\n    \"Add specific statistics to the hook\",\n    \"Make the call-to-action more targeted\",\n    \"Include a real-world example\"\n  ],\n  \"overall_recommendation\": \"Strong post with great structure. Focus on making the hook more data-driven and the CTA more specific to increase engagement.\"\n}"
      },
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "typeVersion": 1.3,
      "position": [
        64,
        112
      ],
      "id": "339e9437-7ada-444b-814f-81c27f7ba2b9",
      "name": "Structured Output Parser"
    },
    {
      "parameters": {
        "respondWith": "json",
        "responseBody": "={{ $json.output }}",
        "options": {}
      },
      "type": "n8n-nodes-base.respondToWebhook",
      "typeVersion": 1.4,
      "position": [
        240,
        -96
      ],
      "id": "a7264421-807e-42ea-895a-07c9c732aff2",
      "name": "Respond to Webhook"
    }
  ],
  "pinData": {},
  "connections": {
    "Groq Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Linkedin Post Analyzer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Linkedin Post Analyzer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Linkedin Post Analyzer",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Linkedin Post Analyzer": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "0da5dff3-74ef-4f22-9995-f2402274f89e",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "e922654752a2eeaa6c142edcf9c0d60284fb6077b41141b206f8a39acd41cdc0"
  },
  "id": "vNTS2p2xQsRWZlMw",
  "tags": []
}