{
  "name": "LinkedIn Engineering Teardown Content Flywheel",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 8 * * 2"
            }
          ]
        }
      },
      "id": "1",
      "name": "Weekly Schedule (Tuesday 8AM CST)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.1,
      "position": [
        200,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "const pillars = [\n  {\n    pillar: \"IaC & Zero ClickOps\",\n    topic: \"Why 100% Terraform IaC beats ClickOps in production microservices\",\n    keyPoints: \"State locking, GCP Cloud Run reproducible environments, eliminating manual console drift, automated CI/CD deployment pipelines.\"\n  },\n  {\n    pillar: \"Edge-to-Cloud Voice AI\",\n    topic: \"Acoustic noise isolation & real-time streaming audio in enterprise drive-thrus\",\n    keyPoints: \"Sub-250ms bi-directional streaming, IoT microphone arrays, surviving diesel engine noise, and edge-to-cloud POS integration.\"\n  },\n  {\n    pillar: \"Enterprise LLM Observability\",\n    topic: \"Day-1 LLM observability pipelines and preventing prompt drift before production\",\n    keyPoints: \"Langfuse trace telemetry, LLM-as-a-judge automated eval datasets, token cost tracking, and sub-10ms pgvector retrieval.\"\n  }\n];\n\nconst weekNumber = Math.floor((Date.now() / (1000 * 60 * 60 * 24 * 7))) % pillars.length;\nconst selectedPillar = pillars[weekNumber];\n\nreturn [{\n  json: {\n    ...selectedPillar,\n    generatedAt: new Date().toISOString()\n  }\n}];"
      },
      "id": "2",
      "name": "Topic Selector (3 Pillars)",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        420,
        300
      ]
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=Topic: {{$json.topic}}\nPillar: {{$json.pillar}}\nKey Architectural Points: {{$json.keyPoints}}\n\nWrite an executive-level LinkedIn technical teardown post. Follow these strict rules:\n- Tone: Authoritative, pragmatic, high-signal engineering leader (Gilberto Pina, Principal AI Infrastructure Architect).\n- Zero emojis, zero cringe hooks (no 'stop scrolling', no 'I am thrilled to share').\n- Start directly with the technical problem or architectural trade-off.\n- Use clean bullet formatting (\u2022) for key metrics and architectural decisions.\n- Reference concrete technologies (Terraform, GCP Cloud Run, Langfuse, gRPC, pgvector).\n- End with a thought-provoking architectural question for CTOs and Staff+ engineers.\n- Max length: 1500 characters."
      },
      "id": "3",
      "name": "LLM Post Generator",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.6,
      "position": [
        660,
        300
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o",
        "options": {
          "temperature": 0.7
        }
      },
      "id": "4",
      "name": "OpenAI / Claude / Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1,
      "position": [
        660,
        500
      ]
    },
    {
      "parameters": {
        "channel": "#linkedin-content-approvals",
        "text": "=\ud83d\ude80 *New Technical Teardown Draft Ready for Review*\n\n*Pillar:* {{$json.pillar}}\n*Topic:* {{$json.topic}}\n\n*Draft Copy:*\n---\n{{$json.output}}\n---\n\nApprove publication to LinkedIn?",
        "otherOptions": {}
      },
      "id": "5",
      "name": "Slack Human Review Gate",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.1,
      "position": [
        920,
        300
      ]
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "operation": "create",
        "author": "urn:li:person:YOUR_LINKEDIN_URN",
        "text": "={{$json.output}}",
        "visibility": "PUBLIC"
      },
      "id": "6",
      "name": "LinkedIn API Publisher",
      "type": "n8n-nodes-base.linkedIn",
      "typeVersion": 1,
      "position": [
        1160,
        300
      ]
    }
  ],
  "connections": {
    "Weekly Schedule (Tuesday 8AM CST)": {
      "main": [
        [
          {
            "node": "Topic Selector (3 Pillars)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Topic Selector (3 Pillars)": {
      "main": [
        [
          {
            "node": "LLM Post Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI / Claude / Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "LLM Post Generator",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "LLM Post Generator": {
      "main": [
        [
          {
            "node": "Slack Human Review Gate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Slack Human Review Gate": {
      "main": [
        [
          {
            "node": "LinkedIn API Publisher",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  }
}