🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Apify to Google Sheets, LinkedIn jobs neatly tracked

Lisa Granqvist Partner Workflow Automation Expert

Job hunting (or competitor hiring research) gets messy fast. You run the same LinkedIn search again, scroll “new” results you already saw, and then lose the best roles because you didn’t save them anywhere.

This Apify job tracking automation hits job seekers first, honestly. But recruiters and agency owners doing client research feel it too. The outcome is simple: fresh LinkedIn job listings land in a Google Sheet and a clean Gmail digest shows up daily, without you babysitting searches.

You’ll see exactly how this workflow pulls listings, formats them, stores them, and emails you a daily summary you can act on.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Apify to Google Sheets, LinkedIn jobs neatly tracked

Why This Matters: Keeping Job Searches Consistent

LinkedIn job searches are easy to start and weirdly hard to maintain. Day one you’re motivated, day four you’re busy, and by week two you’re asking yourself which filters you used last time and why the results look different. Then comes the real tax: opening 20 tabs, copying links into a doc, trying to remember which ones you already applied to, and losing track of timing because “posted 3 days ago” becomes “posted 10 days ago” in a blink. The mental overhead is worse than the clicking. You can’t improve a process you don’t track.

It adds up fast. Here’s where it breaks down in real life.

  • Repeating the same search daily burns about 20 minutes, and you still miss listings that show up at odd hours.
  • Manual saving creates inconsistent notes, so filtering later becomes guesswork instead of a clean shortlist.
  • If you don’t log results somewhere central, you can’t tell which keywords and locations are actually working.
  • Emailing yourself links helps for a day, but it turns into an unsearchable inbox pile by the end of the month.

What You’ll Build: Daily LinkedIn Jobs → Sheet + Email Digest

This workflow runs on a schedule every day at noon. It starts by asking Apify to run a LinkedIn Jobs scraper (the workflow is set up for “LinkedIn Jobs Scraper – No Cookies”), using your keywords, location, and a job limit you control. Once the listings come back, n8n formats the data into two useful outputs at the same time: structured rows for a Google Sheet, and a readable HTML block for an email digest. It also handles common “missing info” cases, like salary not being listed or the role not clearly marked as remote versus on-site, so your email doesn’t look broken. Finally, everything is compiled into one list and sent via Gmail with the current date in the subject line, which makes it easy to search later.

The workflow begins with the noon scheduler. Apify pulls fresh job listings based on your saved search rules, then the workflow formats those listings for humans and for spreadsheets. Google Sheets becomes your system of record, and Gmail becomes your daily “what’s new” alert.

What You’re Building

Expected Results

Let’s say you check LinkedIn jobs once per day with a set of filters and you usually review around 30 listings. Manually, that’s about 30 minutes between searching, opening roles, and saving the ones that look promising. With this workflow, you spend maybe 2 minutes scanning the Gmail digest, then another 5 minutes filtering or tagging inside Google Sheets. So you get roughly 20 minutes back per day, and the big win is that you don’t “lose” roles because you forgot to log them.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Apify for running the LinkedIn Jobs scraper actor.
  • Google Sheets to store and filter job listings.
  • Gmail API credentials (get them from Google Cloud Console).

Skill level: Intermediate. You’ll connect accounts, paste a JSON input, and adjust a few fields like keywords, location, and sheet headers.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

The workflow triggers every day at noon. That consistent timing matters because you stop relying on motivation to “remember to check.” n8n runs it automatically on the schedule trigger.

Apify retrieves LinkedIn job listings based on your search input. You control the keywords (including AND/NOT operators), the location, and the limit, while keeping “date_posted” and sorting set to favor the newest roles.

The job data gets formatted for two destinations. A code step prepares clean HTML for the email and handles missing fields like salary or work arrangement, so the digest still reads well. In parallel, the Google Sheets step appends each listing to your sheet, which becomes your history.

A Gmail digest lands in your inbox. The workflow aggregates the formatted items, then Gmail sends a single email with a date-stamped subject line so you can search “Jobs Digest” later and instantly pull up past days.

You can easily modify the Apify search JSON to track different roles or locations based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

Set the workflow to run automatically at noon every day using the scheduling trigger.

  1. Add and open Daily Noon Scheduler.
  2. Set the schedule rule to trigger at hour 12 (noon) as shown in the node configuration.
  3. Connect Daily Noon Scheduler to Retrieve LinkedIn Listings.

Step 2: Connect Apify for Job Retrieval

Configure the Apify actor to pull LinkedIn job listings based on your criteria.

  1. Open Retrieve LinkedIn Listings and set Operation to Run actor and get dataset.
  2. Set Actor to your LinkedIn jobs scraper actor ID (replace [YOUR_ID] with your actor).
  3. Paste the Custom Body exactly as: { "date_posted": "day", "keywords": "SEO manager", "limit": 10, "location": "United States", "sort": "recent" }.
  4. Credential Required: Connect your apifyApi credentials.

