Behöver ert företag hjälp med att implementera AI? Kontakta oss och få prisoffert här →
AI Skolan
januari 22, 2026

LinkedIn + Indeed till Google Sheets, jämför jobb

Rickard Andersson Partner, Nodenordic.se

Att hålla koll på roller på LinkedIn och Indeed låter enkelt tills du gör det varje dag. Flikarna blir fler, jobbtitlar flyter ihop och ändå slutar det med att du manuellt kopierar samma detaljer till ett kalkylark.

Den här automatiseringen för jobbscraping träffar rekryterare först, om vi ska vara ärliga, men jobbsökare som följer 20+ annonser och ops-team som gör marknadsanalys känner samma friktion. Resultatet är rakt på sak: båda plattformarna hamnar i ett Google Sheet, redan formaterat, så att du kan jämföra roller på några minuter.

Nedan ser du exakt hur arbetsflödet hämtar annonser med Bright Data, väntar in resultaten, slår ihop dem och lägger till en strukturerad jämförelserad i din flik ”Compare”.

Så fungerar den här automatiseringen

Hela n8n-flödet, från trigger till slutligt resultat:

n8n Workflow Template: LinkedIn + Indeed till Google Sheets, jämför jobb

Problemet: att jämföra jobb mellan LinkedIn och Indeed är rörigt

De flesta ”söker inte en gång”. Du söker, förfinar, kör igen och upprepar i morgon eftersom nya annonser dyker upp över natten. Att göra det på både LinkedIn och Indeed blir som ett märkligt deltidsjobb: du öppnar varje annons, kopierar företaget, klistrar in titeln, letar efter löneinfo och försöker sedan minnas vilken roll som kom från vilken sajt. Och även när du är noggrann missar du ändå annonser eftersom du blev avbruten mitt i kopieringen eller glömde att kolla en plattform den dagen. Arbetet är repetitivt, men konsekvenserna är det inte.

Det blir mycket fort. Här är var det oftast fallerar.

  • Att köra samma sökning på två ställen dubblar tiden, så en ”snabb koll” blir lätt runt en timme om dagen.
  • Små skillnader i fält (platsformat, etiketter för anställningstyp, lönetext) gör jämförelse sida vid sida irriterande.
  • Copy/paste-missar smyger sig in, särskilt för ansökningslänkar, vilket är det enda fältet du verkligen inte har råd att sabba.
  • Om du vill ha historik över vad du såg förra veckan förlitar du dig på minnet eller skärmdumpar, inte faktisk data.

Lösningen: skrapa båda sajterna, slå ihop och lägg till i ett och samma Sheet

Det här flödet börjar med ett enkelt formulär där du anger roll, stad, land och (valfritt) anställningstyp. n8n formaterar indata så att Bright Data kan köra två skrapningar parallellt: ett dataset för Indeed och ett för LinkedIn. I stället för att gissa när skrapningen är klar kontrollerar flödet status, väntar en minut och kontrollerar igen tills resultaten är redo. När respektive plattform returnerar annonser validerar n8n att det faktiskt kom tillbaka poster, hämtar snapshots och slår ihop de två strömmarna till ett enhetligt dataset. Till sist lägger det till strukturerade rader i en Google Sheet-flik som heter ”Compare”, så att din jämförelsevy håller samma format för varje sökning.

Flödet startar när du skickar in jobbsökningsformuläret. Bright Data triggar både LinkedIn- och Indeed-insamling, och n8n pollar status tills varje snapshot är redo. När datan har hämtats slås den ihop och skickas till Google Sheets i ett standardiserat kolumnupplägg.

Vad du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du kör en sökning varje morgon på ”Marketing Manager” i Toronto och att du samlar in 2 annonser från LinkedIn plus 2 från Indeed (flödets nuvarande gräns per körning). Manuell hantering, även i ”snabbt” tempo, är kanske 10 minuter per annons för att öppna, skumma, kopiera detaljer, klistra in i ett ark och få med rätt ansökningslänk, så du landar på runt 40 minuter per dag. Med det här flödet: 2 minuter för att skicka in formuläret, några minuters bakgrundsskrapning och väntan, och sedan dyker de fyra raderna upp automatiskt i din flik ”Compare”. Du granskar fortfarande rollerna, men administrationsarbetet försvinner till stor del.

