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

Bright Data till Google Sheets, rensad jobbdata

Rickard Andersson Partner, Nodenordic.se

Du tar en jobb-URL, skummar sidan, kopierar några rader till ett kalkylark och inser sedan att lönen är gömd i en annan sektion (eller inte finns angiven alls). Gör du det 20 gånger förvandlas din ”snabba research” till en halv dag med stökiga anteckningar.

Det här är den typen av jobbdatas-automatisering som sparar rekryterare massor av flik-hoppande. Den hjälper också marknadsanalysansvariga som följer kompensationstrender, samt grundare som bygger jobbtavlor och behöver konsekventa annonser utan att handstäda varje rad.

Det här flödet hämtar en jobbsida med Bright Data, låter OpenAI standardisera det som hittas (roll, löneindikationer, företagsdetaljer) och lägger sedan in en felfri post i Google Sheets. Du får se hur det fungerar, vad du behöver och vad du kan justera för att det ska passa din pipeline.

Så fungerar den här automatiseringen

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

n8n Workflow Template: Bright Data till Google Sheets, rensad jobbdata

Problemet: jobbsidor är inkonsekventa (och irriterande)

Jobbannonser ser strukturerade ut tills du faktiskt behöver jämföra dem. Ett företag lägger lönen i sidfoten, ett annat använder luddiga formuleringar som ”konkurrenskraftig”, och ett tredje trycker in nyckeldetaljer i en PDF eller en widget som din scraper inte kan läsa. Så du gör det manuellt. Kopierar en titel, gissar senioritet, klistrar in ett stycke i Sheets och försöker normalisera det senare. Det där ”senare” kommer aldrig, och ditt kalkylark blir en avlastningsplats som ingen litar på. Det handlar inte bara om tid. Det är det ständiga tvivlandet.

Friktionen byggs på. När din data väl är stökig blir varje beslut längre ned i kedjan långsammare.

  • Att hämta jobbbeskrivningar för hand blir snabbt cirka 10 minuter per annons, och det blir sällan bra på första försöket.
  • Löne”ledtrådar” missas eftersom de är utspridda i förmåner, platsnotiser eller små intervall som göms i brödtexten.
  • Teamet hamnar i diskussioner om vad rollen ”egentligen är”, eftersom titlar och ansvar inte matchar mellan sajter.
  • Även när du skrapar ger antibot-skydd och stökiga sidor korrupta resultat eller halvtomma fält.

Lösningen: Bright Data-extraktion + OpenAI-standardisering till Sheets

Det här flödet börjar med en URL till en jobbannons (eller ett sökresultat) och en rolletikett du vill följa. Bright Datas MCP-baserade skrapning simulerar verkligt webbläsarbeteende, vilket gör att du kan extrahera innehållet på jobbsidan tillförlitligt även när sajten försöker blockera automatiserad åtkomst. Därefter hämtar flödet tre informationsblock: texten i jobbbeskrivningen, lönerelevant innehåll (om det finns) och företagsdetaljer. OpenAI GPT-4o mini rensar och standardiserar sedan varje del så att du får konsekventa fält i stället för en vägg av text. Till sist slår n8n ihop allt till en strukturerad post och skickar den dit du behöver, inklusive Google Sheets för enkel jämförelse.

Flödet startar när du kör det i n8n och anger jobb-URL och målroll. Bright Data samlar in jobbannonsen, lönesignalerna och innehållet från företagssidan, och därefter extraherar OpenAI de användbara detaljerna till förutsägbara fält. Det färdiga resultatet skrivs till Google Sheets (och kan också skickas via webhook eller sparas på disk).

Det du får: automatisering vs. resultat

Exempel: så här ser det ut i praktiken

Säg att du följer 25 roller som ”Senior Data Analyst” på olika företags sajter varje vecka. Manuellt: om du lägger cirka 10 minuter per annons på att fånga jobbbeskrivning, löneindikationer och grundläggande företagsinfo blir det ungefär 4 timmar (och du behöver ändå omformatera senare). Med det här flödet lägger du in URL och roll en gång, väntar ett par minuter på skrapningen och AI-extraktionen och granskar sedan det som hamnar i Google Sheets. De flesta team får tillbaka de där 4 timmarna varje vecka, och arket håller sig konsekvent i stället för att glida in i kaos.

Det här behöver du

  • n8n-instans (prova n8n Cloud gratis)
  • Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
  • Bright Data-konto för skrapåtkomst via Web Unlocker.
  • Google Sheets för att lagra och jämföra felfria jobbrader.
  • OpenAI API-nyckel (hämta den i din OpenAI-dashboard).

Kunskapsnivå: Medel. Du kopplar in autentiseringar, sätter indata och är bekväm med att justera prompts och fält.

Vill du inte sätta upp detta själv? Prata med en automationsexpert (gratis 15-minuters konsultation).

Så fungerar det

Du anger en jobb-URL och en rolletikett. Flödet använder en manuell kör-trigger, och sedan sätter steget ”Define Input Fields” job_search_url och job_role så att allt nedströms håller sig organiserat.

