Skills upwork-automation-using-ai
Automate Upwork job search and proposal drafting in one browser session using the Browser Relay/Browser Automation workflow. Use when the user wants to: (1) open/login Upwork, (2) find top matching jobs from explicit criteria, (3) filter out disqualifiers, (4) open the best job, and (5) fill proposal fields without submitting. Also use when the user asks to persist in the same tab/session across steps.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/adeel-powerhouse/upwork-automation-using-ai" ~/.claude/skills/openclaw-skills-upwork-automation-using-ai && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/adeel-powerhouse/upwork-automation-using-ai" ~/.openclaw/skills/openclaw-skills-upwork-automation-using-ai && rm -rf "$T"
manifest:
skills/adeel-powerhouse/upwork-automation-using-ai/SKILL.mdsource content
Upwork Automation Using AI
Workflow
- Keep one active browser session/tab unless user explicitly asks to switch.
- Open Upwork and ensure login state.
- If logged out, run login automation:
- go to Upwork login page
- prefer "Continue with Google" when user asks for Gmail login
- fill email/password only from user-provided credentials for this run
- complete required next step (password, captcha/2FA/manual checkpoint)
- verify logged-in indicators before continuing
- Collect/confirm criteria:
- allowed job types/stack
- minimum client quality thresholds
- disqualifiers
- proposal constraints (submit or draft-only)
- Search jobs and shortlist visible matches.
- Reject jobs with any disqualifier.
- Pick the best remaining job (or top N if user asks).
- Open job detail and click Apply.
- Detect proposal location:
- if same tab, continue
- if new tab/window, switch to it (or ask user to activate once if tool cannot switch)
- Fill proposal fields completely.
- Stop before submission unless user explicitly says submit.
Hard Rules
- Do not submit proposal unless user explicitly says to submit now.
- Stay in the same tab/session unless user requests switching.
- After clicking Apply, immediately check whether proposal opened in same tab.
- If proposal opens in a new tab/window, auto-switch to that tab when the tool supports tab targeting.
- If auto-switch is not supported by the active tool, instruct user to activate the new tab once, then continue there.
- If a modal blocks actions, close modal first, then continue.
- Validate on-page state with screenshot/text checks before risky clicks.
- Never persist credentials to skill files or notes; use credentials only for the active run.
Job Filtering Rubric
Treat a job as valid only if all required checks pass.
Required:
- Job type matches user scope (ecommerce stack or general development)
- Posted within time window (default <= 3 days unless user changes)
- Client quality meets thresholds (e.g., avg hourly >= $10 if visible)
- Fixed budget >= $100 when fixed-price budget is visible
Disqualify when any is true:
- Individual-only hiring restriction
- Urgent/start-today pressure language
- No/poor payment history when user disallows it
- Requires screen share, onsite reporting, strict time tracking, or skill tests (if disallowed)
If uncertain from visible data:
- mark as "needs manual review"
- do not claim it fully passed
Proposal Drafting Template
Use concise, specific structure:
- Direct fit opening (stack + outcome)
- Delivery plan (milestones/timeline)
- Relevant proof (similar builds)
- Communication cadence
- Clear CTA
Prefer concrete numbers and short bullets over long paragraphs.
Execution Notes (Browser Reliability)
- Prefer deterministic selectors and verify each transition with screenshot/get_text.
- If generic selectors misfire, target by nearby unique text.
- If automation cannot switch to newly opened tab, ask user to bring proposal tab active and confirm.
- Keep browser open at end and report exact completion status:
- job selected
- proposal fields filled
- submission state (not submitted)
Output Format to User
After completing work, respond with:
- Selected job: <title>
- Why selected: <criteria match summary>
- Fields filled: <key fields>
- Submission: Not submitted
- Next action: “Review and tell me ‘submit now’ if you want me to send it.”