AutomationFlowsAI & RAG › Qualify Linkedin Leads and Draft Outreach with Airtable, Apify and Claude

Qualify Linkedin Leads and Draft Outreach with Airtable, Apify and Claude

ByAllan Vaccarizi @growthai on n8n.io

This workflow pulls unprocessed leads from Airtable, enriches them with LinkedIn profile, company, website, and post data via Apify and Firecrawl, qualifies each lead with Anthropic Claude, and drafts a 3-step outreach sequence plus phone enrichment via Lusha back into Airtable.…

Event trigger★★★★★ complexityAI-powered40 nodesAirtableHTTP Request@Mendable/N8N Nodes FirecrawlAgentAnthropic ChatOutput Parser Structured
AI & RAG Trigger: Event Nodes: 40 Complexity: ★★★★★ AI nodes: yes Added:

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

This workflow follows the Agent → Airtable 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
{
  "id": "p3ZFlBJNhokQfsre",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "TEMPLATE - Linkedin AI campaign setup",
  "tags": [
    {
      "id": "BjfxyNlzyY0POEDQ",
      "name": "Airtable",
      "createdAt": "2025-06-23T10:00:23.081Z",
      "updatedAt": "2025-06-23T10:00:23.081Z"
    },
    {
      "id": "Dlriu0xeaKHIH5tt",
      "name": "Anthropic",
      "createdAt": "2026-05-12T12:16:21.851Z",
      "updatedAt": "2026-05-12T12:16:21.851Z"
    },
    {
      "id": "WNzcVvChiTns58ad",
      "name": "Firecrawl",
      "createdAt": "2025-06-30T12:24:36.334Z",
      "updatedAt": "2025-06-30T12:24:36.334Z"
    },
    {
      "id": "cs24Xe4Sh1sNIdla",
      "name": "Apify",
      "createdAt": "2025-06-30T12:32:45.532Z",
      "updatedAt": "2025-06-30T12:32:45.532Z"
    },
    {
      "id": "rQ0XNJT6fCWftlwj",
      "name": "TEMPLATE",
      "createdAt": "2025-06-30T12:46:45.433Z",
      "updatedAt": "2025-06-30T12:46:45.433Z"
    }
  ],
  "nodes": [
    {
      "id": "f10da737-ffef-48a1-a614-90aede712228",
      "name": "Sticky Note13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -32
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "d7eb872e-0a8f-452b-8304-9f3972f8a5af",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -448
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0ff81d9e-62a1-4932-896d-cd5b9bd754b4",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        448
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5633bcc8-110e-43b9-81de-43a427d939e1",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        448
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "73abc3ad-0aca-4d11-a379-e5fec46fd53c",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        432
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "fe168792-06ae-4f80-bbe6-04e896bc0cb2",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        368
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "7ba39197-1bfe-4a92-83d5-1927d60cdf7f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1664,
        368
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "6832d84f-ac98-4a9a-b665-bdbdd7d16d59",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2112,
        448
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "53e2b70e-0919-4c76-bfb0-a8adc9294539",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2512,
        368
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "507baf19-c296-498f-862b-c3ed49875a66",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2784,
        448
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "81e3a5b6-0296-4bfc-a257-4dc7afade9bc",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3392,
        480
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "41dbeb87-a372-433c-a675-7c2f7d295157",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3904,
        464
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "be63ea27-5a03-41de-9f3f-948fcb4af4f6",
      "name": "Fetch Leads from Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        80,
        608
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 2.2
    },
    {
      "id": "ab1d8c0e-dc0c-453a-b13b-7c7bdce2d91a",
      "name": "Loop Over Leads",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        256,
        608
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "d3b1708d-93e4-4b15-be7d-7c27b8343c97",
      "name": "Fetch LinkedIn Profile Info",
      "type": "n8n-nodes-base.httpRequest",
      "maxTries": 5,
      "position": [
        480,
        608
      ],
      "parameters": {},
      "executeOnce": false,
      "retryOnFail": true,
      "typeVersion": 4.4,
      "alwaysOutputData": false,
      "waitBetweenTries": 5000
    },
    {
      "id": "1665c254-8fc2-4c63-ae6b-28006d3a2e89",
      "name": "Fetch LinkedIn Posts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2160,
        624
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 4.2,
      "alwaysOutputData": true,
      "waitBetweenTries": 5000
    },
    {
      "id": "3d1d55db-b88a-4f7a-8919-86c00cc56333",
      "name": "Fetch LinkedIn Company Info",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1264,
        528
      ],
      "parameters": {},
      "executeOnce": true,
      "retryOnFail": true,
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "e760d500-6684-4c2d-98b2-976e35511095",
      "name": "If Company LinkedIn URL Exists",
      "type": "n8n-nodes-base.if",
      "position": [
        1024,
        608
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "5d88ef0a-d27a-4f73-a893-ed8a8eefd044",
      "name": "If Company Website Exists",
      "type": "n8n-nodes-base.if",
      "position": [
        1488,
        528
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "46642393-39c6-4f96-a395-0a3b6e15dce4",
      "name": "Scrape Company Homepage",
      "type": "@mendable/n8n-nodes-firecrawl.firecrawl",
      "onError": "continueErrorOutput",
      "maxTries": 5,
      "position": [
        1712,
        528
      ],
      "parameters": {},
      "executeOnce": false,
      "retryOnFail": false,
      "typeVersion": 1,
      "waitBetweenTries": 5000
    },
    {
      "id": "f9ede814-e9bb-4937-a0ae-da27f02af46b",
      "name": "Clean Scraped Markdown",
      "type": "n8n-nodes-base.code",
      "onError": "continueRegularOutput",
      "position": [
        1936,
        528
      ],
      "parameters": {},
      "typeVersion": 2,
      "alwaysOutputData": false
    },
    {
      "id": "8d22a547-bba7-458f-8891-9b15dd56fde6",
      "name": "Lead Qualification Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2832,
        624
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "4c5034aa-9c91-49c4-a3c8-a2b0ad90ab31",
      "name": "Message Drafting Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        3952,
        672
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "0332aef5-20b9-437e-858e-33a41e8a5292",
      "name": "If Lead Qualifies",
      "type": "n8n-nodes-base.if",
      "position": [
        3200,
        624
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "c23bffd7-cf56-402e-a92f-f74f45112eac",
      "name": "Mark Lead as Not Qualified",
      "type": "n8n-nodes-base.airtable",
      "position": [
        3440,
        720
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "70593513-a8ce-46f7-be70-513c0f15d12d",
      "name": "Save Message to Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        4448,
        752
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "37f3788a-cc17-44a6-bea7-058a3789509a",
      "name": "Mark LinkedIn Unavailable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        800,
        704
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "8c205c76-16a6-4734-bac3-acb7ae6b1df0",
      "name": "If LinkedIn Profile Available",
      "type": "n8n-nodes-base.if",
      "position": [
        640,
        608
      ],
      "parameters": {},
      "typeVersion": 2.3
    },
    {
      "id": "167a3ded-91ed-4863-b39f-e5fedb327f7b",
      "name": "Sort LinkedIn Posts",
      "type": "n8n-nodes-base.code",
      "position": [
        2336,
        624
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "30301fbe-3b99-43f3-ad68-68e102c8b812",
      "name": "Build Lead Profile Data",
      "type": "n8n-nodes-base.set",
      "position": [
        2560,
        624
      ],
      "parameters": {},
      "executeOnce": true,
      "typeVersion": 3.4
    },
    {
      "id": "b4fd3165-3f98-4b99-9712-9b1a1bf4b947",
      "name": "Set Airtable Base and Table",
      "type": "n8n-nodes-base.set",
      "position": [
        -304,
        608
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "3096d324-5367-4380-aed1-0d82d92e7621",
      "name": "Fetch Prompt from Airtable",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -144,
        608
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "2dd8b7a6-9aa0-4cf8-80ca-db9b56efb471",
      "name": "Claude Sonnet - Qualification",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        2832,
        800
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "22365d28-20a4-4abd-b91d-6819d404755b",
      "name": "Claude Sonnet - Redaction",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "position": [
        3952,
        848
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "887dece7-6268-48fb-a9e0-599f43139bc3",
      "name": "Parse Qualification Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2976,
        800
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "897e142f-dc5a-4194-8188-a310491afd7d",
      "name": "Parse Redaction Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        4096,
        848
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "0bc431a9-9ea1-4aef-9fe5-4d357c7cca41",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -496,
        608
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8bc8698c-a8fb-4e22-baaf-5b7f8d8df061",
      "name": "Lusha w/ linkedin",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3712,
        672
      ],
      "parameters": {},
      "typeVersion": 4.3,
      "alwaysOutputData": false
    },
    {
      "id": "3bcda59f-3653-4156-88fc-b9a1cd272065",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3648,
        480
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "4248bd86-eee9-46d4-9157-f884976a0be2",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        448
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "df779ad0-5c96-4160-b8eb-1b4266d0f327",
  "connections": {
    "Loop Over Leads": {
      "main": [
        [],
        [
          {
            "node": "Fetch LinkedIn Profile Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Lead Qualifies": {
      "main": [
        [
          {
            "node": "Lusha w/ linkedin",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Mark Lead as Not Qualified",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lusha w/ linkedin": {
      "main": [
        [
          {
            "node": "Message Drafting Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sort LinkedIn Posts": {
      "main": [
        [
          {
            "node": "Build Lead Profile Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch LinkedIn Posts": {
      "main": [
        [
          {
            "node": "Sort LinkedIn Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean Scraped Markdown": {
      "main": [
        [
          {
            "node": "Fetch LinkedIn Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message Drafting Agent": {
      "main": [
        [
          {
            "node": "Save Message to Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Redaction Output": {
      "ai_outputParser": [
        [
          {
            "node": "Message Drafting Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Build Lead Profile Data": {
      "main": [
        [
          {
            "node": "Lead Qualification Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Company Homepage": {
      "main": [
        [
          {
            "node": "Clean Scraped Markdown",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch LinkedIn Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lead Qualification Agent": {
      "main": [
        [
          {
            "node": "If Lead Qualifies",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Message to Airtable": {
      "main": [
        [
          {
            "node": "Loop Over Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude Sonnet - Redaction": {
      "ai_languageModel": [
        [
          {
            "node": "Message Drafting Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Leads from Airtable": {
      "main": [
        [
          {
            "node": "Loop Over Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Company Website Exists": {
      "main": [
        [
          {
            "node": "Scrape Company Homepage",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch LinkedIn Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark LinkedIn Unavailable": {
      "main": [
        [
          {
            "node": "Loop Over Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Prompt from Airtable": {
      "main": [
        [
          {
            "node": "Fetch Leads from Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark Lead as Not Qualified": {
      "main": [
        [
          {
            "node": "Loop Over Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Qualification Output": {
      "ai_outputParser": [
        [
          {
            "node": "Lead Qualification Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Fetch LinkedIn Company Info": {
      "main": [
        [
          {
            "node": "If Company Website Exists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch LinkedIn Profile Info": {
      "main": [
        [
          {
            "node": "If LinkedIn Profile Available",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Airtable Base and Table": {
      "main": [
        [
          {
            "node": "Fetch Prompt from Airtable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude Sonnet - Qualification": {
      "ai_languageModel": [
        [
          {
            "node": "Lead Qualification Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "If LinkedIn Profile Available": {
      "main": [
        [
          {
            "node": "If Company LinkedIn URL Exists",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Mark LinkedIn Unavailable",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Company LinkedIn URL Exists": {
      "main": [
        [
          {
            "node": "Fetch LinkedIn Company Info",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Fetch LinkedIn Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Set Airtable Base and Table",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This workflow pulls unprocessed leads from Airtable, enriches them with LinkedIn profile, company, website, and post data via Apify and Firecrawl, qualifies each lead with Anthropic Claude, and drafts a 3-step outreach sequence plus phone enrichment via Lusha back into Airtable.…

Source: https://n8n.io/workflows/16005/ — 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

This workflow pulls unprocessed leads from Airtable, enriches them with LinkedIn profile, company, and post data via Apify, optionally scrapes the company website with Firecrawl, then uses Anthropic C

Airtable, HTTP Request, @Mendable/N8N Nodes Firecrawl +3
AI & RAG

> ⚠️ Self-hosted only — This template uses a community node () and cannot run on n8n Cloud.

Airtable, HTTP Request, @Mendable/N8N Nodes Firecrawl +3
AI & RAG

⚠️ Self-hosted only — This template uses a community node (Firecrawl) and cannot run on n8n Cloud.

Airtable, @Mendable/N8N Nodes Firecrawl, Output Parser Structured +3
AI & RAG

Template Carnaval - time instagram. Uses toolWorkflow, lmChatOpenAi, memoryBufferWindow, agent. Event-driven trigger; 56 nodes.

Tool Workflow, OpenAI Chat, Memory Buffer Window +10
AI & RAG

RESUME SCREENER. Uses agent, outputParserStructured, lmChatOpenAi, gmailTrigger. Event-driven trigger; 37 nodes.

Agent, Output Parser Structured, OpenAI Chat +7