Overview
This automated workflow fetches Upwork job postings using Apify, removes duplicate job listings via MongoDB, and sends new job opportunities to Slack.
Key Features:
- Automated job retrieval from Upwork via Apify API
- Duplicate filtering using MongoDB to store only unique jobs
- Slack notifications for new job postings
- Runs every 20 minutes during working hours (9 AM - 5 PM)
This workflow requires an active Apify subscription to function, as it uses the Apify Upwork API to fetch job listings.
Who is This For?
This workflow is ideal for:
- Freelancers looking to track Upwork jobs in real time
- Recruiters automating job collection for analytics
- Developers who want to integrate Upwork job data into their applications
What Problem Does This Solve?
Manually checking Upwork for jobs is time-consuming and inefficient. This workflow:
- Automates job discovery based on your keywords
- Filters out duplicate listings, ensuring only new jobs are stored
- Notifies you on Slack when new jobs appear
How the Workflow Works
1. Schedule Trigger (Every 20 Minutes)
- Triggers the workflow at 20-minute intervals
- Ensures job searches are only executed during working hours (9 AM - 5 PM)
2. Query Upwork for Jobs
- Uses Apify API to scrape Upwork job posts for specific keywords (e.g., "n8n", "Python")
3. Find Existing Jobs in MongoDB
- Searches MongoDB to check if a job (based on title and budget) already exists
4. Filter Out Duplicate Jobs
- The Merge Node compares Upwork jobs with MongoDB data
- The IF Node filters out jobs that are already stored in the database
5. Save Only New Jobs in MongoDB
- The Insert Node adds only new job listings to the MongoDB collection
6. Send a Slack Notification
- If a new job is found, a Slack message is sent with job details
Setup Guide
Required API Keys
- Upwork Scraper (Apify Token) – Get your token from Apify
- MongoDB Credentials – Set up MongoDB in n8n using your connection string
- Slack API Token – Connect Slack to n8n and set the channel ID (default: #general)
Configuration Steps
- Modify search keywords in the 'Assign Parameters' node (startUrls)
- Adjust the Working Hours in the 'If Working Hours' node
- Set your Slack channel in the Slack node
- Ensure MongoDB is connected properly
- Adjust the 'If Working Hours' node to match your timezone and hours, or remove it altogether to receive notifications and updates constantly.
How to Customize the Workflow
- Change keywords: update the startUrls in the 'Assign Parameters' node to track different job categories
- Change 'If Working Hours': Modify conditions in the IF Node to filter times based on your needs
- Modify Slack Notifications: Adjust the Slack message format to include additional job details
Why Use This Workflow?
- Automated job tracking without manual searches
- Prevents duplicate entries in MongoDB
- Instant Slack notifications for new job opportunities
- Customizable – adapt the workflow to different job categories
Next Steps
- Run the workflow and test with a small set of keywords
- Expand job categories for better coverage
- Enhance notifications by integrating Telegram, Email, or a dashboard
This workflow ensures real-time job tracking, prevents duplicates, and keeps you updated effortlessly.