Write Upwork proposals from Vollna alerts using Claude, Gmail and Sheets
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This AI workflow has 12 nodes and runs on Gmail events. Along the way it connects Gmail, Anthropic Chat Model, Slack and Google Sheets.
How it runs
Trigger: On Gmail events.
- Configure Profile and Settings (Code): runs custom JavaScript code
- Parse Jobs from Email (Code): runs custom JavaScript code
- Score Job Against Profile (Code): runs custom JavaScript code
- Is It a Match (If): checks a condition and branches into true / false
- Write Proposal with Claude (Basic LLM Chain): sends a prompt to an LLM, with model: Claude Haiku
- Log Skipped Job to Sheets (Google Sheets): append
- Extract Proposal Text (Edit Fields (Set)): sets 8 fields: proposal_text, title, job_url…
- Save Proposal as Draft (Gmail): create draft
- Notify New Draft - Slack (Slack): uses Slack
- Log Job to Sheets (Google Sheets): append
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.
- Still check Gmail Trigger below v1.4 runs as v1.4 (drafts skipped, max emails per poll) (Check for Vollna Alerts).
Nodes used (9)
- Gmail Trigger
n8n-nodes-base.gmailTrigger - Code
n8n-nodes-base.code - If
n8n-nodes-base.if - Basic LLM Chain
@n8n/n8n-nodes-langchain.chainLlm - Anthropic Chat Model
@n8n/n8n-nodes-langchain.lmChatAnthropic - Edit Fields (Set)
n8n-nodes-base.set - Gmail
n8n-nodes-base.gmail - Slack
n8n-nodes-base.slack - Google Sheets
n8n-nodes-base.googleSheets
From the author
Overview Stop spending 20 minutes writing each Upwork proposal from scratch. This workflow reads your Vollna job alert emails, scores every job against your skills and budget preferences, and uses Claude to write a personalised 55-75 word cover letter for…