Automate Upwork Job Tracking with n8n and MongoDB Integration

This workflow automates Upwork job tracking by querying fresh Python and Java job posts, filtering them by time, avoiding duplicates via MongoDB, and sending new listings to Slack. It solves manual job search inefficiencies and ensures you never miss relevant gigs.
scheduleTrigger
httpRequest
mongoDb
+5
Workflow Identifier: 1551
NODES in Use: scheduleTrigger, if, set, httpRequest, mongoDb, merge, slack, stickyNote

Press CTRL+F5 if the workflow didn't load.

Learn how to Build this Workflow with AI:

Visit through Desktop for Best experience

What This Automation Does

This workflow checks Upwork every 10 minutes from 3 AM to 3 PM server time to find new Python and Java jobs. It removes duplicate jobs by comparing title and budget with stored data in MongoDB. New jobs get saved in the database and a message with details is sent to a Slack channel.

This saves a lot of time by automating job search and notifying you fast about relevant gigs so you can apply quicker.


What This Workflow Does

The workflow inputs are URLs for Upwork job searches about Python and Java and a proxy country code.

It processes by sending those URLs to an Apify API to scrape current job posts. Then it checks MongoDB for duplicates based on title and budget. Unique job posts get saved to the database. After saving, it sends each new job as a Slack message in a chosen channel.

The outputs are saved unique jobs in MongoDB and Slack notifications for those jobs.


Tools / Services Used

  • n8n: Automation editor and runner.
  • Apify API: Provides fresh scraped Upwork job posts.
  • MongoDB: Database to store job posts and check duplicates.
  • Slack: For sending notifications about new job posts.
  • Optional Proxy service: Provides a country-specific proxy (e.g., France) to avoid IP blocks.

Who Should Use This Workflow

Freelancers who spend many hours daily searching Upwork for new jobs.

Anyone who wants to get notified quickly about fresh Python or Java gigs without the hassle of manual searching and duplicate tracking.

Beginner Step-by-Step: How to Use This Workflow in n8n

1. Download and Import

  1. Click the Download button on this page to get the workflow file.
  2. Open the n8n editor (cloud or self-hosted). If self hosting, see self-host n8n.
  3. Use the menu to select Import from File and upload the downloaded workflow JSON.

2. Configure Credentials

  1. Add your MongoDB credentials with read/write permissions.
  2. Add your Apify API Key in HTTP Query Authentication credentials.
  3. Add your Slack API token that can post messages to the #general channel.

3. Adjust Settings

  1. Check the Assign parameters node and edit the job search URLs if needed.
  2. Update proxy country code if you want another location for scraping.
  3. If needed, update Slack channel name or MongoDB collection names.

4. Test and Activate

  1. Run the workflow manually once to test it and see job data and notifications.
  2. If no errors, activate the workflow to run automatically every 10 minutes within working hours.

Inputs, Process, and Outputs Explained

Inputs

  • Arrays of URLs from Upwork searching Python and Java jobs.
  • Proxy country code (like “FR”) for location-specific scraping.
  • Current time hour for checking working hours.

Processing Steps

  • Schedule Trigger runs every 10 minutes.
  • If node checks time is between 3 AM and 3 PM.
  • Set node assigns URLs and proxy code.
  • HTTP Request calls Apify API with URLs and proxy to scrape Upwork jobs.
  • MongoDB Find checks if jobs exist already by title and budget.
  • Merge node filters out duplicates, keeping only new jobs.
  • MongoDB Insert saves new jobs in MongoDB.
  • Slack node sends detailed notification messages.

Outputs

  • New job posts stored in MongoDB collection.
  • Slack messages about new, fresh jobs in the chosen channel.

Common Problems and Fixes

No new jobs in Slack

The Merge node might remove all jobs as duplicates.

Check MongoDB query and merge settings to make sure unique jobs pass through.

MongoDB insert fails

There might be permission issues or missing fields.

Check MongoDB user rights and field mappings in the insert node.

HTTP Request authentication error

Apify API Key missing or wrong.

Double-check Apify credentials in HTTP Query Authentication and correct node selection.


Customization Ideas

  • Change job keywords by editing URLs in the Assign parameters node.
  • Adjust working hours time range in the If node to fit your schedule.
  • Add more Slack nodes to notify different channels based on job category.
  • Update proxy country code to scrape jobs from other countries.
  • Add more data fields to save in MongoDB for richer job information.

Deployment Notes

After testing, activate the workflow to run every 10 minutes during set hours.

Enable n8n execution logs to watch for errors and performance issues.

Consider running on a self-host n8n server for full control and more customization if needed.

This automation can work continuously with little maintenance.


Summary of Benefits

✓ Automates job hunting by scraping Upwork every 10 minutes within working hours.
✓ Removes duplicate job posts efficiently using MongoDB.
✓ Saves new jobs persistently in a database for long-term tracking.
✓ Sends quick Slack notifications so you see fresh jobs immediately.
✓ Enables proxy usage to reduce IP blocks with location-based scraping.
✓ Saves hours of manual work and helps you respond faster to job offers.

Frequently Asked Questions

Edit the startUrls array in the Assign parameters node by adding new Upwork search URLs with the desired keywords.
An incorrect or missing Apify API Key in the HTTP Query Authentication credential configuration causes authentication failures.
The Merge node configuration or MongoDB query may misidentify all jobs as duplicates, filtering out all new posts.
Import the workflow into a self-hosted n8n instance. See the self-host n8n resource link for setup details.

Promoted by BULDRR AI

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation Workflows in n8n

A complete beginner guide to building an AI SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free