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

Bright Data + OpenAI: smartare matchrapporter för cv

Rickard Andersson Partner, Nodenordic.se

Att matcha CV:n mot jobbannonser låter enkelt tills du sitter med 30 annonser, fem listor med “måste-ha”-kompetenser och en hög PDF:er som alla säger “resultatinriktad”. Manuell poängsättning blir snabbt rena gissningar. Och ärligt talat: det är utmattande.

Den här Bright Data OpenAI-automationen träffar rekryterare först, men HR-tech-grundare och karriärcoacher känner av samma smärta på olika sätt. Du får en repeterbar matchrapport baserad på faktiska, aktuella krav i annonsen – inte magkänsla. Det är skillnaden mellan “jag tror att den här kandidaten passar” och “här är varför, med underlag”.

Nedan ser du hur workflowet hämtar riktiga jobbannonser, extraherar de faktiska kraven, kör AI-matchning och levererar en korrekt formaterad rapport till en webhook (och sparar en kopia på disk för revision).

Så fungerar den här automatiseringen

Hela n8n-workflowet, från trigger till slutlig output:

n8n Workflow Template: Bright Data + OpenAI: smartare matchrapporter för cv

Problemet: CV-matchning är långsam, subjektiv och svår att skala

De flesta team “matchar” fortfarande ett CV genom att klistra in en jobblänk i en webbläsarflik, skumma beskrivningen och sedan leta efter nyckelord i CV:t. Det funkar för en kandidat. Det faller isär vid tio. Du jämför olika versioner av samma annons, missar kritiska krav som gömmer sig halvvägs ner på sidan och skriver inkonsekventa anteckningar som inte håller när en rekryterande chef frågar: “Varför gick vi vidare/inte vidare?” Samtidigt ändrar jobbsajter layout, LinkedIn blockerar scraping och processen glider tyst mot bias när människor blir trötta och börjar mönstermatcha i stället för att läsa.

Friktionen byggs på. Här är var det brukar haverera i praktiken.

  • Att granska 20 jobbannonser manuellt kan ta cirka 2 timmar innan du ens tittar på CV:n.
  • Två rekryterare kan poängsätta samma CV olika eftersom det inte finns en konsekvent bedömningsmall kopplad till jobbkraven.
  • Att copy-pasta beskrivningar och anteckningar till dokument skapar röriga underlag, så du kan inte revidera beslut i efterhand.
  • När du försöker skala är det första som brukar gå sönder dataåtkomsten (rate limits, blockerade sidor och ofullständig jobbtext).

Lösningen: live-hämtning av jobb + AI-matchning + delbara rapporter

Det här workflowet gör jobb–CV-matchning till en pipeline du kan lita på. Det börjar med att hämta jobbannonser från LinkedIn (eller liknande källor) via Bright Datas MCP-verktyg, som är byggt för scraping utan att bli blockerat var femte minut. Därefter öppnar det varje jobbsida, extraherar den faktiska jobbtexten och skickar den till ett OpenAI-drivet matchningssteg tillsammans med kandidatens CV som du tillhandahåller. AI:n producerar strukturerad matchoutput (poäng plus motivering), så du får inte ett fluffigt stycke som inte går att använda. Till sist skickar workflowet rapporten till en webhook-endpoint du väljer och sparar en filkopia på disk, vilket är smidigt för leveranser till kund, compliance eller bara för att hålla ordning.

Workflowet startar med dina indatafält (CV-text plus sökkriterier). Bright Data hämtar jobbannonser och hanterar paginering så att du kan processa mer än en resultatsida utan manuell klickning. OpenAI utvärderar sedan varje jobb mot CV:t och returnerar en konsekvent matchrapport som är redo att dela.

Det du får: automatisering vs. resultat

Exempel: så här ser det ut

