mcpField
U
upwork-apply

upwork-apply

github.com/aiagentwithdhruvMarketing & growth2078 installsUpdated 15w ago
Repository

About upwork-apply

A workflow for collecting Upwork job listings, generating personalized cover letters with Claude, and saving the results to Google Sheets. It is intended for applicants who want job details and generated proposals organized with application links.

Key features

  1. 01Scrape Upwork listings through Apify
  2. 02Generate personalized proposals with Claude
  3. 03Save job and proposal details to Google Sheets
  4. 04Include application links in the sheet

Use cases

  1. 01Collecting listings for a search query
  2. 02Drafting tailored cover letters for gathered jobs
  3. 03Organizing proposals and application links in a sheet

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/aiagentwithdhruv/skills --skill upwork-apply

After installing, type/upwork-applyin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

scripts/
update_sheet.py
upwork_apify_scraper.py
upwork_proposal_generator.py

Details

From the project README

Upwork Job Scraping & Proposal Generation

Goal

Scrape Upwork job listings and generate personalized proposals with compelling cover letters.

Scripts

  • ./scripts/upwork_apify_scraper.py - Scrape Upwork jobs via Apify
  • ./scripts/upwork_proposal_generator.py - Generate proposals with Claude
  • ./scripts/update_sheet.py - Save to Google Sheets

Process

1. Scrape Jobs
python3 ./scripts/upwork_apify_scraper.py \
  --query "AI automation" \
  --limit 50 \
  --output .tmp/upwork_jobs.json
2. Generate Proposals
python3 ./scripts/upwork_proposal_generator.py \
  --jobs .tmp/upwork_jobs.json \
  --output .tmp/proposals.json

Uses Claude Opus 4.5 for high-quality, personalized cover letters.

3. Save to Sheet
python3 ./scripts/update_sheet.py .tmp/proposals.json --title "Upwork Proposals"

Output

Google Sheet with:

  • Job details (title, description, budget, client info)
  • Generated proposal/cover letter
  • Application link

Environment

APIFY_API_TOKEN=your_token
ANTHROPIC_API_KEY=your_key

Schema

Inputs
NameTypeRequiredDescription
querystringYesSearch query (e.g., 'AI automation')
limitintegerNoMax job listings (default: 50)
Outputs
NameTypeDescription
sheet_urlstringGoogle Sheet with job details + generated proposals
Credentials
NameSource
APIFY_API_TOKEN.env
ANTHROPIC_API_KEY.env
Cost

Apify credits + Claude API

Comments

Markdown supported