upwork-search

Solid

Search Upwork via Playwright, smart-filter out low-quality and unresponsive clients, rank survivors by fit, and save them to the campaign as recommendations. Never submits a proposal.

AI & Automation 38 stars 11 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 86/100

Stars 20%
53
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Upwork Job Search & Recommend Find Upwork jobs the user can win - qualify on fit **and** client quality, drop the junk, and save the keepers to the campaign for review. **Recommend only: never submit a proposal and never spend connects.** The user drafts a proposal (the `upwork-proposal` skill, launched per job from the campaign page) and submits manually. ## Setup 1. Follow `../../shared/setup.md`. ``$JOBPILOT_API` (injected by the terminal)`. 2. Parse and strip the flags; the rest is the free-text query. - `--board upwork.com` - required. - `--max-jobs <N>` - cap on results to evaluate. Absent = unlimited (evaluate until results run dry). - `--campaign <id>` - campaign to save to. The UI passes it; if absent, match the latest `source:"search"`, `status:"in_progress"` campaign on the query, else create one (a `source:"search"` create requires `config.resumeId` - default to the profile's `primaryResumeId`). 3. Resolve the board: `curl -fsS -H "authorization: Bearer $JOBPILOT_API_TOKEN" "$JOBPILOT_API/api/job-boards" | jq '.[] | select(.domain=="upwork.com")'`. No row → abort: "Upwork is not configured. Add it on /boards." If a `--campaign` was given, first command it to `failed` with `POST /api/campaigns/<id>/status {"status":"failed"}`. ## Phase 1: Parse Query Extract role/skills, keywords, and preferences (hourly vs fixed, budget floor, client country). If vague, ask before searching. ## Phase 2: Search Upwork 1. `browser_navigate` to the board's `searchUr...

Details

Author
suxrobGM
Repository
suxrobGM/jobpilot
Created
4 months ago
Last Updated
yesterday
Language
TypeScript
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category