Retrieve LinkedIn Listings outputs to both Format Job HTML and Append Jobs to Sheet in parallel.

Step 3: Set Up Job Formatting and Aggregation

Transform each job into HTML and compile a single list for the email report.

  1. Open Format Job HTML and set Mode to runOnceForEachItem.
  2. Paste the provided JavaScript into Code (it builds the HTML block and handles missing salary/work type).
  3. Connect Format Job HTML to Compile Job List.
  4. In Compile Job List, set Aggregate to aggregateAllItemData.

Tip: Ensure the Apify dataset fields include company, job_title, job_url, location, work_type, and salary so the HTML template renders correctly.

Step 4: Configure Output Destinations (Google Sheets and Gmail)

Store each job in Google Sheets and send a daily summary email.

  1. Open Append Jobs to Sheet and set Operation to append.
  2. Select your spreadsheet in Document and set Sheet Name to the Jobs tab (e.g., gid=0).
  3. Map the columns exactly to these expressions:
    Date = {{ $json.posted_at.toDateTime().format('dd MMM yyyy') }}
    salary = {{ $json.salary ? $json.salary : "Not specified" }}
    company = {{ $json.company }}
    job url = {{ $json.job_url }}
    location = {{ $json.location ? $json.location : "Not specified" }}
    job title = {{ $json.job_title }}
    remote or on-site = {{ $json.work_type ? $json.work_type : "Not specified" }}
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials.
  5. Open Dispatch Summary Email and set Subject to Job summary for {{ $now.format('dd MMMM yyyy')}}.
  6. Set Message to <h2> Job summary for {{ $now.format('dd MMMM yyyy') }}</h2> {{ $json.data.map(item => item.html).join('<br/>') }}.
  7. Credential Required: Connect your gmailOAuth2 credentials.

⚠️ Common Pitfall: If the Google Sheet column headers do not exactly match the schema (e.g., job title vs job_title), the append will fail or write blanks.

Step 5: Test and Activate Your Workflow

Verify the data flows correctly through both parallel branches and then enable the schedule.

  1. Click Execute Workflow to run a manual test from Daily Noon Scheduler.
  2. Confirm that Retrieve LinkedIn Listings sends data to both Format Job HTML and Append Jobs to Sheet in parallel.
  3. Check Append Jobs to Sheet for new rows and verify the formatted values.
  4. Check your inbox to confirm Dispatch Summary Email includes the HTML list from Compile Job List.
  5. Toggle the workflow Active to enable daily runs at noon.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Google Sheets credentials can expire or lack file access. If rows stop appending, check the Google Sheets node credentials and confirm the target spreadsheet is shared with the connected Google account.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Apify actors can return different fields over time, especially across scraper versions. If your email formatting looks off, inspect the Apify output first and update the “Format Job HTML” code to match the current field names.

Quick Answers

What’s the setup time for this Apify job tracking automation?

About 30 minutes if your Apify, Google Sheets, and Gmail credentials are ready.

Is coding required for this job tracking automation?

No. You will mainly connect accounts and edit the Apify search JSON. The formatting step is code-based, but you can use it as-is.

Is n8n free to use for this Apify job tracking workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Apify usage, which depends on the actor and how many jobs you scrape per day.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I modify this Apify job tracking workflow for different use cases?

Yes, and it’s the whole point. You can change the keywords, location, and limit inside the “Retrieve LinkedIn Listings” Apify node, then adjust columns in the “Append Jobs to Sheet” Google Sheets node to match your headers. Common customizations include adding the full job description (if your actor returns it), storing an “Applied?” column, or changing the email HTML layout in “Format Job HTML” to match your preferred skim style.

Why is my Gmail connection failing in this workflow?

Usually it’s expired OAuth consent or the wrong Google account connected. Reconnect Gmail in n8n and confirm the Gmail node is allowed to send email from the address you entered. Also check that the Gmail API is enabled in Google Cloud for the same project tied to your credentials.

What volume can this Apify job tracking workflow process?

Plenty for daily tracking. Most people scrape 20–100 jobs per run, append them to Google Sheets, and send one digest email. The real limit is your Apify actor usage and your n8n plan or server resources, not the workflow structure.

Is this Apify job tracking automation better than using Zapier or Make?

For this use case, n8n is usually a better fit because you can run scheduled scraping, do heavier formatting, and keep the logic in one place without paying extra for multi-step branching. Zapier and Make can work, but you’ll often end up juggling separate steps for scraping, formatting, and deduping, which gets expensive as volume grows. n8n also gives you a self-hosting option, so you’re not boxed in by task limits. The only real downside is setup: you’ll spend a little more time connecting credentials up front. Talk to an automation expert if you’re not sure which fits.

Once this is running, your job search stops depending on daily discipline. The workflow collects, logs, and emails the opportunities so you can focus on picking the right ones and applying well.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal