Du hittar en riktigt bra jobbannons på LinkedIn, kopierar detaljerna någonstans ”till senare” och tappar sedan bort den. Eller så kommer du ihåg den, men nu skriver du om samma outreach-meddelande igen, försöker låta personlig utan att lägga hela eftermiddagen på det.
Det här är det som rekryterare och byråägare klagar mest på. Många grundare gör det också. Den här automatiseringen för LinkedIn outreach hämtar jobbannonser till ett kalkylark och skapar Gmail-utkast som du kan granska på ett ställe.
Du ser exakt vad arbetsflödet automatiserar, vad du behöver koppla ihop och hur du anpassar det så att din outreach blir konsekvent utan att låta robotaktig.
Så fungerar automatiseringen
Här är hela arbetsflödet du kommer att sätta upp:
n8n Workflow Template: LinkedIn + Gmail: outreachutkast att granska
flowchart LR
subgraph sg0["Schedule Flow"]
direction LR
n0@{ icon: "mdi:database", form: "rounded", label: "Google Sheets", pos: "b", h: 48 }
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Filter", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Google Sheets1", pos: "b", h: 48 }
n3@{ icon: "mdi:robot", form: "rounded", label: "Basic LLM Chain", pos: "b", h: 48 }
n4@{ icon: "mdi:brain", form: "rounded", label: "Google Gemini Chat Model", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Structured Output Parser", pos: "b", h: 48 }
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Merge"]
n7@{ icon: "mdi:database", form: "rounded", label: "Google Sheets2", pos: "b", h: 48 }
n8@{ icon: "mdi:play-circle", form: "rounded", label: "Schedule Trigger1", pos: "b", h: 48 }
n9@{ icon: "mdi:message-outline", form: "rounded", label: "Gmail", pos: "b", h: 48 }
n10["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Pull Jobs "]
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Info", pos: "b", h: 48 }
n12["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Pull Decision Makers"]
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Extract Info1", pos: "b", h: 48 }
n14["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Get Email IDs"]
n6 --> n7
n1 --> n2
n10 --> n11
n11 --> n0
n13 --> n1
n14 --> n9
n0 --> n12
n2 --> n3
n2 --> n6
n7 --> n14
n3 --> n6
n8 --> n10
n12 --> n13
n4 -.-> n3
n5 -.-> n3
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n8 trigger
class n3,n5 ai
class n4 aiModel
class n1 decision
class n0,n2,n7 database
class n10,n12,n14 api
classDef customIcon fill:none,stroke:none
class n6,n10,n12,n14 customIcon
Varför det här spelar roll: outreach faller sönder i ”mellanstegen”
Jobbsökning och outreach dör ofta i överlämningen mellan ”jag hittade något” och ”jag kontaktade faktiskt någon”. LinkedIn-jobbannonser försvinner ner i ett kaninhål av flikar. Namn på beslutsfattare kopieras in i anteckningar utan någon struktur alls. Sedan ska du skriva ett meddelande, inser att du saknar företagsdetaljen du såg tidigare och går tillbaka för att söka igen. Det är inte svårt arbete, bara dränerande arbete. Och när det är dränerande släpper konsekvensen. Du skickar färre meddelanden, följer upp sent eller, ännu värre, skickar en generisk mall för att tiden är slut.
Det går snabbt. Här brukar friktionen dyka upp.
- Att spara jobbannonser ”någonstans” blir till spretiga anteckningar som du inte kan sortera eller filtrera när du väl vill agera.
- Att hitta rätt person på företaget blir repetitiv research, och du slutar med att göra om allt från noll varje gång.
- Personlig outreach tar så lång tid att du buntar ihop den, vilket gör att du hör av dig senare än du borde.
- Manuell utkastskrivning leder till ojämn ton och missade detaljer, så svarsfrekvensen sjunker och självförtroendet följer med.
Det du bygger: LinkedIn Jobs till Sheets, sedan Gmail-utkast
Det här arbetsflödet körs enligt schema och sköter insamlingen åt dig i bakgrunden. Först hämtar det nya LinkedIn-jobbannonser via Apify, delar upp svaret i korrekt formaterade fält och loggar varje roll i Google Sheets (titel, företag, plats och information om annonsören). Därefter letar det upp beslutsfattarprofiler för de företagen, filtrerar dem med kriterier du styr (stad, företagsnamn, roll-nyckelord) och lägger till de bästa matchningarna i ett andra ark. När du har strukturerad jobb- och kontaktdata genererar ett AI-steg ett kort meddelande i referens-/tips-stil som följer ett strikt format (under 100 ord, personligt, utan överdriven hype). Till sist slår det upp e-postadressen via ett e-postsökar-API och skapar ett Gmail-utkast med ämnesrad och brödtext, redo för dig att granska och skicka.
Flödet börjar med daglig jobbinsamling och slutar med färdiga e-postutkast i Gmail. I mitten blir Sheets din kontrollpanel: det lagrar input, lagrar AI-output och gör allt sökbart så att du kan skala utan att tappa bort något.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du siktar på 10 nya roller per dag. Manuellt kanske du lägger cirka 10 minuter på att fånga jobbdeltaljerna, ytterligare 10 minuter på att hitta en beslutsfattare och 10 minuter på att skriva ett vettigt första meddelande, vilket blir ungefär 5 timmar per dag när du gör det ordentligt. Med det här arbetsflödet samlar och organiserar den dagliga körningen data automatiskt och skapar sedan utkast som du kan skumma igenom och skicka. Om du lägger cirka 30 minuter på att granska utkast och göra snabba ändringar, får du tillbaka runt 4 timmar en intensiv dag.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen hosting om du föredrar det (Hostinger fungerar bra)
- Google Sheets för att lagra jobb, kontakter och utkast.
- Gmail för att skapa utkast i din inkorg.
- Apify-konto för att hämta LinkedIn-jobb och profiler.
- Gemini API-nyckel (hämta den från Google AI Studio).
- Anymailfinder API-nyckel (hämta den från din Anymailfinder-dashboard).
Kunskapsnivå: Medel. Du kopplar några API:er, bekräftar kolumner i arken och aktiverar Gmail API-åtkomst i Google Cloud.
Vill du att någon bygger det här åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett dagligt schema sätter igång allt. n8n kör den här automatiseringen automatiskt, så att din pipeline fylls på medan du gör annat.
Jobbannonser samlas in och normaliseras. En HTTP-förfrågan hämtar LinkedIn-jobbdata via en Apify-actor, sedan delar arbetsflödet upp nyckelfält och skriver korrekt formaterade rader till ditt Jobs-ark i Google Sheets.
Beslutsfattare hittas och filtreras. En andra hämtning tar in profildata för relevanta personer på de företagen. Arbetsflödet tillämpar dina kriterier (som stad eller specifika företagsmatchningar) och lägger till de bästa kontakterna i ett Contacts-ark så att du inte blandar ”kanske”-leads med riktiga mål.
AI genererar outreach och sedan skapas Gmail-utkast. LLM-kedjan tar fram en strukturerad rubrik och meddelandetext, slår ihop det med kontaktdata, slår upp en e-postadress via Anymailfinder och skapar till sist e-postutkastet i Gmail med ämne och text redan ifyllda.
Du kan enkelt justera filtreringsreglerna för att rikta in dig på andra platser eller branscher utifrån dina behov. Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-guide för implementering
Steg 1: Konfigurera den schemalagda triggern
Det här arbetsflödet startar enligt ett återkommande schema och hämtar därefter jobbannonser.
- Lägg till och öppna Scheduled Automation Trigger.
- Ställ in önskat schemaintervall i triggerns inställningar för Rule (t.ex. daglig eller timvis frekvens).
- Bekräfta att Scheduled Automation Trigger är ansluten till Fetch Job Listings.
Steg 2: Anslut Google Sheets
Tre Google Sheets-noder lagrar jobb, kontakter och utkast till meddelanden.
- Öppna Update Jobs Sheet och välj kalkylarket Document
LinkedIn Jobs Dataoch SheetSheet1. - Bekräfta att Operation är satt till
appendOrUpdateoch att Columns mappar fält som={{ $json.id }},={{ $json.title }}och={{ $json.description }}. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Update Jobs Sheet. - Öppna Update Contacts Sheet, verifiera att Operation är
appendOrUpdate, och mappa fält som={{ $json.name }}och={{ $json.link }}. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Update Contacts Sheet. - Öppna Store Draft Messages, verifiera att fälten mappar till
={{ $json.output.Body }},={{ $json.output.Headline }}och={{ $json['Profile Link'] }}. - Inloggningsuppgifter krävs: Anslut era
googleSheetsOAuth2Api-inloggningsuppgifter i Store Draft Messages.
Steg 3: Konfigurera insamling av jobb- och profildata
Det här steget hämtar jobbannonser och beslutsprofiler och filtrerar sedan kontakter utifrån kriterier.
- I Fetch Job Listings, ställ in URL till
https://api.apify.com/v2/datasets/EfaMgoTc0ibyoM2Qc/items?clean=true&format=json&limit=1000. - I Split Job Fields, ställ in Field to Split Out till
=applyUrl,companyId, companyName, companyUrl, contractType,description,descriptionHtml, jobUrl, location, postedTime, salary, sector, title, workType, posterFullName, posterProfileUrl, applicationsCount, contractType, id. - I Fetch Decision Profiles, ställ in URL till
https://api.apify.com/v2/datasets/9u0RiQrljJXL5KBCk/items?clean=true&format=json. - I Split Profile Fields, ställ in Field to Split Out till
link, name, company, designation, education, location, verified, thumbnail. - I Apply Criteria Filter, konfigurera villkor där
={{ $json.location }}är lika medBengaluruELLER={{ $json.company }}är lika medSnapmint. - Bekräfta flödet: Split Profile Fields → Apply Criteria Filter → Update Contacts Sheet.
Steg 4: Konfigurera AI-generering av meddelanden och sammanslagning
Det här steget genererar personliga rekommendationsmeddelanden och slår samman dem med kontaktdata.
- Öppna Generate Referral Message och ställ in Text till
={{ $('Update Jobs Sheet').item.json.title }},{{ $('Update Jobs Sheet').item.json.descriptionText }},{{ $('Update Jobs Sheet').item.json.link }},{{ $json.Designation }},{{ $json.Name }},. - Säkerställ att prompten i Generate Referral Message matchar ert tilltal och håller sig under 100 ord.
- Öppna Gemini Chat Engine och ställ in Model till
models/learnlm-2.0-flash-experimental. - Inloggningsuppgifter krävs: Anslut era
googlePalmApi-inloggningsuppgifter i Gemini Chat Engine. - Verifiera att Structured Result Parser har schemat med obligatoriska fält
HeadlineochBody. Den här parsern är ansluten till Generate Referral Message som en AI-utdataparser. - Bekräfta parallell körning: Update Contacts Sheet skickar utdata både till Generate Referral Message och Combine Data Streams parallellt.
- I Combine Data Streams, bekräfta att Mode är
combineoch att Combine By ärcombineByPosition.
Påminnelse om inloggningsuppgifter: Structured Result Parser tar inte emot inloggningsuppgifter direkt. Lägg till AI-inloggningsuppgifter i den överordnade noden Gemini Chat Engine, som driver Generate Referral Message.
Steg 5: Konfigurera utdataåtgärder
Utkast sparas, berikas med e-postadresser och skickas till Gmail-utkast.
- Bekräfta Combine Data Streams → Store Draft Messages med de mappade fälten
={{ $json.output.Body }}och={{ $json.output.Headline }}. - I Lookup Email Addresses, ställ in URL till
https://api.anymailfinder.com/v5.0/search/linkedin-url.json, Method tillPOST, och skicka body-parameternprofile linkmed={{ $json['Profile Link'] }}. - I Lookup Email Addresses, ställ in authorization-headern till
Bearer [CONFIGURE_YOUR_TOKEN]. - Öppna Draft Gmail Notification, ställ in Resource till
draft, Subject till={{ $json.output.Headline }}, och Message till={{ $json.output.Body }}. - Inloggningsuppgifter krävs: Anslut era
gmailOAuth2-inloggningsuppgifter i Draft Gmail Notification.
[CONFIGURE_YOUR_TOKEN] innan ni testar.Steg 6: Testa och aktivera ert arbetsflöde
Kör ett manuellt test för att bekräfta dataflödet från jobbannonser till Gmail-utkast.
- Klicka på Execute Workflow för att köra Scheduled Automation Trigger manuellt.
- Verifiera att nya rader visas i Jobb- och Kontakt-arken från Update Jobs Sheet och Update Contacts Sheet.
- Bekräfta att Store Draft Messages skriver en
HeadlineochBodyför varje filtrerad profil. - Kontrollera Draft Gmail Notification för ett nytt utkast med det genererade meddelandet.
- När ni är nöjda, växla arbetsflödet till Active för att aktivera schemalagda körningar.
Felsökningstips
- Inloggningar för Google Sheets och Gmail kan gå ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera dina kopplade konton i n8n Credentials och bekräfta först att Gmail API är aktiverat i ditt Google Cloud-projekt.
- Om du hämtar många jobb eller profiler kan Apify-körningar och HTTP-förfrågningar ta längre tid än väntat. När efterföljande steg misslyckas beror det ofta på att arbetsflödet fortsatte innan datasetet var klart, så lägg in en längre väntetid eller kontrollera actor-körningens status igen innan du delar upp fält.
- Standardprompter för AI är generiska. Lägg in dina röstregler (ton, längd, ”gör/gör inte”-fraser och ett par riktiga exempel) tidigt, annars kommer du ändå lägga den sparade tiden på att redigera varje utkast.
Snabba svar
Cirka 45 minuter om dina API:er redan är aktiverade.
Nej. Du kopplar konton, klistrar in några API-nycklar och mappar några kolumner i Google Sheets.
Ja. n8n har ett gratis alternativ för egen hosting och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volym. Du behöver också räkna in Apify-användning, din Gemini API-användning och kostnaderna för ditt e-postsökar-API.
Två alternativ: n8n Cloud (hanterat, enklast uppsättning) eller egen hosting på en VPS. För egen hosting är Hostinger VPS prisvärd och klarar n8n bra. Egen hosting ger obegränsade exekveringar men kräver grundläggande serverhantering.
Ja, och det bör du. De flesta börjar med att justera logiken i ”Apply Criteria Filter” för att fokusera på vissa städer, titlar eller listor över målföretag. Du kan också byta HTTP-förfrågan ”Lookup Email Addresses” till Hunter.io (eller en annan leverantör) utan att ändra resten av arbetsflödet. Om du föredrar OpenAI, byt ut Gemini-chattmodellen i delen för meddelandegenerering och behåll parsern för strukturerad output så att rubrik/brödtext förblir korrekt formaterad.
Oftast beror det på att Gmail API-åtkomst inte är aktiverad i rätt Google Cloud-projekt, eller att OAuth-consent screen/scopes inte var konfigurerade för att tillåta skapande av utkast. Återanslut Gmail-credential i n8n efter att du aktiverat API:t och kör sedan en enskild testexekvering igen. Om det fungerar en gång och sedan misslyckas senare, kontrollera om OAuth-behörigheterna har gått ut.
Om du kör egen hosting begränsas volymen främst av din server och dina API:ers hastighetsbegränsningar, inte av n8n i sig.
Ofta, ja. Det här arbetsflödet blandar databehandling i flera steg (dela upp fält, slå ihop flöden, filtrera) med AI-output som behöver vara strukturerad, och n8n hanterar det helt enkelt bättre utan att det blir en skör kedja av mini-zaps. Det är också enklare att köra på egen hosting, vilket spelar roll om du kör daglig sourcing i högre volym. Zapier eller Make kan fortfarande fungera om du förenklar flödet och inte behöver hämtningen av beslutsfattare eller strukturerad parsning. Om du är osäker, prata med en automationsexpert och få en rak rekommendation.
När det här väl rullar slutar outreach att vara en ”stor uppgift” du bävar för. Du öppnar bara Gmail, granskar utkasten och trycker på skicka när de ser rätt ut.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.