Bright Data hämtar innehållet i tre pass. En skrapning fokuserar på hela jobbbeskrivningen (returneras som strukturerad Markdown), en annan letar specifikt efter lönerelevanta signaler, och en tredje samlar in företagsinformation som ofta ligger på en separat sida.

OpenAI extraherar det du faktiskt bryr dig om. Separata AI-extraktionssteg rensar löneuppgifter, förfinar jobbsammanfattningen (ansvar, kvalifikationer, förmåner) och standardiserar företagsfält så att ditt ark inte slutar med fem format för samma sak.

Dina utdata hamnar där de gör nytta. n8n slår ihop allt till en enda post, uppdaterar Google Sheets med en ny rad och kan även skicka resultatet till en webhook eller skriva en tidsstämplad fil till disk.

Du kan enkelt ändra vilka fält som extraheras så att de matchar din datastruktur, så att arket speglar det teamet faktiskt filtrerar på. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Starta arbetsflödet med den manuella triggern och konfigurera noden för verktygsupptäckt som matar resten av flödet.

  1. Lägg till Manual Launch Trigger som arbetsflödets trigger.
  2. Koppla Manual Launch Trigger till MCP Tool Directory.
  3. Öppna MCP Tool Directory och anslut inloggningsuppgifter.
  4. Credential Required: Anslut era mcpClientApi-inloggningsuppgifter i MCP Tool Directory.

Steg 2: anslut MCP-scrapers och definiera indatafält

Definiera URL:erna och indata för jobbroll, och kör sedan tre scrapers parallellt för att hämta jobb-, löne- och företagsdata.

  1. I Define Input Fields, ställ in job_search_url till https://www.indeed.com/viewjob?jk=075f6b95d1ae92ae.
  2. Ställ in company_info till https://www.indeed.com/cmp/Deloitte och job_role till Lead Backend .Net Developer Dallas, TX Hybrid work.
  3. Ställ in webhook_notification_url till https://webhook.site/[YOUR_ID] i Define Input Fields.
  4. Define Input Fields skickar utdata till Job Markdown Scraper, Salary Search Scraper och Company Markdown Scraper parallellt.
  5. I Job Markdown Scraper, ställ in Tool Name till scrape_as_markdown och Tool Parameters till ={ "url": "{{ $json.job_search_url }}" }.
  6. I Salary Search Scraper, ställ in Tool Name till search_engine och Tool Parameters till ={ "query": "{{ $json.job_role }}", "engine": "google" }.
  7. I Company Markdown Scraper, ställ in Tool Name till scrape_as_markdown och Tool Parameters till ={ "url": "{{ $json.company_info }}" }.
  8. Credential Required: Anslut era mcpClientApi-inloggningsuppgifter i Job Markdown Scraper, Salary Search Scraper och Company Markdown Scraper.

Steg 3: konfigurera AI-extraktion för löne-, jobb- och företagsdata

Använd tre informationsextraktorer som drivs av OpenAI-chatmodeller för att omvandla skrapad markdown till strukturerad data.

  1. I Extract Salary Details, ställ in Text till =Extract the salary information from the following content {{ $json.result.content[0].text }} och behåll Schema Type som manual.
  2. I Extract Job Summary, ställ in Text till =Extract markdown to textual data. {{ $json.result.content[0].text }}.
  3. I Extract Company Details, ställ in Text till =Extract markdown to textual data. {{ $json.result.content[0].text }}.
  4. Säkerställ att AI Model for Salary är ansluten som språkmodell för Extract Salary Details, AI Model for Job Text för Extract Job Summary och AI Model for Company för Extract Company Details.
  5. Credential Required: Anslut era openAiApi-inloggningsuppgifter i AI Model for Salary, AI Model for Job Text och AI Model for Company. Dessa inloggningsuppgifter används av de överordnade extraktornoderna.

Tips: Om extraktionsutdata är tomma, verifiera att uppströms-scrapern returnerar result.content[0].text och att modellen gpt-4o-mini är tillgänglig i ert OpenAI-konto.

Steg 4: kombinera utdata och konfigurera parallella åtgärder

Slå ihop de tre AI-utdatana till en och samma payload, aggregera dem och trigga sedan tre parallella åtgärder: filskrivning, webhook-notifiering och uppdatering av Google Sheets.

  1. Koppla Extract Salary Details, Extract Job Summary och Extract Company Details till Combine Outputs med Number of Inputs satt till 3.
  2. Koppla Combine Outputs till Aggregate Results och säkerställ att Fields To Aggregate inkluderar output.
  3. Aggregate Results skickar utdata till Build Binary Payload, Post Webhook Update och Modify Sheets Record parallellt.
  4. I Build Binary Payload, behåll Function Code som angivet för att skapa en Base64-binär payload.
  5. Koppla Build Binary Payload till Write Salary File och ställ in File Name till =d:\JobDesc-SalaryInfo-{{Date.now()}}.json med Operation satt till write.
  6. I Post Webhook Update, ställ in URL till ={{ $('Define Input Fields').item.json.webhook_notification_url }} och ställ in Send Body till true.
  7. I Post Webhook Update, ställ in Body Parameters → response till ={{ $json.output.search_response }}.
  8. I Modify Sheets Record, ställ in Operation till appendOrUpdate och mappa kolumner: salary_max till ={{ $json.output[0].salary_max }}, salary_min till ={{ $json.output[0].salary_min }}, company_info till ={{ $json.output[2].company_info }}, salary_period till ={{ $json.output[0].salary_period }} och job_description till ={{ $json.output[1].job_description }}.
  9. I Modify Sheets Record, ställ in Document ID till [YOUR_ID] och Sheet Name till gid=0.
  10. Credential Required: Anslut era googleSheetsOAuth2Api-inloggningsuppgifter i Modify Sheets Record.

