Skip to main content

Indeed job scraper with AI filtering & company research using Apify and Tavily

Workflow preview

Workflow preview
100%
Indeed job scraper with AI filtering & company research using Apify and Tavily preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

This workflow contains community nodes that are only compatible with the self hosted version of n8n. This workflow scrapes job listings on indeed via Apify, automatically gets that dataset , extrac...

Best for

  • Lead Generation automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, @n8n/n8n-nodes-langchain.openai, n8n-nodes-base.googlesheets, n8n-nodes-base.set, n8n-nodes-base.stickynote, n8n-nodes-base.merge, n8n-nodes-base.removeduplicates, @tavily/n8n-nodes-tavily.tavily

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Adrian Bent.

Original n8n.io source

1.1 Workflow description

Title
Indeed job scraper with AI filtering & company research using Apify and Tavily
Workflow name
Indeed job scraper with AI filtering & company research using Apify and Tavily

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

This workflow scrapes job listings on indeed via Apify, automatically gets that dataset, extracts information about the listing filters jobs off relevance, finds a decision maker at the company and updates a database (google sheets) with that info for outreach. All you need to do is run Apify actor then the database will update with the processed data.

Benefits:

Complete Job search Automation - A webhook monitors the Apify actor which sends a integration and starts the process AI-Powered Filter - Uses ChatGPT to analyze content/context, identify company goals, and filters based on job description Smart Duplicate Prevention - Automatically tracks processed job listings in a database to avoid redundancy Multi-Platform Intelligence - Combines Indeed scraping, web research via Tavily, and enriches each listing Niche Focus - Process content from multiple niches 6 currently (hardcoded) but can be changed to fit other niches (just prompt the "job filter" node)

How It Works:
  1. Indeed Job Discovery:
  • Search and apply filter for relevant job listings, copy and use URL in Apify
  • Uses Apify's Indeed job scraper to scrape job listings from the URL of interest
  • Automatically scrapes the information, stores it in a dataset and initiates a integration
  1. Oncoming Data Processing:
  • Loops over 500 items (can be changed) with a batch size of 55 items (can be changed) to avoid running into API timeouts.
  • Multiple filters to ensure all fields are scrapped with our required metrics (website must exist and number of employees < 250)
  • Duplicate job listings are removed from oncoming batch to be processed
  1. Job Analysis & Filter:
  • An additional filter to remove any job listing from the oncoming batch if it already exists in the google sheets database
  • Then all new job listings gets pasted to chatGPT which uses information about the job post/description to determine if it is relevant to us
  • All relevant jobs get a new field "verdict" which is either true or false and we keep the ones where verdict is true
  1. Enrich & Update Database:
  • Uses Tavily to search for a decision maker (doesn't always finds one) and populate a row in google sheet with information about the job listing, the company and a decision maker at that company.
  • Waits for 1 minute and 30 seconds to avoid google sheets and chatGPT API timeouts then loops back to the next batch to start filtering again until all job listings are processed

Required Google Sheets Database Setup:

Before running this workflow, create a Google Sheets database with these exact column headers: Essential Columns:

jobUrl - Unique identifier for job listings title - Position Title descriptionText - Description of job listing hiringDemand/isHighVolumeHiring - Are they hiring at high volume? hiringDemand/isUrgentHire - Are they hiring at high urgency? isRemote - Is this job remote? jobType/0 - Job type: In person, Remote, Part-time, etc. companyCeo/name - CEO name collected from Tavily's search icebreaker - Column for holding custom icebreakers for each job listing (Not completed in the workflow. I will upload another that does this called "Personalized IJSFE") scrapedCeo - CEO name collected from Apify Scraper email - Email listed on for job listing companyName - Name of company that posted the job companyDescription - Description of the company that posted the job companyLinks/corporateWebsite - Website of the company that posted the job companyNumEmployees - Number of employees the company listed that they have location/country - Location of where the job is to take place salary/salaryText - Salary on job listing

Setup Instructions:

Create a new Google Sheet with these column headers in the first row Name the sheet whatever you please Connect your Google Sheets OAuth credentials in n8n Update the document ID in the workflow nodes

The merge logic relies on the id column to prevent duplicate processing, so this structure is essential for the workflow to function correctly. Feel free to reach out for additional help or clarification at my gmail: [email protected] and I'll get back to you as soon as I can.

Set Up Steps:

  1. Configure Apify Integration:
  • Sign up for an Apify account and obtain API key
  • Get indeed job scraper actor and use Apify's integration to send a HTTP request to your n8n webhook (if test URL doesn't work use production URL)
  • Use Apify node with Resource: Dataset, Operation: Get items and use your Api key as your credentials
  1. Set Up AI Services:
  • Add OpenAI API credentials for job filtering
  • Add Tavily API credentials for company research
  • Set up appropriate rate limiting for cost control
  1. Database Configuration:
  • Create Google Sheets database with provided column structure
  • Connect Google Sheets OAuth credentials
  • Configure the merge logic for duplicate detection
  1. Content Filtering Setup:
  • Customize the AI prompts for your specific niche, requirements or interest
  • Adjust the filtering criteria to fit your needs

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 2 - Job Filter

Type / Role
@n8n/n8n-nodes-langchain.openAi - openAi
Config choices
Version 1.8

Block 3 - Get row(s) in sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 4 - Edit Fields

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 5 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - Filter Outlet

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 7 - Remove Duplicates

Type / Role
n8n-nodes-base.removeDuplicates - removeDuplicates
Config choices
Version 2

Block 8 - True Jobs

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 9 - Append row in sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 10 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 11 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 12 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 13 - Find DM

Type / Role
@tavily/n8n-nodes-tavily.tavily - tavily
Config choices
Version 1

Block 14 - Loop Over Items1

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 15 - Wait

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 16 - Get dataset items

Type / Role
@apify/n8n-nodes-apify.apify - apify
Config choices
Version 1

Block 17 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Edit Fields1

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 19 - Merge

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3.2

Block 20 - Filter 2

Type / Role
n8n-nodes-base.filter - filter
Config choices
Version 2.2

Block 21 - Filter 1

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 22 - Relevant Job posting?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 23 - Anything to add?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

3. Summary Table

Workflow Indeed job scraper with AI filtering & company research using Apify and Tavily
Complexity advanced
Nodes 23
Categories Lead Generation, AI Summarization
Author Adrian Bent
Published 17 Jul 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/6076/6076.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Indeed job scraper with AI filtering & company research using Apify and Tavily do?

This workflow contains community nodes that are only compatible with the self hosted version of n8n. This workflow scrapes job listings on indeed via Apify, automatically gets that dataset , extrac...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Generation, AI Summarization use case.