Score and alert Upwork jobs with OpenAI GPT-4.1-mini and Telegram
Ready for 3.0What this workflow does
This AI workflow has 26 nodes and runs manually, when you click “Execute workflow” (plus 1 other trigger). Along the way it connects OpenAI Chat Model and Telegram.
How it runs
Trigger: Manually, when you click “Execute workflow” (plus 1 other trigger).
- Runtime Settings (Edit Fields (Set)): sets or maps fields
- Fetch profile.md (HTTP Request): calls an HTTP API
- Parse & Validate Profile (Code): runs custom JavaScript code
- Ensure seen-jobs table (Data table): uses Data table
- Get Existing Profile State (Data table): uses Data table
- Build Search Requests (Code): runs custom JavaScript code
- Search Upwork GraphQL (HTTP Request): calls an HTTP API
- Normalize + Deterministic Filter (Code): runs custom JavaScript code
- Deduplicate Current Run (Code): runs custom JavaScript code
- Only Unseen Jobs (Data table): uses Data table
…plus 12 more steps. See the full node list below.
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (11)
- Manual Trigger
n8n-nodes-base.manualTrigger - Schedule Trigger
n8n-nodes-base.scheduleTrigger - Edit Fields (Set)
n8n-nodes-base.set - HTTP Request
n8n-nodes-base.httpRequest - Code
n8n-nodes-base.code - Data table
n8n-nodes-base.dataTable - If
n8n-nodes-base.if - Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - OpenAI Chat Model
@n8n/n8n-nodes-langchain.lmChatOpenAi - Structured Output Parser
@n8n/n8n-nodes-langchain.outputParserStructured - Telegram
n8n-nodes-base.telegram
From the author
Quick overview Searches Upwork every 15 minutes using the GraphQL API, loads matching preferences from a dynamic profile.md file, filters and scores new jobs with an AI chat model, sends high-scoring opportunities to Telegram, and stores processed jobs in an…