Säg att du matchar en kandidat mot 15 live-roller. Manuellt: om du lägger cirka 7 minuter på att öppna varje annons, hitta de faktiska kraven och ta anteckningar blir det ungefär 2 timmar (och det är lätt att missa detaljer i den femte fliken). Med det här workflowet skickar du in CV:t och filtren en gång (cirka 10 minuter), Bright Data hämtar annonserna och extraherar text i bakgrunden och sedan genererar OpenAI matchrapporten. Du kommer fortfarande att granska outputen, men grovjobbet är gjort och du får samma format för alla 15 roller.

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 liveåtkomst till jobb-scraping
  • OpenAI för att poängsätta CV:n mot krav
  • Bright Data API-token (hämta den i din Bright Data-dashboard)

Kunskapsnivå: Mellan. Du kopplar in autentiseringsuppgifter, redigerar indatafält och validerar en webhook-endpoint.

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

Så fungerar det

Indata sätter allt i rullning. Du startar workflowet och anger en kandidats CV samt kriterier för jobbsökning (nyckelord, filter och var du vill leta).

Bright Data samlar in jobbannonser. Workflowet använder Bright Datas MCP-klient för att hämta flera jobbannonser, tolkar länkar och expanderar dem till enskilda objekt så att varje annons kan behandlas stabilt, även över flera sidor.

Jobbsidor öppnas och städas upp. För varje jobblänk hämtar Bright Data sidinnehållet och workflowet extraherar den faktiska jobbannons-texten, så att OpenAI matchar mot krav i stället för sidbrus.

OpenAI skapar en strukturerad matchrapport. AI-matchningssteget jämför CV:t med de extraherade jobbkraven, returnerar poäng och motivering, och sedan skickar workflowet resultatet till din webhook och skriver en kopia till disk. Om du vill ha rapportering kan det också lägga till rader i Google Sheets.

Du kan enkelt justera jobbkällor och poängkriterier så att det passar din process. Se hela implementationsguiden nedan för anpassningsalternativ.

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

Steg 1: konfigurera den manuella triggern

Det här arbetsflödet startar med en manuell trigger för körningar av CV-matchning vid behov.

  1. Lägg till Manual Execution Start som er triggernod (Manual Trigger).
  2. Koppla Manual Execution Start till Retrieve BrightData Tools för att starta flödet för datahämtning.

Steg 2: anslut BrightData och definiera indatafält

Konfigurera BrightData-verktyg och definiera CV:t och sökparametrarna som kommer att styra jobbsökningen.

  1. Öppna Retrieve BrightData Tools och lägg till autentiseringsuppgifter. Credential Required: Anslut era mcpClientApi-uppgifter.
  2. I Assign Input Fields ställer ni in följande tilldelningar: resume till I am a senior Python developer with 9+ years of experience., keywords till Python, location till Remote och job_search_base_url till https://www.linkedin.com/jobs/search/.
  3. Koppla Assign Input Fields till BrightData Job Listing Fetch.
  4. I BrightData Job Listing Fetch ställer ni in Tool Name till scrape_as_html, Operation till executeTool och Tool Parameters till ={ "url": "{{ $json.job_search_base_url }}?keywords={{ $json.keywords }}&location={{ $json.location }}" }. Credential Required: Anslut era mcpClientApi-uppgifter.

⚠️ Vanlig fallgrop: Om er sök-URL blockeras av LinkedIn, lägg till proxyservrar eller använd en annan käll-URL i Assign Input Fields.

Steg 3: tolka jobblänkar och iterera listningar

Extrahera länkar till jobbannonser, dela upp dem i enskilda objekt och iterera igenom varje jobbsida.

  1. Konfigurera Parse Job Links med Text satt till =Extract all the job links from the provided content. Here's the content: {{ $json.result.content[0].text }} och Input Schema satt till { "type": "array", "properties": { "link": { "type": "string" } } }.
  2. Säkerställ att OpenAI Chat for Links är ansluten som språkmodell för Parse Job Links. Credential Required: Anslut era openAiApi-uppgifter på OpenAI Chat for Links.
  3. I Expand Output Items ställer ni in Field To Split Out till output så att varje jobblänk blir ett eget objekt.
  4. Bekräfta att Expand Output Items skickar utdata till Batch Item Iterator, som sedan routar varje objekt till BrightData Job Page Fetch.
  5. I BrightData Job Page Fetch ställer ni in Tool Name till scrape_as_html, Operation till executeTool och Tool Parameters till ={ "url": "{{ $json.output }}" }. Credential Required: Anslut era mcpClientApi-uppgifter.

