AutomationFlowsAI & RAG › Generate Linkedin Posts From Books Using Openai, Langchain & Pinecone Vector…

Generate Linkedin Posts From Books Using Openai, Langchain & Pinecone Vector…

Original n8n title: Generate Linkedin Posts From Books Using Openai, Langchain & Pinecone Vector Search

ByMohamed Abdelwahab @mohelwah on n8n.io

Automates the process of generating, storing, and publishing engaging LinkedIn posts derived from books (PDFs) using AI and vector search.

Event trigger★★★★☆ complexityAI-powered28 nodesGoogle Drive TriggerGoogle DrivePinecone Vector StoreOpenAI EmbeddingsDocument Default Data LoaderText Splitter Recursive Character Text SplitterOpenAI ChatAgent
AI & RAG Trigger: Event Nodes: 28 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #6198 — we link there as the canonical source.

This workflow follows the Agent → Documentdefaultdataloader recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "c5564b62-cb1a-411f-939c-8af48dfb869b",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -720,
        -60
      ],
      "parameters": {
        "event": "fileUpdated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": "1x24Xr6wl3INqGv68UbFIVVqkKybnZeDf",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1x24Xr6wl3INqGv68UbFIVVqkKybnZeDf",
          "cachedResultName": "LinkedinPosts"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8693798c-2ea1-42a1-ad54-969f0c7f6b80",
      "name": "DownLoadPdf",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -500,
        -60
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "8f6e9d62-81f2-4af6-bb7e-db0d55a22746",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -280,
        -60
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1
    },
    {
      "id": "2572379c-53c8-4a63-a186-6ebda279625a",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        -44,
        -60
      ],
      "parameters": {
        "mode": "insert",
        "options": {
          "pineconeNamespace": "={{ $('DownLoadPdf').item.json.name }}"
        },
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "linkdenpost-new",
          "cachedResultName": "linkdenpost-new"
        }
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "feba6430-268c-46ca-acb0-4da564e1fec3",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        -60,
        160
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5839fa14-2ad2-41fd-b3f1-33456e1ced2b",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        60,
        162.5
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "ab6e2848-1d74-4551-932b-86f863bd294c",
      "name": "Recursive Character Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        148,
        360
      ],
      "parameters": {
        "options": {},
        "chunkOverlap": 10
      },
      "typeVersion": 1
    },
    {
      "id": "eeb1ee57-e796-466c-99a8-ead7c4ec59cc",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        460,
        200
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "10ecc832-7ea2-4d72-b8d4-9090ea67e33b",
      "name": "LinkedIn Post Idea Generation",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        500,
        -60
      ],
      "parameters": {
        "text": "=Name of the book:  {{ $('Google Drive Trigger').item.json.originalFilename }}",
        "options": {
          "maxIterations": 3,
          "systemMessage": "=## \ud83d\udd0d Prompt Template for LinkedIn Post Idea Generation from Vector Database\n\n### \ud83e\udde0 Role:\nYou are a creative content strategist skilled in summarizing and ideating social media content from book materials.\n\n### \ud83c\udfaf Objective:\nSearch a Pinecone vector database that contains the contents of a book (PDF format) and generate insightful, engaging, and thought-provoking ideas that can be used for LinkedIn posts.\n\n### \ud83e\uddf1 Input Instructions (in natural language):\n\"\"\"\nYou are connected to a Pinecone vector database storing chunked embeddings of a specific book in PDF format.\n\nYour task is to:\n1. Search the database for relevant information based on the book's core themes.\n2. Extract key concepts, frameworks, quotes, case studies, or storytelling examples.\n3. Generate creative, scroll-stopping ideas for LinkedIn posts, based on those concepts.\nEach post idea should include:\n- A hook (to grab attention)\n- A summary or insight\n- A CTA (call to action) like \"What do you think?\" or \"Agree or disagree?\"\n\nFocus on originality, depth, and value for a professional LinkedIn audience.\n\"\"\"\n\n### \ud83d\udee0\ufe0f Prompt for Retrieval-Augmented Generation:\nYou are a content generation assistant connected to a Pinecone vector database storing the contents of a book. Based on the query:\n\n**\"Generate 5 LinkedIn post ideas inspired by the core lessons of this book.\"**\n\nDo the following:\n1. Search the database to extract the most meaningful and representative segments from the book (such as principles, frameworks, quotes, etc.).\n2. For each segment found, craft a short-form post idea formatted like this:\n\n#### \ud83d\udccc LinkedIn Post Idea:\n- **Hook:** [A provocative or curiosity-based question or statement]\n- **Insight:** [Summarize the book\u2019s concept in <100 words]\n- **CTA:** [e.g., \u201cHow would you apply this idea at work?\u201d]\n\nMake the tone authentic, concise, and valuable to professionals.\n\n### \u2705 Constraints:\n- Output exactly 5 post ideas\n- Do not repeat concepts\n- Write in English\n- Assume the book is about [insert rough topic if known, e.g., \"leadership\", \"creativity\", \"AI ethics\"]\n\n### \ud83d\uddc2\ufe0f Output format:\n```markdown\n### \ud83d\udccc LinkedIn Post Idea 1:\n- **Hook:** ...\n- **Insight:** ...\n- **CTA:** ...\n\n## \ud83d\udd0d Prompt Template for LinkedIn Post Idea Generation from Vector Database\n\n### \ud83e\udde0 Role:\nYou are a creative content strategist skilled in summarizing and ideating social media content from book materials.\n\n### \ud83c\udfaf Objective:\nSearch a Pinecone vector database that contains the contents of a book (PDF format) and generate insightful, engaging, and thought-provoking ideas that can be used for LinkedIn posts.\n\n### \ud83e\uddf1 Input Instructions (in natural language):\n\"\"\"\nYou are connected to a Pinecone vector database storing chunked embeddings of a specific book in PDF format.\n\nYour task is to:\n1. Search the database for relevant information based on the book's core themes.\n2. Extract key concepts, frameworks, quotes, case studies, or storytelling examples.\n3. Generate creative, scroll-stopping ideas for LinkedIn posts, based on those concepts.\nEach post idea should include:\n- A hook (to grab attention)\n- A summary or insight\n- A CTA (call to action) like \"What do you think?\" or \"Agree or disagree?\"\n\nFocus on originality, depth, and value for a professional LinkedIn audience.\n\"\"\"\n\n### \ud83d\udee0\ufe0f Prompt for Retrieval-Augmented Generation:\nYou are a content generation assistant connected to a Pinecone vector database storing the contents of a book. Based on the query:\n\n**\"Generate 5 LinkedIn post ideas inspired by the core lessons of this book.\"**\n\nDo the following:\n1. Search the database to extract the most meaningful and representative segments from the book (such as principles, frameworks, quotes, etc.).\n2. For each segment found, craft a short-form post idea formatted like this:\n\n#### \ud83d\udccc LinkedIn Post Idea:\n- **Hook:** [A provocative or curiosity-based question or statement]\n- **Insight:** [Summarize the book\u2019s concept in <100 words]\n- **CTA:** [e.g., \u201cHow would you apply this idea at work?\u201d]\n\nMake the tone authentic, concise, and valuable to professionals.\n\n### \u2705 Constraints:\n- Output exactly 5 post ideas\n- Do not repeat concepts\n- Write in English\n- Assume the book is about [insert rough topic if known, e.g., \"leadership\", \"creativity\", \"AI ethics\"]\n\n### \ud83d\uddc2\ufe0f Output format:\nshould be json object\n```josn\n[\n{\n  \"Hook\":\"...\",\n  \"Insight\":\"...\",\n  \"CTA\":\"...\"\n},\n...\n]"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2,
      "alwaysOutputData": true
    },
    {
      "id": "9627a7ae-91dc-42ac-9247-6159de14ecf0",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        620,
        380
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "caad7149-d874-4bb9-950a-2528e088589a",
      "name": "Pinecorn Vector Store-book",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        540,
        220
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "options": {
          "pineconeNamespace": "=ISO-IEC-17025-2017-IAS.pdf"
        },
        "toolName": "linkedinpostnew",
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "linkdenpost-new",
          "cachedResultName": "linkdenpost-new"
        },
        "toolDescription": "extract information from this data "
      },
      "credentials": {
        "pineconeApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "720a075c-335d-40ef-973c-42975ece0cb7",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        480,
        400
      ],
      "parameters": {
        "sessionKey": "={{ 111 }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "0658be74-94bd-479b-be5e-9971c02b41d9",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        820,
        400
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n    \"type\": \"array\",\n    \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n            \"Hook\": {\n                \"type\": \"string\"\n            },\n            \"Insight\": {\n                \"type\": \"string\"\n            },\n            \"CTA\": {\n                \"type\": \"string\"\n            }\n        }\n    }\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "2d9610a6-908f-4a0b-a554-67525d245881",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1080,
        -60
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "output"
      },
      "typeVersion": 1
    },
    {
      "id": "02cd3b55-4ab1-41e0-9b33-1930f1387e80",
      "name": "GeneratePostContent",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        1280,
        -60
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Hook:  {{ $json.Hook }}.\nInsight: {{ $json.Insight }}.\nCTA: {{ $json.CTA }}"
            },
            {
              "content": "=## \ud83e\udde0 Prompt Template: LinkedIn Post Generation for Content Promotion\n\n**Role**: You are a social media content manager and professional blogger.\n\n**Task**: Generate a professional and engaging LinkedIn post (max. 600 characters) to promote a provided article or post.  \nThe LinkedIn post should reflect the original content\u2019s hook, insight, and call to action (CTA).\n\n**Context**: The promoted content includes a clear hook, a key insight, and a CTA. Your job is to craft a concise teaser that encourages users to click and read.\n\n**Goal**: Entice readers to engage with the post and drive clicks.\n\n**Constraints**:\n- Must be **600 characters or fewer**, including emojis/symbols.\n- Use **emojis or symbols** to draw attention.\n- Include **up to 3 relevant hashtags**.\n- Must remain **professional and LinkedIn-appropriate**.\n\n**Style**: Professional, crisp, curiosity-driven. Must match the tone of LinkedIn.\n\n**Output Format**:  \nOnly return the final LinkedIn post, as a single-line string.\n\n---\n\n### \ud83e\uddea Sample Output\n\n\ud83d\ude80 Discover how [Topic] will reshape your strategy in 2025! A must-read for forward-thinking leaders \ud83d\udc47  \n#Leadership #FutureOfWork #Innovation\n"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "89dddf6b-d685-4e06-a7c8-2c24d0f0e8c7",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -100,
        880
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5fb8a3b0-6d02-45c7-a34d-5f812ddaeb14",
      "name": "Limit",
      "type": "n8n-nodes-base.limit",
      "position": [
        340,
        880
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "31c99c5d-f160-480d-862e-9c8d221ed9d9",
      "name": "LinkedIn",
      "type": "n8n-nodes-base.linkedIn",
      "position": [
        560,
        880
      ],
      "parameters": {
        "text": "={{ $json.postContent }}",
        "person": "nSBpG_FGY1",
        "additionalFields": {}
      },
      "credentials": {
        "linkedInOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b8239317-4715-45d0-929f-1774db8c287a",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        780,
        880
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "54e66fd4-a681-404d-a033-007ab7de6946",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.urn }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "abe21ced-bbd6-4a70-9171-ec337ebbb6d2",
      "name": "linkedInPostsContent",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1640,
        -60
      ],
      "parameters": {
        "columns": {
          "value": {
            "cta": "={{ $('Split Out').item.json.CTA }}",
            "hook": "={{ $('Split Out').item.json.Hook }}",
            "insight": "={{ $('Split Out').item.json.Insight }}",
            "bookname": "={{ $('Google Drive Trigger').item.json.originalFilename }}",
            "published": "no",
            "postContent": "={{ $json.message.content }}"
          },
          "schema": [
            {
              "id": "bookname",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "bookname",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "hook",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "hook",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "insight",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "insight",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cta",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "cta",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "postContent",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "postContent",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "published",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "bookname"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc/edit#gid=0",
          "cachedResultName": "posts"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc/edit?usp=drivesdk",
          "cachedResultName": "linkedInPostsContent"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "91649aa8-6fbb-4a96-8df1-459e2f02897d",
      "name": "linkedInPostsContent1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        120,
        880
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "no",
              "lookupColumn": "published"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc/edit#gid=0",
          "cachedResultName": "posts"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc/edit?usp=drivesdk",
          "cachedResultName": "linkedInPostsContent"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "66a8527c-1715-4f91-adcd-60cd8d1af5fd",
      "name": "linkedInPostsContent2",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1000,
        780
      ],
      "parameters": {
        "columns": {
          "value": {
            "date": "={{$now}}",
            "published": "yes",
            "row_number": "={{ $('linkedInPostsContent1').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "bookname",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "bookname",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "hook",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "hook",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "insight",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "insight",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "cta",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "cta",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "postContent",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "postContent",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "published",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc/edit#gid=0",
          "cachedResultName": "posts"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ZqO8N0nrI529TimXaH7RZHJmQgdi86feyolN1tTlQmc/edit?usp=drivesdk",
          "cachedResultName": "linkedInPostsContent"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "cd69ab98-967e-49dd-b536-7486775740e7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -420,
        720
      ],
      "parameters": {
        "width": 1860,
        "height": 420,
        "content": "# Post linkedin Daily"
      },
      "typeVersion": 1
    },
    {
      "id": "40652820-476b-4e3f-a76a-81e76addc2e4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -180
      ],
      "parameters": {
        "height": 340,
        "content": "## Trigger when book uploaded\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6c5eb7d8-b799-4858-a571-b949bcc4ba19",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -200
      ],
      "parameters": {
        "width": 500,
        "height": 720,
        "content": "## Generate the vector database of the book\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8880925e-3b19-4c4d-8cb9-8be314e7bfb0",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -200
      ],
      "parameters": {
        "width": 500,
        "height": 720,
        "content": "## Generate post Ideas\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ccb35a74-6e6e-4dbc-8372-8a4f738b6aec",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        -200
      ],
      "parameters": {
        "width": 740,
        "height": 720,
        "content": "## Generate post content\n## Update the linkedin post sheet\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5a363ea1-0756-4a01-97dc-20834bc2d326",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        320,
        -60
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "metadata"
            }
          ]
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "linkedInPostsContent2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit": {
      "main": [
        [
          {
            "node": "LinkedIn",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "LinkedIn Post Idea Generation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "GeneratePostContent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "DownLoadPdf": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "LinkedIn Post Idea Generation",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "linkedInPostsContent1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "LinkedIn Post Idea Generation",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Pinecorn Vector Store-book",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "GeneratePostContent": {
      "main": [
        [
          {
            "node": "linkedInPostsContent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger": {
      "main": [
        [
          {
            "node": "DownLoadPdf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "linkedInPostsContent1": {
      "main": [
        [
          {
            "node": "Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "LinkedIn Post Idea Generation",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Pinecorn Vector Store-book": {
      "ai_tool": [
        [
          {
            "node": "LinkedIn Post Idea Generation",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "LinkedIn Post Idea Generation": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automates the process of generating, storing, and publishing engaging LinkedIn posts derived from books (PDFs) using AI and vector search.

Source: https://n8n.io/workflows/6198/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Your AI workforce is ready. Are you?

Google Sheets Tool, Mcp Trigger, Google Drive +29
AI & RAG

This comprehensive workflow bundle is designed as a powerful starter kit, enabling you to build a multi-functional AI assistant on Telegram. It seamlessly integrates AI-powered voice interactions, an

Telegram Trigger, Telegram, OpenAI +19
AI & RAG

This advanced n8n workflow automates the full lead enrichment, qualification, and personalized outreach process tailored specifically for the B2B real estate sector. Integrating top platforms like Api

N8N Nodes Fillout, OpenAI Chat, Pinecone Vector Store +11
AI & RAG

This n8n template automatically classifies incoming emails (Sales, Support, Internal, Finance, Promotions) and routes them to a dedicated OpenAI LLM Agent for processing. Depending on the category, th

OpenAI, Gmail, Text Classifier +16
AI & RAG

Who is this for? This workflow is ideal for HR teams, startups, and enterprises that want to handle employee interactions through WhatsApp and automate responses using LLM (OpenAI) and intelligent rou

WhatsApp Trigger, OpenAI, OpenAI Chat +13