🟡 Gevorderd — beetje technisch ⏱ 3-4 uur

LinkedIn lead generation agent bouwen met n8n en AI

Een geautomatiseerde LinkedIn lead-agent vindt dagelijks nieuwe potentiele klanten op basis van jouw criteria, verrijkt de data, en zet de leads klaar in je CRM. Alles zonder handmatig zoeken. In deze handleiding bouw je zo een agent in n8n.

Tools: n8n (cloud of self-hosted)Phantombuster account (gratis te starten)Anthropic Claude API key (of OpenAI)CRM: HubSpot (gratis), Pipedrive of NotionOptioneel: Hunter.io of Apollo.io voor e-mailverrijking
LinkedIn lead generation agent bouwen met n8n en AI

Wat je leert in deze handleiding

  • LinkedIn-profielen automatisch scrapen via Phantombuster
  • AI fit-score berekenen per lead (1-10)
  • Gepersonaliseerde outreach-berichten laten schrijven door Claude
  • Leads automatisch aanmaken in je CRM (HubSpot/Pipedrive)
  • Workflow inplannen zodat leads dagelijks binnenkomen
  • Deduplicatie instellen om dubbelingen te voorkomen
  • GDPR-compliant werken bij LinkedIn-scraping

Een LinkedIn lead-agent vindt dagelijks nieuwe potentiele klanten op basis van jouw criteria, verrijkt ze met AI, en zet ze klaar in je CRM, volledig automatisch. Deze handleiding bouwt het systeem stap voor stap op in n8n, met Phantombuster voor scraping en Claude voor personalisatie.

Video tutorial: This n8n workflow scrapes LinkedIn Leads and generates icebreakers (500+ Leads/Day): https://www.youtube.com/watch?v=bWE0maKl_sU

Architectuur van het systeem

Het systeem bestaat uit vier opeenvolgende modules in n8n. Module 1 (Lead Discovery): Phantombuster scrapet dagelijks 25-50 LinkedIn-profielen op basis van jouw zoekcriteria en stuurt ze als webhook naar n8n. Module 2 (Enrichment): n8n verrijkt elk profiel met bedrijfsinformatie en laat Claude een fit-score en samenvatting genereren. Module 3 (Filtering): alleen leads met score 7 of hoger gaan verder. Module 4 (CRM Import): gekwalificeerde leads worden aangemaakt als contactpersoon en deal in je CRM, inclusief het gegenereerde outreach-bericht.

Stap 1: Phantombuster instellen

Maak een account op https://phantombuster.com (gratis tier: 2 uur/dag agent-tijd). Kies de LinkedIn Search Export phantom. Configureer je zoekcriteria: functietitel (bijv. 'Marketing Director'), branche ('B2B Software'), land ('Netherlands'), bedrijfsgrootte ('51-200'). Stel dagelijkse run in op 25 profielen om binnen LinkedIn-limieten te blijven. Ga naar Settings > Webhooks en voer je n8n webhook-URL in (die je in stap 2 aanmaakt). Phantombuster stuurt nu na elke run de resultaten als JSON naar n8n.

# Voorbeeld van Phantombuster output per profiel: { "firstName": "Sarah", "lastName": "de Vries", "jobTitle": "Marketing Director", "company": "Acme BV", "profileUrl": "https://linkedin.com/in/sarahdevries", "location": "Amsterdam, Netherlands", "connectionDegree": "2nd" }

Stap 2: n8n workflow aanmaken met webhook

