Jobbsökande blir snabbt rörigt. Du gör samma sökningar om och om igen, kopierar länkar till ett dokument, tappar bort vad du redan har granskat och får ändå dubbletter.
Den här JSearch Sheets automation riktar sig i första hand till rekryterare och HR-koordinatorer, men den sparar också tid för byråägare som kurerar roller åt kandidater. Du får ett enda, felfritt Google Sheet som uppdaterar sig självt, så att du kan lägga tiden på urval i stället för insamling.
Du får se vad flödet gör, vad du behöver för att köra det och hur logiken håller din jobblista strukturerad och fri från dubbletter.
Så fungerar den här automatiseringen
Här är det kompletta flödet du kommer att sätta upp:
n8n Workflow Template: JSearch till Google Sheets: kurerade jobb på ett ställe
flowchart LR
subgraph sg0["⏰ Schedule: Trigger Every Day Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "⏰ Schedule: Trigger Every Day", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "📄 Read Pending Job Role from..", pos: "b", h: 48 }
n2["<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/>🌐 Search Jobs via JSearch API"]
n3["<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/code.svg' width='40' height='40' /></div><br/>🧠 Extract Job Data from API .."]
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "🔍 Filter Valid Job Listings", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "📊 Write Jobs to Output Sheet", pos: "b", h: 48 }
n6@{ icon: "mdi:database", form: "rounded", label: "✅ Mark Job as Scraped in Sou..", pos: "b", h: 48 }
n4 --> n5
n0 --> n1
n5 --> n6
n2 --> n3
n1 --> n2
n3 --> n4
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 n0 trigger
class n4 decision
class n1,n5,n6 database
class n2 api
class n3 code
classDef customIcon fill:none,stroke:none
class n2,n3 customIcon
Varför detta spelar roll: jobbkurering blir lätt ett administrativt slit
Att hitta bra roller är inte det svåra. Det svåra är allt runt omkring: köra sökningar, kopiera resultat, rensa kolumner, ta bort dubbletter och försöka komma ihåg vilka roller du redan har granskat. En enda ”snabbsökning” blir ett litet adminprojekt. Sedan gör du om det i morgon eftersom marknaden rörde på sig, din kund ändrade prioriteringar eller en rekryterande chef bad om ”en batch till” i en annan ort. Det är mentalt dränerande och stjäl i tysthet timmar som du kunde lagt på att faktiskt utvärdera kandidater eller kontakta rekryterande team.
Friktionen byggs på. Här brukar det oftast fallera.
- Du kör om samma söktermer eftersom det inte finns någon pålitlig ”bearbetad”-status någonstans.
- Kopiera/klistra från jobbsajter skapar inkonsekventa fält, så filtrering på plats eller företag blir ett irritationsmoment.
- Dubbletter slinker igenom och slösar granskningstid, särskilt när flera i teamet tar fram roller parallellt.
- Din ”single source of truth” flyttar mellan flikar, mejl och anteckningar, vilket gör rapportering och överlämningar onödigt smärtsamma.
Det du bygger: JSearch-resultat loggas automatiskt till Google Sheets
Det här flödet ger dig ett enkelt operativsystem för jobbkurering. Enligt ett schema du väljer (dagligen är vanligt) kontrollerar n8n ett Google Sheet efter en rollrad markerad ”Pending”, till exempel ”Customer Success Manager” i ”Austin”. Den använder de fälten för att fråga JSearch API, hämtar jobbannonser och tolkar sedan svaret till strukturerade rader som du faktiskt kan filtrera och sortera. Innan något skrivs validerar det posterna så att du inte förorenar ditt ark med tomma eller skräpannonser. Till sist lägger det till de felfria jobben i ditt utdataark och uppdaterar den ursprungliga förfrågeraden från ”Pending” till ”Scraped” så att den inte körs igen. Sätt upp det en gång, så blir ditt kalkylark ett levande jobbflöde.
Flödet börjar med en schemalagd hämtning från ditt ”Job Scraper”-ark. Sedan anropar det JSearch, strukturerar svaret och behåller bara giltiga jobbposter. Resultatet hamnar i ett ”Job Listing”-ark och din indatarad markeras som bearbetad så att du inte jagar dubbletter senare.
Det du bygger
| Det som automatiseras | Det du uppnår |
|---|---|
|
|
Förväntade resultat
Säg att du kurerar jobb för 5 roller varje vecka. Manuellt ser en typisk cykel ut så här: 10 minuter för att köra sökningen, 15 minuter för att kopiera/klistra och rensa, och 5 minuter för att ta bort dubbletter – alltså cirka 30 minuter per roll (ungefär 2–3 timmar i veckan). Med det här flödet lägger du in 5 ”Pending”-rader en gång, sedan hämtar och loggar den schemalagda körningen resultaten automatiskt; din tid blir granskning, kanske 5 minuter per roll. Det är runt 2 timmar tillbaka varje vecka, utan att du behöver ändra hur du jobbar.
Innan du börjar
- n8n-instans (testa n8n Cloud gratis)
- Alternativ för egen drift om du föredrar det (Hostinger fungerar bra)
- Google Sheets för in- och utdatatabellerna.
- JSearch API-åtkomst för att hämta jobbannonser programmatiskt.
- JSearch API-nyckel (hämta den i din JSearch/RapidAPI-dashboard)
Kunskapsnivå: Nybörjare. Du kopplar Google-inloggning, klistrar in en API-nyckel och bekräftar att dina kolumnnamn i arket matchar.
Vill du att någon bygger detta åt dig? Prata med en automationsexpert (gratis 15-minuters konsultation).
Steg för steg
Ett dagligt schema startar allt. n8n kör automatiskt i den takt du ställer in, så du slipper komma ihåg att ”gå och hämta jobb” varje morgon.
Google Sheets ger nästa sökförfrågan. Flödet läser en rad från ditt ”Job Scraper”-ark där status är ”Pending” och hämtar sedan värdena för Position och Location som definierar vad du vill hitta.
JSearch frågas och resultaten struktureras. En HTTP-förfrågan anropar JSearch API, och därefter omvandlar ett kort tolkningssteg svaret till individuella jobbposter. Efter det filtrerar en validering bort tomma eller ogiltiga poster så att bara användbara rader går vidare.
Felfria annonser hamnar i ditt utdataark och indataraden uppdateras. n8n lägger till jobbraderna i ditt ”Job Listing”-ark och uppdaterar sedan den ursprungliga förfrågeraden till ”Scraped” så att den inte behandlas igen.
Du kan enkelt ändra statusvärdena ”Pending/Scraped” så att de passar din interna process, eller utöka vilka fält som skrivs till utdataarket (som lön, remote-flagga eller annons-URL). Se hela implementationsguiden nedan för anpassningsalternativ.
Steg-för-steg-implementeringsguide
Steg 1: konfigurera Schedule Trigger
Ställ in arbetsflödet så att det körs automatiskt varje dag vid den angivna timmen.
- Lägg till noden ⏰ Daily Schedule Trigger som start för arbetsflödet.
- Ställ in schemaregeln att köras dagligen kl.
9(noden använder Trigger At Hour med värdet9).
Steg 2: anslut Google Sheets
Konfigurera källarket för väntande roller och anslut Google Sheets för alla kalkylarksåtgärder.
- Öppna 📄 Fetch Pending Role Row och välj arket med namnet
Your_Sheet_Noi dokumentet med etikettenJob Scraper. - Ställ in filtret för att hitta rader där Status är lika med
Pendingoch aktivera Return First Match. - Credential Required: Anslut era
googleSheetsOAuth2Api-autentiseringsuppgifter i 📄 Fetch Pending Role Row. - Credential Required: Anslut era
googleSheetsOAuth2Api-autentiseringsuppgifter i 📊 Append Jobs to Sheet och ✅ Update Source Row Status.
Steg 3: konfigurera API-anropet för jobbsökning
Bygg HTTP-begäran som söker efter jobb baserat på rollraden från Google Sheets.
- I 🌐 Job Search API Request ställer ni in URL till
https://jsearch.p.rapidapi.com/search. - Aktivera Send Query och lägg till parametern query med värdet
{{ $json.Position + ' in ' + $json.Location }}. - Ställ in frågeparametrarna page till
1och num_pages till1. - Lägg till headern X-RapidAPI-Key med värdet
[CONFIGURE_YOUR_API_KEY]och X-RapidAPI-Host somjsearch.p.rapidapi.com.
[CONFIGURE_YOUR_API_KEY] med er riktiga RapidAPI-nyckel, annars misslyckas anropet.Steg 4: konfigurera bearbetningsnoderna
Tolka API-svaret och filtrera bort ogiltiga jobbposter innan ni skriver till arket.
- I 🧠 Parse Job Results Data behåller ni den medföljande JavaScript-koden som mappar jobbdata till fält som title, company och apply_link.
- I 🔍 Validate Job Records ställer ni in villkoret att kontrollera att title finns genom att använda
{{ $json.title }}.
Steg 5: konfigurera utdata och statusuppdateringar
Lägg till giltiga jobbposter i destinationsarket och uppdatera status för källraden.
- I 📊 Append Jobs to Sheet ställer ni in Operation till
appendOrUpdateoch mappar kolumner:
• Title →{{ $json.title }}
• Company →{{ $json.company }}
• Location →{{ $json.location }}
• Is Remote →{{ $json.is_remote }}
• Posted On →{{ $json.posted_date }}
• Apply Link →{{ $json.apply_link }} - Ställ in Matching Columns till
Apply Linkför att förhindra dubbla poster. - I ✅ Update Source Row Status ställer ni in Status till
Scrapedoch mappar row_number till{{ $('📄 Fetch Pending Role Row').item.json.row_number }}. - Bekräfta att dokumentet och arket för ✅ Update Source Row Status pekar på
Job ScraperochYour_Sheet_No.
Steg 6: testa och aktivera ert arbetsflöde
Kör ett manuellt test för att verifiera flödet från början till slut och aktivera sedan för daglig automatisering.
- Klicka på Execute Workflow för att köra ett manuellt test som startar från ⏰ Daily Schedule Trigger.
- Verifiera att 📊 Append Jobs to Sheet lägger till jobbrader och att ✅ Update Source Row Status ändrar källraden till
Scraped. - Om arbetsflödet lyckas, växla Active för att aktivera dagliga körningar.
Felsökningstips
- Google Sheets-inloggningen kan löpa ut eller sakna redigeringsbehörighet. Om tillägg misslyckas, kontrollera det anslutna Google-kontot i n8n Credentials och bekräfta att målarket är delat på rätt sätt.
- Om du använder Wait-noder eller extern rendering varierar processtiderna. Öka väntetiden om nedströmsnoder fallerar på tomma svar.
- JSearch API-anrop kan misslyckas på grund av en ogiltig nyckel eller rate limits. Kontrollera HTTP Request-nodens response body och statuskod först, eftersom den oftast säger exakt vad som är fel.
Snabba svar
Cirka 30 minuter om dina Sheets och din API-nyckel är redo.
Nej. Du kopplar främst konton och klistrar in din JSearch API-nyckel. Tolkningssteget ingår redan i flödet.
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 med kostnader för JSearch API beroende på plan och användning.
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 hanterar n8n bra. Egen drift ger dig obegränsade körningar men kräver grundläggande serverhantering.
Ja, och det är enkelt. Du kan ändra vilka rader som plockas upp genom att redigera Google Sheets-steget ”Fetch Pending Role Row” (till exempel använda ”Queued” i stället för ”Pending”), och du kan ändra vad som skrivs genom att uppdatera fältmappningen i ”Append Jobs to Sheet”. Vanliga anpassningar är att hämta fler fält (lön, remote/hybrid), lägga till striktare valideringsregler eller ändra schemat till att köra varannan timme.
Oftast handlar det om behörigheter. Anslut Google Sheets-credentialn igen i n8n och se till att kalkylarket ägs av, eller är delat med, samma Google-konto. Bekräfta också att fliknamnen i arket matchar vad noderna förväntar sig, eftersom en omdöpt flik kan se ut som ett ”saknad fil”-fel.
Tillräckligt för de flesta små team. På n8n Cloud beror din gräns på planens månatliga körningar, och varje körning räknas vanligtvis som en körning plus de items som behandlas. Om du kör egen drift finns inget plattforms-tak för körningar; din server och JSearch API-begränsningar blir flaskhalsen. I praktiken, om du kurerar några roller per dag med en eller två sidor resultat per roll, så går det utan problem.
Ofta, ja, eftersom det här flödet behöver tolkning, filtrering och statusuppdateringar som är krångliga (och ibland dyra) i enklare automationsverktyg. n8n hanterar flersteglogik snyggt, och du kan köra egen drift med obegränsade körningar om volymen ökar. Zapier eller Make kan fortfarande fungera om du bara vill ha en enkel ”API-anrop → lägg till rader”-setup med minimal datarensning. Så fort du bryr dig om validering och att undvika att bearbeta samma förfrågerad igen brukar n8n kännas mindre skört. Vill du ha en snabb rekommendation baserat på din volym och ditt team, prata med en automationsexpert.
När dina sökningar automatiskt flödar in i ett felfritt ark slutar jobbkurering kännas som en daglig omstart. Du granskar bättre roller snabbare, och flödet sköter de repetitiva delarna i bakgrunden.
Kontakta oss
Hör av dig, så diskuterar vi hur just din verksamhet kan dra nytta av alla fantastiska möjligheter som AI skapar.