AgentStack
SKILL verified MIT Self-run

Upwork Apply

skill-aiagentwithdhruv-skills-upwork-apply · by aiagentwithdhruv

Scrape Upwork jobs and generate personalized proposals with cover letters. Use when user asks to find Upwork jobs, create Upwork proposals, or apply to Upwork listings.

No reviews yet
0 installs
16 views
0.0% view→install

Install

$ agentstack add skill-aiagentwithdhruv-skills-upwork-apply

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Upwork Apply? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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

| Name | Type | Required | Description | |------|------|----------|-------------| | query | string | Yes | Search query (e.g., 'AI automation') | | limit | integer | No | Max job listings (default: 50) |

Outputs

| Name | Type | Description | |------|------|-------------| | sheet_url | string | Google Sheet with job details + generated proposals |

Credentials

| Name | Source | |------|--------| | APIFY_API_TOKEN | .env | | ANTHROPIC_API_KEY | .env |

Cost

Apify credits + Claude API

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.