Open n8n (https://app.n8n.io voor cloud of je eigen installatie). Maak een nieuw workflow aan. Voeg een Webhook node toe als trigger. Kies methode POST en kopieer de Webhook URL. Plak deze URL in Phantombuster (stap 1). Activeer de workflow. n8n ontvangt nu JSON van Phantombuster na elke scraping-run.

Stap 3: AI fit-score en samenvatting via Claude

Voeg een HTTP Request node toe na de webhook. Configureer hem als POST naar https://api.anthropic.com/v1/messages. Headers: x-api-key: JOUW_ANTHROPIC_KEY, anthropic-version: 2023-06-01, content-type: application/json. Gebruik onderstaande prompt-structuur in de body.

// n8n HTTP Request body (JSON): { "model": "claude-haiku-4-5", "max_tokens": 300, "messages": [{ "role": "user", "content": "Je bent een B2B sales-assistent voor [JOUW BEDRIJF]. Beoordeel deze LinkedIn-lead:\n\nNaam: {{$json.firstName}} {{$json.lastName}}\nFunctie: {{$json.jobTitle}}\nBedrijf: {{$json.company}}\nLocatie: {{$json.location}}\n\nGeef een JSON-object terug met:\n- score: 1-10 (hoe goed past dit als klant)\n- reden: 1 zin toelichting\n- taal: altijd Nederlands" }] }

Stap 4: Filteren op fit-score

Voeg een IF node toe na de Claude-aanroep. Conditie: score groter dan of gelijk aan 7 (gebruik een JSON Parse node eerst om de Claude-response te parsen). Leads met score < 7 gaan naar een Google Sheet voor archivering. Leads met score >= 7 gaan door naar stap 5.

Stap 5: Gepersonaliseerd outreach-bericht genereren

Voor gekwalificeerde leads (score >= 7) roep je Claude opnieuw aan, nu voor een outreach-bericht. Maximum 300 tekens (LinkedIn-limiet voor connectieverzoeken). Het bericht moet specifiek zijn: refereer aan hun functie, bedrijf of locatie. Nooit generiek.

// Prompt voor outreach-bericht: "Schrijf een LinkedIn connectieverzoek van maximaal 280 tekens voor: Naam: {{$json.firstName}} Functie: {{$json.jobTitle}} bij {{$json.company}} Locatie: {{$json.location}} Vanuit: [JOUW NAAM], [JOUW FUNCTIE] bij [JOUW BEDRIJF] Context: [1 zin over wat jij doet en voor wie] Eisen: Direct, vriendelijk, specifiek, geen generieke zinnen als 'ik vond uw profiel interessant'. Schrijf in het Nederlands."

Stap 6: Lead aanmaken in CRM (HubSpot)

Voeg de HubSpot node toe (of Pipedrive/Notion afhankelijk van je CRM). Kies actie: Create Contact. Map de velden: firstname, lastname, company, jobtitle, linkedin_url. Voeg custom properties toe: ai_fit_score, ai_reden, outreach_bericht, bron: LinkedIn-Agent. Voeg ook een tag toe zodat je deze leads later kunt filteren: type = 'linkedin-agent-2026-03'. HubSpot-documentatie: https://developers.hubspot.com/docs/api/crm/contacts

Veelvoorkomende problemen

Probleem: LinkedIn blokkeert Phantombuster. Oplossing: Verlaag het dagelijks volume naar 15-20 profielen. Voeg een vertraging van 2-5 seconden toe tussen scrapes in Phantombuster-instellingen. Gebruik een residentieel IP-adres (Phantombuster heeft dit als premium optie).

Probleem: Claude geeft geen geldig JSON terug voor fit-score. Oplossing: Voeg 'antwoord ALLEEN met het JSON-object, geen tekst ervoor of erna' toe aan je prompt. Gebruik in n8n een Code node om de response te parsen met een try-catch.

Probleem: Dubbele leads in CRM. Oplossing: Voeg voor de HubSpot-aanroep een search-stap toe die controleert of de LinkedIn URL al bestaat als contact. Gebruik de HubSpot Search Contacts node met filter linkedin_url = huidige URL.

GDPR-aandachtspunten

LinkedIn-scraping voor B2B outreach valt in een grijs gebied. Publieke profieldata mag worden gebruikt voor zakelijk contact, mits je een legitiem zakelijk belang kunt aantonen. Leg in je privacy-policy vast dat je LinkedIn-data gebruikt voor outreach. Verwijder leads die aangeven geen contact te willen onmiddellijk uit je CRM. Verwerk geen gevoelige persoonsgegevens (gezondheid, politiek, etc.) die op profielen staan.

Phantombuster: https://phantombuster.com | n8n docs: https://docs.n8n.io | Anthropic API docs: https://docs.anthropic.com | HubSpot CRM API: https://developers.hubspot.com/docs/api/crm/contacts | SerpAPI: https://serpapi.com

Nieuwsbrief

Meer handleidingen en tips?

Elke week de beste agentic AI inzichten en nieuwe handleidingen in je inbox.

Gratis aanmelden →