Det här behöver du

  • n8n-instans (testa n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Bright Data för att skrapa dataset från LinkedIn och Indeed
  • Google Sheets för att lagra och jämföra annonser
  • Bright Data API-nyckel (hämta den i din Bright Data-dashboard)

Kompetensnivå: Medel. Du kopplar konton, klistrar in en API-nyckel och bekräftar mappningen till rätt Sheet/flik i n8n.

Vill du inte sätta upp det själv? Prata med en automationsexpert (gratis konsultation i 15 minuter).

Så fungerar det

Ett formulärutskick startar allt. Du anger jobbtitel, stad och land, samt en valfri anställningstyp som Remote eller Contract. Det ger flödet en konsekvent ”sökbegäran” varje gång.

Dina indata formateras för Bright Data. n8n standardiserar plats- och jobbtiteltext och förbereder sedan separata payloads för Indeed-datasetet och LinkedIn-datasetet så att båda kan köras utan manuella justeringar.

Två skrapningar körs parallellt, och n8n väntar smart. Bright Data returnerar ett snapshot-ID för varje skrapning. Flödet kontrollerar status, pausar i en minut och upprepar tills status är ”ready”, vilket gör att API:et inte överbelastas och minskar antalet misslyckade hämtningar.

Annonser laddas ner, slås ihop och läggs till i Google Sheets. n8n hämtar varje snapshot som JSON, slår ihop strömmarna till ett gemensamt dataset och lägger sedan till rader i din flik ”Compare” med fält som jobbtitel, företag, plats, lön, anställningstyp och ansökningslänk.

Du kan enkelt justera formulärfälten för att fånga fler filter (som senioritet) utifrån dina behov. Se den fullständiga implementationsguiden nedan för alternativ för anpassning.

Steg-för-steg-guide för implementering

Steg 1: konfigurera formulärtriggern

Konfigurera formuläret som fångar indata för jobbsökning och startar arbetsflödet.

  1. Lägg till noden Job Search Form Trigger och ställ in Form Title till Job Finder.
  2. Definiera formulärfält med obligatoriska inmatningar för City, Job Title och Country.
  3. Lägg till det valfria rullistfältet Job_type (Optional) med alternativ som Full-Time, Part-Time, Remote, Contract och Internship.
  4. Koppla triggern så att Job Search Form Trigger skickar utdata till både Prepare Indeed API Payload och Start Indeed Scrape Request parallellt.
Tips: Säkerställ att fältetiketterna matchar exakt (inklusive mellanslag och versaler/gemener), eftersom efterföljande uttryck refererar till etiketter som Job_type (Optional).

Steg 2: anslut Google Sheets

Förbered målbladet för att ta emot de sammanslagna jobbannonserna.

  1. Lägg till noden Append to Job Spreadsheet.
  2. Autentiseringsuppgifter krävs: Anslut era googleSheetsOAuth2Api-autentiseringsuppgifter.
  3. Ställ in Operation till append.
  4. Välj målarket i Document och kalkylbladet i Sheet Name (båda är för närvarande inställda på platshållare [YOUR_ID]).
  5. Mappa kolumnvärdena, till exempel Salary till {{ $json.salary_formatted }}, Location till {{ $json.discovery_input.location }} och Job Title till {{ $json.job_title }}.
⚠️ Vanlig fallgrop: Bladet har kolumner som Salary och Job-Type med avslutande mellanslag. Säkerställ att kolumnrubrikerna i Google Sheet matchar exakt för att undvika mappningsfel.

Steg 3: sätt upp skapandet av Indeed- och LinkedIn-payload

Förbered strukturerade payloads för Bright Data-scraping och routa dem in i LinkedIn-triggern.

  1. Konfigurera Prepare Indeed API Payload med den medföljande JavaScript-koden så att den bygger input och custom_output_fields baserat på formulärfälten.
  2. Säkerställ att noden Start LinkedIn Scrape använder JSON body-uttrycket {{ $json["input"] ? JSON.stringify($json["input"]) : "[]" }} och {{ $json["custom_output_fields"] ? JSON.stringify($json["custom_output_fields"]) : "{}" }}.
  3. Bekräfta flödet: Prepare Indeed API PayloadStart LinkedIn Scrape.

Steg 4: konfigurera Bright Data-scrape-requests och polling

Konfigurera HTTP-anropen och polling-looparna för både Indeed- och LinkedIn-källor.

  1. I Start Indeed Scrape Request ställer ni in URL till https://api.brightdata.com/datasets/v3/trigger och Method till POST.
  2. Ställ in JSON body med de angivna uttrycken, till exempel {{$node["Job Search Form Trigger"].json["City"] ? $node["Job Search Form Trigger"].json["City"].trim() : ""}} och {{$node["Job Search Form Trigger"].json["Job Title"] ? $node["Job Search Form Trigger"].json["Job Title"].trim() : ""}}.
  3. I varje Bright Data-request-nod ställer ni in Header ParametersAuthorization till Bearer [CONFIGURE_YOUR_TOKEN] och ersätter platshållare som [YOUR_ID] i query-parametrar.
  4. Konfigurera Check Indeed Scrape Status med URL https://api.brightdata.com/datasets/v3/progress/{{ $json.snapshot_id }} och routa ”not ready”-vägen via Delay One Minute tillbaka till Check Indeed Scrape Status.
  5. Konfigurera Check LinkedIn Status med samma progress-URL-mönster och routa ”not ready”-vägen via Pause Before LinkedIn Check tillbaka till Check LinkedIn Status.
Tips: Det finns flera httpRequest-noder (totalt 6). Håll Bright Data dataset-ID:n och auktoriseringstokens konsekventa i samtliga.

Steg 5: validera, hämta och slå samman jobbflöden

Validera att scrapingen är klar och antal poster, hämta sedan snapshots och slå samman resultaten.

  1. I Indeed Ready Branch bekräftar ni att villkoret använder {{ $json.status }} lika med ready, och routar sedan till Validate Indeed Records.
  2. I Validate Indeed Records kontrollerar ni att {{ $json.records }} inte är lika med {{ 0 }}, och routar sedan till Retrieve Indeed Snapshot.
  3. I LinkedIn Ready Branch bekräftar ni att villkoret använder {{ $json.status }} lika med ready, och routar sedan till Validate LinkedIn Records.
  4. I Validate LinkedIn Records kontrollerar ni att {{ $json.records }} inte är lika med {{ 0 }}, och routar sedan till Retrieve LinkedIn Snapshot.
  5. Koppla Retrieve Indeed Snapshot och Retrieve LinkedIn Snapshot till Merge Job Streams och skicka sedan utdata till Append to Job Spreadsheet.

Notering om körning: Job Search Form Trigger skickar utdata till både Prepare Indeed API Payload och Start Indeed Scrape Request parallellt, så LinkedIn-anropet startar medan Indeed-scrapingen kör.

Steg 6: testa och aktivera ert arbetsflöde

Verifiera arbetsflödet från början till slut innan ni aktiverar det i produktion.

  1. Klicka på Execute Workflow och skicka in formuläret från Job Search Form Trigger med en exempelstad, jobbtitel och ett land.
  2. Bekräfta att båda polling-looparna kör: Check Indeed Scrape Status och Check LinkedIn Status ska till slut returnera ready.
  3. Verifiera att Merge Job Streams ger sammanslagna resultat och att Append to Job Spreadsheet lägger till rader i ert ark.
  4. När allt fungerar, växla arbetsflödet till Active för att aktivera formulärinskick i realtid.
🔒

Lås upp fullständig steg-för-steg-guide

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Bright Data-inloggning kan löpa ut eller kräva specifika behörigheter. Om det skapar fel, kontrollera först status för din Bright Data API-nyckel och åtkomst till dataset i Bright Data-dashboarden.
  • Om du använder Wait-noder eller extern rendering varierar bearbetningstiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
  • Behörigheter i Google Sheets är lätta att missa när du byter konto. Om rader inte läggs till, bekräfta att OAuth-anslutningen kan redigera exakt rätt kalkylark och att fliknamnet ”Compare” matchar.

Vanliga frågor

Hur lång tid tar det att sätta upp den här automatiseringen för jobbscraping?

Cirka 30 minuter om dina Bright Data- och Google Sheets-konton är redo.

Behöver jag kodkunskaper för att automatisera jobbscraping?

Nej. Du klistrar mest in uppgifter och mappar några fält. Den enda ”koden” här finns redan i arbetsflödet och kan lämnas som den är.

Är n8n gratis att använda för det här arbetsflödet för jobbscraping?

Ja. n8n har ett gratis alternativ för egen drift och en gratis provperiod på n8n Cloud. Cloud-planer börjar på 20 USD/månad för högre volymer. Du behöver också räkna in kostnader för Bright Data-dataset baserat på hur ofta du skrapar.

Var kan jag hosta n8n för att köra den här automatiseringen?

Två alternativ: n8n Cloud (hanterat, enklast att komma igång) eller egen drift på en VPS. För egen drift är Hostinger VPS prisvärt och klarar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här arbetsflödet för jobbscraping för roller som bara är remote?

Ja, men du får mest konsekventa resultat genom att justera formulärfältet för anställningstyp (Remote/WFH) och skicka det vidare genom formateringssteget ”Prepare Indeed API Payload”. Du kan också ändra de anpassade utdatafälten för att lägga till extra kolumner som senioritetsnyckelord eller förmåner. Om du vill ha ännu bättre standardisering kan du uppdatera mappningen i ”Merge Job Streams” så att båda källorna ger samma värden för ”Job Type”.

Varför fallerar min Bright Data-anslutning i det här arbetsflödet?

Oftast beror det på en ogiltig eller utgången API-nyckel, så generera en ny nyckel och uppdatera HTTP Request-headers i n8n. Kontrollera också att dataset-ID:n är korrekta för ditt Bright Data-konto och att din plan tillåter dataset-körningar. Om det bara fallerar på dagar med hög belastning kan det vara rate limiting, vilket vanligtvis stabiliseras genom att öka väntetiden/poll-intervallet.

Hur många jobbannonser kan den här automatiseringen för jobbscraping hantera?

Per körning är det här specifika flödet just nu inställt på att hämta 2 Indeed-annonser och 2 LinkedIn-annonser för din indata (alltså 4 totalt). Du kan höja värdet för ”limit per input” i Bright Data-triggeranropen om ditt konto stödjer det, och då lägger n8n till fler rader. I n8n Cloud beror kapaciteten på din plans körningsgränser; om du kör egen drift handlar det främst om din server och din Bright Data-användning.

Är den här automatiseringen för jobbscraping bättre än att använda Zapier eller Make?

Oftast, ja, om du bryr dig om kontroll och driftsäkerhet. Det här flödet kräver polling, förgreningar och sammanslagning av strömmar, och n8n hanterar det utan att varje extra steg blir en extra debiterbar ”task”. Du får också möjlighet till egen drift, vilket spelar roll när du börjar köra dagliga sökningar för flera roller eller flera städer. Zapier eller Make kan fungera för enkla flöden av typen ”ny rad triggar ett meddelande”, men orkestrering av scraping är där de blir klumpiga. Om du är osäker, prata med en automationsexpert så får du en rak rekommendation.

När detta är live blir ditt ”Compare”-ark din källa till sanning, inte din webbläsarhistorik. Flödet sköter den repetitiva insamlingen så att du kan fokusera på att välja, ta kontakt eller ansöka.

Kontakta oss

Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.

×

Använd mall

Få direkt tillgång till denna n8n-arbetsflödes JSON-fil

Launch login modal Launch register modal