AutomationFlowsAI & RAG › Linkedin Auto Claude

Linkedin Auto Claude

LinkedIn auto Claude. Uses agent, lmChatGoogleGemini, notion, googleDocs. Webhook trigger; 8 nodes.

Webhook trigger★★★★☆ complexityAI-powered8 nodesAgentGoogle Gemini ChatNotionGoogle DocsStop And Error
AI & RAG Trigger: Webhook Nodes: 8 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the Agent → Google Docs 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
{
  "updatedAt": "2026-05-11T22:05:23.000Z",
  "createdAt": "2026-05-11T17:13:49.118Z",
  "id": "RHiufL0e6mCunYHx",
  "name": "LinkedIn auto Claude",
  "description": null,
  "active": false,
  "isArchived": true,
  "nodes": [
    {
      "parameters": {
        "promptType": "define",
        "text": "=Offre d'emploi : {{ $json.content }}",
        "hasOutputParser": true,
        "options": {
          "systemMessage": "=# Identity & Tone\nTu es l'assistant 'Jobby 2.0' de Julien. Ton ton est professionnel, encourageant et surtout d'une honn\u00eatet\u00e9 radicale. Tu ne survends pas le profil, tu observes les \"abysses\" (les \u00e9carts) avec pr\u00e9cision.\n\n# Purpose\nAnalyser le fit entre le CV de Julien (Ultra-Traileur, Solutions Engineer) et l'opportunit\u00e9 fournie.\n\n# Analysis Rules\n1. Be Honest: Donne un score de 1 \u00e0 10. Si le fit est mauvais, explique pourquoi sans d\u00e9tour.\n2. Strengths & Weaknesses: Identifie clairement ce qui matche et ce qui manque.\n3. \"CONTRAINTE DE TAILLE : Ton analyse doit \u00eatre extr\u00eamement concise. Vise 1500 caract\u00e8res maximum. Si tu d\u00e9passes, le syst\u00e8me rejettera ta r\u00e9ponse.\"\n\n# Output Format (STRICT JSON)\nR\u00e9ponds UNIQUEMENT par un objet JSON respectant ces cl\u00e9s pour Notion :\n{\n  \"domain\": \"Generative AI, Automation, Management, null\",\n  \"job_title\": \"string (Titre exact de l'offre)\",\n  \"category\": \"string (Posture du r\u00f4le, ex: Strategic Pre-sales)\",\n  \"company\": \"string\",\n  \"link\": \"string (URL de l'offre)\",\n  \"match_score\": 0,\n  \"status\": \"To review, Shortlisted, Applied, No response\",\n  \"quick_summary\": \"string (MAX 150 caract\u00e8res, catchy)\",\n  \"full_analysis\": \"string (Bullet points, max 1200 caract\u00e8res)\",\n  \"response_date\": \"YYYY-MM-DD\"\n}\n\n## CV de Julien \n{{ $json.content }}"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 3.1,
      "position": [
        336,
        144
      ],
      "id": "612bbf4b-8954-4b83-840f-c33cc7c2f51a",
      "name": "AI Agent",
      "onError": "continueErrorOutput"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "typeVersion": 1.1,
      "position": [
        336,
        352
      ],
      "id": "35f54581-9214-41c0-99ab-2ea9ca47b006",
      "name": "Google Gemini Chat Model",
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "jsCode": "// 1. R\u00e9cup\u00e9ration s\u00e9curis\u00e9e (Webhook ou fallback)\nconst body = $json.body || {};\nconst fallbackUrl = body.job_url || \"N/A\";\nconst text = $json.output || \"\"; // L'output qui vient de Gemini\n\n// 2. Extraction du bloc JSON\nconst regex = /\\{[\\s\\S]*\\}/;\nconst match = text.match(regex);\n\nif (match) {\n  try {\n    const data = JSON.parse(match);\n\n    // 3. Transformation en Tableaux de cha\u00eenes [ \"A\", \"B\" ]\n    const toSimpleArray = (val) => {\n      if (!val) return [];\n      let rawItems = Array.isArray(val) ? val : val.toString().split(/[|,\\/&]|\\band\\b/);\n      return rawItems.map(i => i.trim()).filter(i => i.length > 1);\n    };\n\n    // 4. Reconstruction de l'objet pour Notion\n    return {\n      domain: toSimpleArray(data.domain || data.Domain),\n      category: toSimpleArray(data.category || data.Category),\n      job_title: data.job_title || body.job_title || \"Unknown Position\",\n      company: data.company || body.company || \"Unknown Company\",\n      link: data.link || data.url || fallbackUrl,\n      score: parseInt(data.match_score) || 0,\n      status: data.status || \"To review\",\n      summary: data.quick_summary || \"Analysis ready\",\n      analysis: (data.full_analysis || \"\").substring(0, 1900)\n    };\n\n  } catch (e) {\n    return { error: \"JSON Parsing Error\", message: e.message, raw: text.substring(0, 100) };\n  }\n}\n\nreturn { error: \"No JSON found in AI output\" };"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        688,
        0
      ],
      "id": "dcc2707a-59e7-4e7c-9bc7-080a78cd5924",
      "name": "Code in JavaScript",
      "onError": "continueErrorOutput"
    },
    {
      "parameters": {
        "resource": "databasePage",
        "databaseId": {
          "__rl": true,
          "value": "127bad1f-b25a-4b6b-8eec-7b342e3aa504",
          "mode": "list",
          "cachedResultName": "Linked Detector",
          "cachedResultUrl": "https://www.notion.so/127bad1fb25a4b6b8eec7b342e3aa504"
        },
        "title": "LinkedIn Detector",
        "simple": false,
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "Job Title|title",
              "title": "={{ $json.job_title }}"
            },
            {
              "key": "category|multi_select",
              "multiSelectValue": "={{ $json.category }}"
            },
            {
              "key": "URL|url",
              "urlValue": "={{ $json.link }}"
            },
            {
              "key": "Match Score|number",
              "numberValue": "={{ $json.score }}"
            },
            {
              "key": "Status|status",
              "statusValue": "={{ $json.status }}"
            },
            {
              "key": "Company|select",
              "selectValue": "={{ $json.company }}"
            },
            {
              "key": "domain|multi_select",
              "multiSelectValue": "={{ $json.domain }}"
            },
            {
              "key": "analysis|rich_text",
              "textContent": "={{ $json.analysis }}"
            }
          ]
        },
        "blockUi": {
          "blockValues": [
            {
              "type": "heading_1",
              "textContent": "Analyse compl\u00e8te"
            },
            {
              "textContent": "={{ $json.analysis }}"
            }
          ]
        },
        "options": {
          "iconType": "emoji",
          "icon": "\ud83c\udd95"
        }
      },
      "type": "n8n-nodes-base.notion",
      "typeVersion": 2.2,
      "position": [
        1008,
        -16
      ],
      "id": "82beaf40-e678-48a3-97e2-a5b596d3fe09",
      "name": "Create a database page",
      "retryOnFail": false,
      "executeOnce": false,
      "credentials": {
        "notionApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "authentication": "serviceAccount",
        "operation": "get",
        "documentURL": "1_Gri6268rXvHDK__MVqT_3f7vlSR5OLEWqOJpaFwrPs"
      },
      "type": "n8n-nodes-base.googleDocs",
      "typeVersion": 2,
      "position": [
        112,
        144
      ],
      "id": "f5bc94b4-b204-4318-bcf1-69bbf2d5b59b",
      "name": "Get a document",
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "errorMessage": "={{ $('AI Agent').item.json.error }}"
      },
      "type": "n8n-nodes-base.stopAndError",
      "typeVersion": 1,
      "position": [
        1040,
        384
      ],
      "id": "5f0179f4-ea83-40dc-86f1-80fa832a6c04",
      "name": "Stop and Error"
    },
    {
      "parameters": {
        "source": "parameter",
        "workflowJson": "=\n{{\nJSON.stringify({\n  \"workflow_name\": \"LinkedIn Auto\",\n  \"node_name\": $nodeName,\n  \"error_message\": $json.error?.message || $json.message || \"Erreur inconnue\",\n  \"timestamp\": $now.format('HH:mm:ss'),\n  \"raw_data\": JSON.stringify($json)\n})\n}}\n\n",
        "options": {
          "waitForSubWorkflow": false
        }
      },
      "type": "n8n-nodes-base.executeWorkflow",
      "typeVersion": 1.3,
      "position": [
        1200,
        176
      ],
      "id": "9e913868-c303-4591-a5ec-2b91a029fd11",
      "name": "Notion logger"
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "b5b6f70f-9a52-4430-952c-63ac4f1c4d26",
        "options": {
          "responseData": "{\"status\": \"processing\"}"
        }
      },
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2.1,
      "position": [
        -208,
        144
      ],
      "id": "625afc4f-913f-49ad-9470-7dac4a9ab14c",
      "name": "Webhook"
    }
  ],
  "connections": {
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Create a database page",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Get a document": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a database page": {
      "main": [
        [],
        []
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Get a document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate",
    "timeSavedMode": "fixed",
    "timezone": "Europe/Paris",
    "callerPolicy": "workflowsFromSameOwner",
    "availableInMCP": false
  },
  "staticData": null,
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "df36cc3f-dd3f-45cd-befc-e60138a35291",
  "activeVersionId": null,
  "versionCounter": 2,
  "triggerCount": 0,
  "shared": [
    {
      "updatedAt": "2026-05-11T17:13:49.120Z",
      "createdAt": "2026-05-11T17:13:49.120Z",
      "role": "workflow:owner",
      "workflowId": "RHiufL0e6mCunYHx",
      "projectId": "GfFdmZTqGEJQkrXG",
      "project": {
        "updatedAt": "2026-05-11T09:44:44.757Z",
        "createdAt": "2026-05-11T09:34:45.695Z",
        "id": "GfFdmZTqGEJQkrXG",
        "name": "\u00c9ole Wind <megazef@gmail.com>",
        "type": "personal",
        "icon": null,
        "description": null,
        "creatorId": "2792484d-cba3-4156-adba-fbc49134eb55"
      }
    }
  ],
  "tags": [],
  "activeVersion": null
}

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

