🎣 Generate Upwork proposals with GPT-4o-mini, Airtable and Slack

⚑ 0 views · 🎣 Lead Generation & Enrichment

πŸ’‘ Pro Tip β€” Job boards are notoriously hard to scrape β€” CAPTCHAs, rate limits, constantly changing layouts. ScraperNode has maintained scrapers for Indeed jobs, Glassdoor reviews, and Glassdoor jobs that handle all of that for you.

View All Scrapers

Description

Upwork Proposal Automation with AI, Airtable and Slack

πŸ“˜ Description

This workflow automates the complete Upwork job discovery and proposal generation process by continuously monitoring job listings, intelligently filtering opportunities based on your skill set, generating personalised AI-written proposals, and delivering instant notifications β€” all without any manual effort.

The workflow is triggered automatically every minute via Vollna’s RSS feed, which monitors Upwork job postings matching your configured search filters. Each new job listing is parsed and analysed to extract key details, including title, description, budget, required skills, and job ID. A skills matching engine scores each job against your defined skill set and filters out weak matches. Duplicate jobs are automatically detected and skipped using Airtable as a reference store, ensuring AI credits are never wasted on already-processed listings.

For every qualified new job, GPT-4o-mini generates a tailored 150–250-word proposal that references specific details from the job post, aligns your experience to the client’s exact requirements, and ends with a clear call to action. The proposal and all job metadata are saved to an Airtable base for review. A formatted Slack notification is sent instantly with the full job details and generated proposal, allowing you to review, edit, and apply directly from Upwork with a single click.


βš™οΈ What This Workflow Does (Step-by-Step)

πŸ“‘ RSS Feed Monitoring β€” Polls Vollna’s Upwork RSS feed every minute for new job listings matching your skill keywords. Vollna replaces Upwork’s discontinued native RSS feed (removed August 2024) and supports 30+ filter parameters, including category, budget, and client history.

πŸ” Parse & Extract β€” Extracts structured fields from each RSS item, including job title, full description, budget, required skills, posted date, job ID, and clean Upwork job URL (decoded from Vollna’s redirect format).

🎯 Filter: Skills Match β€” Scores each job against your defined skill list. Jobs scoring fewer than 2 matched skills are dropped immediately, ensuring only relevant opportunities proceed.

⭐ Filter: Client Quality β€” Filters out clients with ratings below 4.5. New clients with no rating history are allowed through by default.

πŸ” Duplicate Detection β€” Queries Airtable to check if the job ID has already been processed in a previous run. Duplicate jobs are silently skipped without generating a proposal.

πŸ€– AI Proposal Generation β€” Calls GPT-4o-mini with a structured prompt containing the job details and your freelancer profile. Generates a concise, personalised proposal that opens with a specific reference to the job post, highlights relevant experience with real numbers, proposes a concrete first step, and ends with a soft call to action.

πŸ’Ύ Save to Airtable β€” Creates a new record in your Airtable base with all job fields, matched skills, match score, generated proposal, and status set to β€œNew” for review tracking.

πŸ’¬ Slack Notification β€” Sends a formatted message to your Slack channel with the job title, budget, match score, matched skills, required skills, direct Upwork job link, and the full AI-generated proposal β€” ready to copy and submit.


🧩 Prerequisites


πŸ—„οΈ Airtable Base Schema

Create a table called Upwork Proposals with these fields:

Field NameType
Job TitleSingle line text
Job URLURL
Upwork URLURL
Posted AtDate
BudgetSingle line text
Skills RequiredLong text
Matched SkillsLong text
Match ScoreNumber
AI ProposalLong text
StatusSingle select: New, Reviewed, Applied, Skipped
Job IDSingle line text
NotesLong text

πŸ’° Cost Estimate

ItemEstimated Cost
Vollna (free tier)$0/mo
GPT-4o-mini (~50 proposals/day)~$1–3/mo
Airtable (free tier)$0/mo
n8n self-hosted (AWS t3.small)~$10–15/mo
Total~$11–18/mo

βš™οΈ Setup Instructions

  1. Vollna β€” Sign up at vollna.com, create a job filter with your target keywords and skill categories, then copy the RSS feed URL from the Filters section
  2. Airtable β€” Create a new base and table using the schema above. Copy your Base ID from the Airtable URL and connect your Personal Access Token in n8n credentials
  3. OpenAI β€” Add your OpenAI API key as an n8n credential (HTTP Header Auth with Authorisation: Bearer sk-...)
  4. Slack β€” Create a Slack app, add chat:write scope, install to your workspace, invite the bot to your channel with /invite @your-bot-name
  5. Customise the AI prompt β€” Open the Build OpenAI Payload node and update the MY PROFILE section with your actual name, skills, and experience details
  6. Update skill filters β€” In the Filter: Skills Match node, update the YOUR_SKILLS array to match your exact skill set
  7. Publish the workflow β€” Click Publish. The RSS trigger will begin polling Vollna every minute automatically

πŸ’‘ Key Benefits

βœ” Fully automated job discovery β€” no manual searching required βœ” Skills-based filtering ensures AI only runs on relevant jobs βœ” Personalised proposals referencing specific job details β€” not generic templates βœ” Airtable CRM for tracking proposal status and conversion rates βœ” Instant Slack alerts with one-click access to apply on Upwork βœ” Deduplication prevents reprocessing the same job across runs βœ” Modular design β€” swap OpenAI for Claude or AWS Bedrock with minimal changes βœ” Cost-optimised β€” GPT-4o-mini keeps proposal generation under $3/month at scale


πŸ‘₯ Perfect For

πŸ”— Nodes Used

Airtable, Slack, RSS Feed Trigger, OpenAI

πŸ“₯ Import

Download workflow.json and import into n8n: Workflow menu β†’ Import from File

πŸ“– Importing guide Β· πŸ”‘ Credential setup