Skip to main content

Gmail to Slack: AI-scored Upwork job alerts with OpenRouter

Workflow preview

Workflow preview
100%
Gmail to Slack: AI-scored Upwork job alerts with OpenRouter 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. Overview When applying for freelance jobs on Upwork, minutes matter. The first quality applicati...

Best for

  • Personal Productivity automation workflows
  • AI Summarization automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.markdown, @n8n/n8n-nodes-langchain.lmchatopenrouter, n8n-nodes-base.gmail, n8n-nodes-base.gmailtrigger, n8n-nodes-base.slack, n8n-nodes-base.set, n8n-nodes-base.stickynote, n8n-nodes-base.filter

Source and attribution

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

Original n8n.io source

1.1 Workflow description

Title
Gmail to Slack: AI-scored Upwork job alerts with OpenRouter
Workflow name
Gmail to Slack: AI-scored Upwork job alerts with OpenRouter

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

Overview

When applying for freelance jobs on Upwork, minutes matter. The first quality application is more often than not the one that's ultimately selected.

Subscribers to Upwork's Freelancer Plus receive email job alerts, but filters are very limited. As a result, it takes a lot of time to manually go through each email and determine if each job fits your criteria.

This workflow scans your Gmail every few minutes, finds all Upwork job alerts, scores them based on your profile/preferences, and sends a Slack channel message for jobs that are strong potential matches.

How it works

  1. Scans Gmail for Upwork job alerts every few minutes
  2. Extracts all available job data from each email
  3. Scores the job based on profile information and criteria you provide
  4. Sends a Slack notification for all jobs that meet a given score threshold

Disclaimers

  1. This workflow polls Gmail for new messages every 10 minutes. A workflow execution will be used each time, regardless of whether the Gmail scan finds anything. You may want to adjust this frequency based on the amount of workflow executions you want to use.
  2. The AI matching process is based only on the information included in the email body (job title, description snippet and metadata). It is against Upwork's Terms of Service to scrape a full job posting. Despite this, the quality of the results in our testing is high for most use cases.

Required Setup

  1. Subscribe to Upwork's Freelancer Plus plan to enable job alerts ($19.99/mo at the time of this posting)
  2. Create Gmail and Open Router (or an LLM provider of your choice) credentials and select them in the Gmail / LLM Model nodes
  3. Create a Slack app that has at least the chat:write.public and channels:read scopes, install it into your workspace, and use your apps OAuth Token to create a Slack API credential in n8n
  4. IMPORTANT: In the "Opportuntity Scorer" node, replace the text in between the <my_profile> tags with your freelancer bio. For best results, include as much detail as possible about your skillset, experience, tool familiarity, and job preferences.
  5. Update the filter with your notification threshold preference(s) and update the Slack channel to send notifications to in the last Slack node

If you have any questions or feedback about this workflow, or would like me to build custom workflows for your business, email me at [email protected].

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 - Convert To Markdown

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

Block 2 - OpenRouter Chat Model

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

Block 3 - Mark as Read

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 4 - Get Filtered Messages

Type / Role
n8n-nodes-base.gmailTrigger - gmailTrigger
Config choices
Version 1.2

Block 5 - Send Slack Alert

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

Block 6 - OpenRouter Chat Model1

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

Block 7 - Edit Fields

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

Block 8 - Sticky Note

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

Block 9 - Sticky Note1

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

Block 10 - Sticky Note2

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

Block 11 - Filter By Score

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

Block 12 - Opportunity Scorer

Type / Role
@n8n/n8n-nodes-langchain.informationExtractor - informationExtractor
Config choices
Version 1.2

Block 13 - Sticky Note3

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

Block 14 - Job Data Extractor

Type / Role
@n8n/n8n-nodes-langchain.informationExtractor - informationExtractor
Config choices
Version 1.2

3. Summary Table

Workflow Gmail to Slack: AI-scored Upwork job alerts with OpenRouter
Complexity intermediate
Nodes 14
Categories Personal Productivity, AI Summarization
Author James Francis
Published 08 Jul 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/5761/5761.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 Gmail to Slack: AI-scored Upwork job alerts with OpenRouter do?

This workflow contains community nodes that are only compatible with the self hosted version of n8n. Overview When applying for freelance jobs on Upwork, minutes matter. The first quality applicati...

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 Personal Productivity, AI Summarization use case.