Log daily LinkedIn job postings to Google Sheets with Apify
Go to WorkflowDescription
Quick overview
This workflow runs every morning to search LinkedIn jobs via the Apify LinkedIn Jobs Scraper and appends new job postings to Google Sheets while preventing duplicates by LinkedIn job ID.
How it works
Runs every morning on a schedule trigger.
Builds the search parameters (keywords, location, date range, per-keyword limit, and cost cap) for the LinkedIn job search.
Calls the Apify LinkedIn Jobs Scraper Actor to fetch recent LinkedIn job postings (including any extracted contact emails).
Filters the results to keep only valid job rows, formats fields (including salary and a “foundAt” timestamp), and stops the run with an error if no jobs are returned.
Appends new jobs to Google Sheets or updates existing rows by matching on the job id to avoid duplicates.
Setup
Create an Apify account, copy your Apify API token, and add an n8n HTTP Header Auth credential that sends Authorization: Bearer .
Create a Google Sheet with columns id, title, company, location, seniority, employmentType, salary, applicants, postedAt, url, emails, and foundAt, then connect your Google Sheets credentials in the Google Sheets node.
Select your target Google Sheet document and tab in the Google Sheets node and adjust the keywords, location, limits, and maxTotalChargeUsd values in the search settings before activating the workflow.
Additional info
Get fresh LinkedIn job postings in a Google Sheet every morning, without a LinkedIn account, cookies or any risk to your profile.
Who it is for: recruiters, job seekers, freelancers, agencies and sales teams who watch which companies are hiring for which roles.
How it works
A schedule trigger starts the workflow every morning at 8:00.
You list your job titles and location once, in the "Search settings" node.
The LinkedIn Jobs Scraper Actor on Apify reads LinkedIn's public job pages (no login) and returns title, company, location, seniority, salary when posted, number of applicants, link and recruiter emails found in the posting.
Error rows are removed. If a run returns no jobs at all, the workflow stops with a clear error message instead of quietly leaving an empty sheet.
New jobs are added to your Google Sheet. A job already in the sheet is not duplicated (matched on the LinkedIn job id).
Setup (about 5 minutes)
Create a free Apify account and copy your API token (Settings > API & Integrations).
In n8n add a Header Auth credential: Name Authorization, Value Bearer YOUR_TOKEN.
Create a Google Sheet with these column headers in row 1: id, title, company, location, seniority, employmentType, salary, applicants, postedAt, url, emails, foundAt. Connect it in the last node.
Edit the job titles and location, run once manually, then activate.
Cost: about $0.003 per job (+$0.002 when the posting contains an email). The run has a spending cap (default $1), so a wrong setting cannot turn into a big bill. 25 jobs per run is roughly 8 cents.
Actor used: https://apify.com/lergassy/linkedin-jobs-scraper