Extract job listings from career pages with Snapshot Site, GPT-4o, and Google Sheets

Go to Workflow
2 views
Built by Snapshot Site Snapshot Site
Created on July 28, 2026

Description

Quick overview
This workflow runs daily, captures fully rendered careers pages with Snapshot Site, uses an OpenAI chat model to extract structured job-offer fields, and writes the results to Google Sheets while logging any extraction errors to a separate sheet.

How it works
Runs every day at 9:00 AM on a schedule.
Reads a list of careers-page URLs from the “Job Sources” tab in Google Sheets and processes them one at a time.
Uses Snapshot Site to fetch the fully rendered HTML for each URL and routes any API errors to an error log flow.
Cleans the captured HTML by removing scripts/styles and trimming the content before sending it to OpenAI for extraction.
Uses an OpenAI chat model to extract a structured array of job offers (title, company, location, salary, application URL, and more) from the cleaned HTML.
Splits the extracted jobs into individual items and appends or updates rows in the “Job Offers” tab in Google Sheets, deduplicating by applicationUrl.
Appends any extraction errors (URL, message, timestamp) to the “Extraction Errors” tab in Google Sheets and continues processing the remaining sources.

Setup
Install the community node n8n-nodes-snapshot-site and add Snapshot Site credentials.
Add Google Sheets credentials and set the target spreadsheet in the read/write Google Sheets nodes.
Add an OpenAI (or compatible) chat model credential for the Information Extractor’s language model.
Create three Google Sheets tabs named “Job Sources”, “Job Offers”, and “Extraction Errors”, and ensure the “Job Sources” tab includes a url column.
Ensure the “Job Offers” tab has an applicationUrl column for deduplication (and any other columns you want to store), then adjust the schedule time if needed.

Nodes Used (4)

Code
n8n-nodes-base.code
Google Sheets
n8n-nodes-base.googleSheets
Information Extractor
@n8n/n8n-nodes-langchain.informationExtractor
OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi