upwork-apply

Scrape Upwork listings, filter by budget and client quality, and generate personalized proposals.

1|Updated Apr 10, 2026
One-click install
npx skills add https://github.com/ezjonline/ezj-automations --skill upwork-apply-ezjonline
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: upwork-apply
Source: https://github.com/ezjonline/ezj-automations/tree/main/skills/upwork-apply
Command: npx skills add https://github.com/ezjonline/ezj-automations --skill upwork-apply-ezjonline

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pandas, python-dotenv, gspread, google-auth, google-auth-oauthlib, google-api-python-client, requests, anthropic, and includes scripts (resource) components.

What problem does it solve?

This Skill removes the manual grind of searching Upwork, screening job posts, and drafting tailored proposals so you can respond faster to better-fit opportunities.

Core Features & Use Cases

  • Job Scraping and Filtering: Pull Upwork listings through Apify and narrow results by keywords, budget, experience level, client verification, spend, and hire history.
  • Personalized Proposal Generation: Create concise cover letters and full project proposals with strong positioning, clear deliverables, and relevant technical framing.
  • Workflow Automation: Save results to Google Sheets, create shareable Google Docs, and process multiple jobs in parallel with retry handling for a more reliable pipeline.
  • Use Case: A freelancer wants to find high-quality automation jobs, generate custom outreach for each one, and track every application in a spreadsheet without repeating the same setup work.

Quick Start

Use the upwork-apply skill to scrape matching Upwork jobs, generate personalized proposals for the best opportunities, and export the results to Google Sheets.

Frequently Asked Questions about upwork-apply

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate Upwork job scraping and cover letter generation?

You can automate Upwork job scraping and cover letter generation by using Apify to pull live listings, filtering by budget and client quality, and applying Anthropic to generate personalized proposals exported to Google Sheets.

Can I filter Upwork job posts by budget and client hire history before generating proposals?

Yes, you can filter Upwork job posts by budget, client verification, spend, and hire history. After Apify scrapes the listings, post-filtering logic narrows opportunities before generating any proposals.

Do I need Apify and Google Sheets API credentials to automate freelance proposal workflows?

Yes, you need Apify credentials for scraping Upwork jobs and Google Sheets API authentication to save results. The workflow also requires an Anthropic API key to generate the personalized cover letters.

What is the best way to track Upwork applications in Google Sheets automatically?

The best way to track Upwork applications in Google Sheets is by using parallel processing to scrape jobs, generate proposals via Anthropic, and export submission-ready cover letters with retry handling directly into a spreadsheet.

How does parallel processing with retry handling work for Upwork job applications?

Parallel processing handles multiple Upwork jobs simultaneously while retry handling ensures reliable scraping and proposal generation. This workflow creates shareable Google Docs and updates your tracking sheet without manual intervention.

Can I create shareable Google Docs for Upwork proposals from scraped job data?

Yes, you can create shareable Google Docs for Upwork proposals. After scraping listings with Apify and generating tailored cover letters with Anthropic, the workflow formats the application materials into shareable documents.