{
  "name": "RSS to Social Auto-Poster \u2014 TurtleTools",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 6
            }
          ]
        }
      },
      "id": "schedule",
      "name": "Check Every 6 Hours",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "url": "https://blog.n8n.io/rss/",
        "options": {}
      },
      "id": "rss-read",
      "name": "Read RSS Feed",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1,
      "position": [
        440,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.pubDate }}",
              "operation": "isNotEmpty"
            }
          ]
        }
      },
      "id": "filter-new",
      "name": "Filter New Posts Only",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2,
      "position": [
        640,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://openrouter.ai/api/v1/chat/completions",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer YOUR_OPENROUTER_KEY"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "contentType": "raw",
        "body": "={\n  \"model\": \"anthropic/claude-sonnet-4-20250514\",\n  \"messages\": [\n    {\n      \"role\": \"system\",\n      \"content\": \"You are a social media expert. Given an article title and description, write a short, engaging tweet (under 280 characters) that adds your unique take or insight. Don't just summarize \u2014 add value. Include a relevant emoji. No hashtags.\"\n    },\n    {\n      \"role\": \"user\",\n      \"content\": \"Article: {{ $json.title }}\\n\\nDescription: {{ $json.contentSnippet }}\\n\\nLink: {{ $json.link }}\"\n    }\n  ],\n  \"max_tokens\": 200\n}",
        "specifyBody": "string"
      },
      "id": "ai-commentary",
      "name": "Generate AI Commentary",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        840,
        300
      ]
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "tweet",
              "name": "tweet",
              "value": "={{ $json.choices[0].message.content }}",
              "type": "string"
            }
          ]
        }
      },
      "id": "extract-tweet",
      "name": "Extract Tweet",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1040,
        300
      ]
    }
  ],
  "connections": {
    "Check Every 6 Hours": {
      "main": [
        [
          {
            "node": "Read RSS Feed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read RSS Feed": {
      "main": [
        [
          {
            "node": "Filter New Posts Only",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New Posts Only": {
      "main": [
        [
          {
            "node": "Generate AI Commentary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate AI Commentary": {
      "main": [
        [
          {
            "node": "Extract Tweet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "description": "Monitor any RSS feed for new content, generate AI commentary/summaries, and auto-post to social accounts. Includes duplicate detection.",
    "category": "Content",
    "difficulty": "beginner",
    "author": "TurtleTools"
  }
}