LinkedIn auto Claude. Uses agent, lmChatGoogleGemini, notion, googleDocs. Webhook trigger; 8 nodes.

Source: https://github.com/gnueole/jobby-md2html/blob/main/n8n/linkedin-auto-claude.json — 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

LinkedIn auto - old (GDocs). Uses agent, lmChatGoogleGemini, notion, stopAndError. Webhook trigger; 8 nodes.

Agent, Google Gemini Chat, Notion +3
AI & RAG

Jobby - LinkedIn 2 Notion. Uses agent, lmChatGoogleGemini, lmChatAnthropic, notion. Webhook trigger; 10 nodes.

Agent, Google Gemini Chat, Anthropic Chat +2
AI & RAG

Are you drowning in daily operational chaos, desperately trying to juggle sales, projects, content, and client communication? Imagine an AI brain that handles it all, freeing you to lead your business

Telegram Trigger, Telegram, OpenAI +13
AI & RAG

Resume Screening & Behavioral Interviews with Gemini, Elevenlabs, & Notion ATS copy. Uses outputParserStructured, chainLlm, googleDrive, stickyNote. Webhook trigger; 67 nodes.

Output Parser Structured, Chain Llm, Google Drive +9
AI & RAG

Candidate Engagement | Resume Screening | AI Voice Interviews | Applicant Insights

Output Parser Structured, Chain Llm, Google Drive +9