⚠️ Vanlig fallgrop: Sökvägen i Write Salary File använder en Windows-enhetssökväg. Uppdatera den om er n8n-instans kör på Linux eller macOS.

Steg 5: testa och aktivera ert arbetsflöde

Kör arbetsflödet manuellt för att validera skrapning, AI-extraktion och utdataåtgärder, och aktivera det sedan för produktionsanvändning.

  1. Klicka på Execute Workflow i Manual Launch Trigger för att köra ett test.
  2. Bekräfta att Extract Salary Details, Extract Job Summary och Extract Company Details returnerar strukturerad utdata.
  3. Verifiera att Write Salary File skapar en JSON-fil och att Post Webhook Update skickar data till er webhook-URL.
  4. Kontrollera Modify Sheets Record för en ny eller uppdaterad rad med fält för lön och jobbeskrivning.
  5. Växla arbetsflödet till Active när valideringen är klar.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Bright Data-autentisering kan löpa ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera först din Bright Data API-token och inställningarna för Web Unlocker-zonen i Bright Data-dashboarden.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på grund av tomma svar.
  • Standardprompterna i AI-noder är generiska. Lägg in er tonalitet och exakt vilka fält ni vill ha tidigt, annars kommer du redigera utdata i all evighet.

Vanliga frågor

Hur lång tid tar det att sätta upp den här jobbdatas-automatiseringen?

Cirka 45 minuter om du redan har Bright Data, OpenAI och Google Sheets redo.

Behöver jag kunna koda för att automatisera jobbdatas-automatisering?

Nej. Du kopplar främst ihop konton och justerar några extraktionsfält.

Är n8n gratis att använda för det här flödet för jobbdatas-automatisering?

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 volym. Du behöver också räkna in kostnader för OpenAI API (oftast några cent per körning) och din Bright Data-förbrukning.

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ärd och hanterar n8n bra. Egen drift ger dig obegränsat antal körningar men kräver grundläggande serverhantering.

Kan jag anpassa det här flödet för jobbdatas-automatisering för att extrahera tech stack och om rollen kan vara remote?

Ja, och det är en av de bästa anledningarna att använda n8n här. Uppdatera prompterna i stegen ”AI Model for Job Text” och ”Extract Job Summary” så att de uttryckligen ber om fält som tech stack, remote-policy, tidszonskrav eller visumformuleringar. Om lönen är inkonsekvent kan du också skärpa instruktionerna i ”AI Model for Salary” så att den returnerar ett enda normaliserat format (till exempel årsintervall i USD plus noteringar om konfidens). Justera till sist mappningen i ”Modify Sheets Record” så att de nya fälten hamnar i dedikerade kolumner.

Varför misslyckas min Bright Data-anslutning i det här flödet?

Oftast är det ett problem med API-token eller en felkonfiguration av Web Unlocker-zonen. Skapa om din Bright Data-token, bekräfta att din miljövariabel för MCP-servern är satt och kontrollera sedan Web Unlocker-konfigurationen i Bright Datas kontrollpanel igen. Om det fortfarande misslyckas kan målsajten strypa trafiken, så sänk körningstakten eller sprid ut förfrågningar med en Wait.

Hur många jobbannonser kan den här jobbdatas-automatiseringen hantera?

Om du kör n8n med egen drift kan den hantera så många som din server och din Bright Data-plan klarar av att köra på ett stabilt sätt.

Är den här jobbdatas-automatiseringen bättre än att använda Zapier eller Make?

Ofta, ja, eftersom det här flödet bygger på extraktion i flera steg, sammanslagning av utdata och kontroll över hur data formas innan den hamnar i Google Sheets. n8n är också enklare att bygga ut när du vill ha extra grenar, som att spara en kopia på disk, posta till en webhook och skriva till Sheets i samma körning. Zapier och Make kan fortfarande fungera, men du når oftast gränser när du behöver rikare logik eller vill köra med egen drift för skala. Om din process bara är ”URL in, rad ut” och inget mer kan de verktygen vara helt okej. Prata med en automationsexpert om du är osäker.

När det här väl rullar slutar ditt kalkylark vara en kyrkogård av kopierad text och blir något du kan sortera, filtrera och lita på. Bara det gör faktiskt att jobb-research känns lättare.

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