Learn-skills.dev upwork-apply
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.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/aiagentwithdhruv/skills/upwork-apply" ~/.claude/skills/neversight-learn-skills-dev-upwork-apply && rm -rf "$T"
manifest:
data/skills-md/aiagentwithdhruv/skills/upwork-apply/SKILL.mdsource content
Upwork Job Scraping & Proposal Generation
Goal
Scrape Upwork job listings and generate personalized proposals with compelling cover letters.
Scripts
- Scrape Upwork jobs via Apify./scripts/upwork_apify_scraper.py
- Generate proposals with Claude./scripts/upwork_proposal_generator.py
- Save to Google Sheets./scripts/update_sheet.py
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 |
|---|---|---|---|
| string | Yes | Search query (e.g., 'AI automation') |
| integer | No | Max job listings (default: 50) |
Outputs
| Name | Type | Description |
|---|---|---|
| string | Google Sheet with job details + generated proposals |
Credentials
| Name | Source |
|---|---|
| .env |
| .env |
Cost
Apify credits + Claude API