Upwork Job Scraper and Google Sheets Auto-Logger - n8n Workflow

Use this powerful n8n workflow to automatically scrape fresh Upwork job listings using Apify and log the structured data directly into Google Sheets. Leverage n8n for hands-free automation.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?

Freelancers and Agencies: Who need real-time data on market demand and job trends in specific niches.
Market Researchers: Analyzing competitive freelance job postings and compensation.
n8n Users: Looking for advanced n8n templates combining web scraping (Apify) and data logging (Google Sheets).
Automation Specialists: Seeking a reliable, scheduled n8n trigger automation for recurring data collection.

Overview

Keeping track of new and relevant job listings on large platforms like Upwork can be time-consuming. This specialized n8n workflow solves this problem by providing a fully automated, hands-free solution. Since Upwork does not offer a public API, this n8n template leverages Apifyโ€”a powerful web scraping serviceโ€”to safely and reliably extract structured data.

Once the data is scraped, the n8n node sequence cleans and formats the results before immediately appending them to a designated Google Sheet. This makes the data instantly usable for analysis, filtering, or connecting to dashboards. This robust n8n workflow runs on a set schedule (hourly by default), ensuring you always have the freshest insights without manual effort. Adopting this n8n automation means optimizing your job application strategy based on objective market data.

How it Works

This efficient n8n workflow operates in three distinct phases:


  1. Scheduled Activation: The process begins with the Schedule Trigger n8n node, which acts as the primary n8n trigger. This node is configured to run automatically every hour, ensuring continuous monitoring for new job postings.

  2. Data Fetching (Scraping): The workflow immediately proceeds to the Fetch Upwork Jobs using Apify HTTP Request n8n node. This node executes a POST request to your pre-configured Apify Actor Task ID. Apify scrapes the Upwork job board based on your configured keywords and returns a structured JSON payload containing job titles, descriptions, skills, and links.

  3. Transformation and Logging: The resulting JSON array is passed to the Format scrape Data n8n node (Set node). This node ensures that only essential fields (title, description, skills, link, postedDate) are retained and correctly formatted. Finally, the cleaned data is passed to the Log Jobs to Google Sheets n8n node, which uses the append operation to insert each scraped job as a new row in your target spreadsheet. This completes the data logging cycle of the n8n workflow.

Installation Guide

To deploy this n8n template, follow these steps:


  1. Import the n8n workflow: Copy the provided JSON and import it into your n8n instance using the 'New' -> 'Import from JSON' function.

  2. Set up Apify Credentials: You must have a working Apify account and a configured Upwork job scraper actor (task). In the Fetch Upwork Jobs using Apify n8n node, replace ID> and API_TOKEN> in the URL field with your actual values.

  3. Configure Google Sheets Credentials: Create new OAuth2 credentials for the Google Sheets account, granting n8n access to modify your spreadsheets. This is vital for the final n8n node to function.

  4. Specify Google Sheet: In the Log Jobs to Google Sheets n8n node, link your newly created Google Sheets credential. Then, specify the Document ID and Sheet Name (Sheet1 or gid=0 is the default) where the job data should be logged.

  5. Activate: Save the n8n workflow and toggle the status switch to 'Active'. The n8n trigger will now run hourly.

Node Details

Check Upwork Jobs - Trigger (Schedule Trigger):
Function: Serves as the initial n8n trigger, activating the entire n8n workflow on a recurring basis.
Key Configuration: Configured to run every hour (interval: hours).
Fetch Upwork Jobs using Apify (HTTP Request n8n node):
Function: Executes the web scraping logic by calling the Apify API sync endpoint, which runs a job scraping actor and returns the dataset items.
Key Configuration: Uses the POST method and requires a URL containing the Apify Task ID and API Token.
Format scrape Data (Set n8n node):
Function: Transforms and cleans the raw JSON output from Apify, selecting only the necessary fields for the spreadsheet.
Key Configuration: Defines five assignments: title, description, postedDate, skills, and link, using n8n expressions like ={{ $json.title }} to map the incoming data.
Log Jobs to Google Sheets (Google Sheets n8n node):
Function: Takes the formatted data and appends it as new rows to the target Google Sheet document.
Key Configuration: Operation set to Append. Columns are explicitly mapped using expressions (link, title, skills, etc.) to match the expected sheet headers, finalizing the data pipeline within this n8n workflow.

Related n8n Workflows

Free

Nodes: 5 Nodes
Updated: December 26 2025
View all
Created by

Building AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos

Featured*