Tips: Om strukturen för jobblänkarna ändras, uppdatera prompten i Parse Job Links så att den speglar det nya HTML-mönstret.

Steg 4: konfigurera AI-extraktion och matchning

Använd AI för att extrahera jobbbeskrivningar och utvärdera CV-matchning med strukturerad output.

  1. I Extract Job Description ställer ni in Text till =Extract the job description in a textual format Here's the content: {{ $json.result.content[0].text }} och säkerställ att attributet job_description är definierat.
  2. Säkerställ att OpenAI Chat for Desc är ansluten som språkmodell för Extract Job Description. Credential Required: Anslut era openAiApi-uppgifter på OpenAI Chat for Desc.
  3. I AI Match Evaluation ställer ni in Text till =Hi, you are a helpful job matcher, you analyze the given resume and job description and providing a job matching skills and score in a JSON format. Here's the Resume: {{ $('Assign Input Fields').item.json.resume }} Here's the Job Desc: {{ $json.output.job_description }} och behåll Prompt Type som define.
  4. Koppla Structured Result Parser som output-parser för AI Match Evaluation och klistra in det angivna JSON-schemaexemplet i JSON Schema Example. Den här parsern tar inte emot autentiseringsuppgifter direkt—säkerställ att eventuella nödvändiga AI-uppgifter är satta på OpenAI Chat for Matching.
  5. Säkerställ att OpenAI Chat for Matching är ansluten som språkmodell för AI Match Evaluation. Credential Required: Anslut era openAiApi-uppgifter på OpenAI Chat for Matching.

⚠️ Vanlig fallgrop: Output-parsern tvingar igenom schemat. Om modellen svarar i ett format som inte är JSON, justera prompten i AI Match Evaluation för att betona strikt JSON-output.

Steg 5: konfigurera leverans av output och fillagring

Skicka matchningsresultatet till en webhook och spara det som en fil. De här åtgärderna körs parallellt efter utvärderingen.

  1. AI Match Evaluation skickar output parallellt till både Build Binary Match File och Post Match Webhook.
  2. I Build Binary Match File behåller ni funktionskoden som konverterar JSON till base64-binärdata: items[0].binary = { data: { data: new Buffer(JSON.stringify(items[0].json, null, 2)).toString('base64') } }; return items;.
  3. I Write Match File to Disk ställer ni in Operation till write och File Name till =d:\Job-Match-{{$now.toSeconds()}}.json.
  4. I Post Match Webhook ställer ni in URL till https://webhook.site/7b5380a0-0544-48dc-be43-0116cb2d52c2, Content Type till multipart-form-data och lägger till en body-parameter job_match_response med värdet ={{ $json.output.job_match_analysis.toJsonString() }}.
  5. Bekräfta att Post Match Webhook routar till Batch Item Iterator för att fortsätta bearbeta återstående jobblänkar.

⚠️ Vanlig fallgrop: Sökvägen i Write Match File to Disk är Windows-specifik. Uppdatera den om er n8n-instans körs på Linux eller i Docker.

Steg 6: testa och aktivera ert arbetsflöde

Kör ett manuellt test för att validera flödet från början till slut innan ni aktiverar användning i produktion.

  1. Klicka på Execute WorkflowManual Execution Start för att köra ett test.
  2. Verifiera att BrightData Job Listing Fetch returnerar HTML, att Parse Job Links extraherar länkar och att BrightData Job Page Fetch hämtar varje jobbsida.
  3. Bekräfta att Extract Job Description ger output med en job_description och att AI Match Evaluation returnerar strukturerad JSON som parsas av Structured Result Parser.
  4. Kontrollera att Post Match Webhook tar emot en payload och att Write Match File to Disk skapar en JSON-fil med ett tidsstämplat filnamn.
  5. När ni är nöjda, slå om arbetsflödet till Active för användning i produktion.
🔒

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

Få den kompletta implementeringsguiden + nedladdningsbar mall

Vanliga fallgropar

  • Bright Data-autentisering kan gå ut eller kräva specifika behörigheter. Om något slutar fungera: kontrollera din Bright Data API-token och zone-inställningar i Bright Datas kontrollpanel först.
  • Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om noder längre fram fallerar på tomma svar.
  • Standardprompter i AI-noder är generiska. Lägg in er tonalitet tidigt, annars kommer du att redigera output för alltid.

Vanliga frågor

Hur lång tid tar det att sätta upp den här Bright Data OpenAI-automationen?

Räkna med cirka 45 minuter om dina Bright Data- och OpenAI-konton är redo.

Behöver jag kunna koda för att automatisera Bright Data OpenAI-matchning?

Nej. Du klistrar främst in autentiseringsuppgifter, redigerar några indatafält och testar webhooken en gång.

Är n8n gratis att använda för det här Bright Data OpenAI-workflowet?

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 med OpenAI API-användning och kostnaderna för din Bright Data-plan.

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

Två alternativ: n8n Cloud (managed, 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 obegränsade körningar men kräver grundläggande serveradministration.

Kan jag anpassa det här Bright Data OpenAI-workflowet för andra jobbsajter?

Ja, men du behöver justera både scraping och extrahering. Du kan byta Bright Data-indata för jobbkällan för att rikta in dig på sajter som Indeed eller ZipRecruiter genom att ändra kriterierna i steget “Assign Input Fields” och i Bright Data-hämtningssteget. Uppdatera sedan extraktionsprompten i jobbannons-extraktorn så att den plockar rätt fält från den nya sidstrukturen. Vanliga justeringar är att vikta specifika kompetenser, lägga till en “relevans för erfarenhet”-poäng och formatera slutrapporten som Markdown för enkel delning.

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

Oftast är det ett API-token-problem eller en zone som inte är konfigurerad som workflowet förväntar sig. Bekräfta att token fortfarande är giltig, att din Web Unlocker-zone finns och att miljövariabeln är korrekt satt i din MCP-klientkonfiguration. Om det bara fallerar vid större körningar kan du slå i rate limits eller få partiella sid-svar, så minska batchstorleken och testa igen.

Hur många jobbannonser kan den här Bright Data OpenAI-automationen hantera?

Den klarar många, men dina begränsningar kommer från din n8n-plan, dina serverresurser och de scraping-/API-kvoter du betalar för.

Är den här Bright Data OpenAI-automationen bättre än att använda Zapier eller Make?

Ofta ja, eftersom den här typen av workflow behöver batchning, branching och strukturerade AI-output utan att bli en skör kedja av betalda tasks. n8n är också enklare att köra i egen drift, vilket spelar roll när du processar många jobbannonser. Zapier eller Make kan fortfarande fungera för ett lätt “skicka en rapport till e-post”-flöde, men det blir snabbt klumpigt när du lägger till paginering och scraping i flera steg. Om du är osäker, prata med en automations-expert så pekar vi dig mot den enklaste setupen som ändå fungerar.

När det här väl rullar slutar jobb–CV-matchning att vara ett dagligt tidssluk och blir ett repeterbart system du kan lita på. Workflowet tar hand om grovjobbet så att du kan fokusera på besluten.

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

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Få prisoffert redan idag!
Få prisoffert redan idag!

Berätta vad ni behöver hjälp med så hör vi av oss inom en arbetsdag!

Launch login modal Launch register modal