Skip to main content
Generaldvcrn

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.

Stars
15
Source
dvcrn/openclaw-skills-marketplace
Updated
2026-05-29
Slug
dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/dvcrn/openclaw-skills-marketplace/HEAD/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai/SKILL.md -o .claude/skills/upwork-automation-using-ai.md

Drops the SKILL.md into .claude/skills/upwork-automation-using-ai.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Upwork Automation Using AI

Workflow

  1. Keep one active browser session/tab unless user explicitly asks to switch.
  2. Open Upwork and ensure login state.
  3. 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
  4. Collect/confirm criteria:
    • allowed job types/stack
    • minimum client quality thresholds
    • disqualifiers
    • proposal constraints (submit or draft-only)
  5. Search jobs and shortlist visible matches.
  6. Reject jobs with any disqualifier.
  7. Pick the best remaining job (or top N if user asks).
  8. Open job detail and click Apply.
  9. Detect proposal location:
    • if same tab, continue
    • if new tab/window, switch to it (or ask user to activate once if tool cannot switch)
  10. Fill proposal fields completely.
  11. 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:

  1. Direct fit opening (stack + outcome)
  2. Delivery plan (milestones/timeline)
  3. Relevant proof (similar builds)
  4. Communication cadence
  5. 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: </li> <li>Why selected: <criteria match summary></li> <li>Fields filled: <key fields></li> <li>Submission: Not submitted</li> <li>Next action: “Review and tell me ‘submit now’ if you want me to send it.”</li> </ul> </div></article></div><!--$--><!--/$--></main><footer class="mt-24 border-t border-[color:var(--color-line)] bg-[color:var(--color-bg-1)]" role="contentinfo"><div class="mx-auto max-w-7xl px-4 py-12 sm:px-6 lg:px-10"><div class="grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-4"><div class="space-y-3"><a class="inline-flex items-center rounded-sm leading-none transition-opacity hover:opacity-85" href="/"><span class="inline-flex items-center gap-2 leading-none text-[color:var(--color-ink-0)] sm:gap-2.5" aria-label="Mesrai Marketplace"><svg viewBox="0 0 280 65" role="img" aria-label="Mesrai" class="h-[24px] w-auto shrink-0 select-none sm:h-[26px]"><circle cx="32" cy="32" r="25" fill="currentColor"></circle><g transform="translate(32 32)"><path style="fill:var(--color-bg-0)" d="M -12 -10 C -12 -10, -8 -6, -8 0 C -8 6, -12 10, -12 10 C -12 10, -4 6, 0 0 C 4 6, 12 10, 12 10 C 12 10, 8 6, 8 0 C 8 -6, 12 -10, 12 -10 C 12 -10, 4 -6, 0 0 C -4 -6, -12 -10, -12 -10 Z"></path></g><text x="68" y="44" fill="currentColor" style="font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;font-size:36px;font-weight:700;letter-spacing:0.5px">Mesrai</text></svg><span aria-hidden="true" class="hidden h-3 w-px shrink-0 bg-[color:var(--color-line-2)] sm:inline-block"></span><span class="hidden font-mono text-[10.5px] uppercase tracking-[0.18em] text-[color:var(--color-ink-3)] sm:inline-block">Marketplace</span></span></a><p class="max-w-[28ch] text-[13px] leading-[1.6] text-[color:var(--color-ink-2)]">Production-grade code review rules, curated and installable in one click.</p></div><div><h3 class="mb-3 text-[10.5px] font-medium uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]">Marketplace</h3><ul class="space-y-2"><li><a class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]" href="/library">Browse rules</a></li><li><a class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]" href="/skills">Agent skills</a></li><li><a class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]" href="/become-author">Become an author</a></li></ul></div><div><h3 class="mb-3 text-[10.5px] font-medium uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]">Mesrai</h3><ul class="space-y-2"><li><a href="https://app.mesrai.com" target="_blank" rel="noopener noreferrer" class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]">Open app</a></li><li><a href="https://docs.mesrai.com" target="_blank" rel="noopener noreferrer" class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]">Documentation</a></li><li><a href="https://mesrai.com/pricing" target="_blank" rel="noopener noreferrer" class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]">Pricing</a></li></ul></div><div><h3 class="mb-3 text-[10.5px] font-medium uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]">Community</h3><ul class="space-y-2"><li><a href="https://github.com/mesraiofficial" target="_blank" rel="noopener noreferrer" class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]">GitHub</a></li><li><a href="mailto:contact@mesrai.com" class="text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]">Contact</a></li></ul></div></div><div class="mt-10 flex flex-col items-start gap-2 border-t border-[color:var(--color-line)] pt-6 text-[12px] text-[color:var(--color-ink-3)] sm:flex-row sm:items-center sm:justify-between"><p>© <!-- -->2026<!-- --> Mesrai Technologies. All rights reserved.</p><p class="font-mono text-[11px] tracking-wider uppercase">Built with care · India + worldwide</p></div></div></footer></div><script src="/_next/static/chunks/02ty9.5yo_fen.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[83661,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"ThemeProvider\"]\n3:I[45872,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"Header\"]\n4:I[39756,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"default\"]\n5:I[37457,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"default\"]\n6:I[22016,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\",\"/_next/static/chunks/0pg86~w1~d355.js\"],\"\"]\ne:I[68027,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0fwxch7cdz3kv.css\",\"style\"]\n:HL[\"/_next/static/media/5f402bd2d8eef81a-s.p.16whm0euli40m.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.09zddjkbdep5a.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/9433d1a810498265-s.p.0h26ys03~gfbk.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"skills\",\"s\",\"dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"skills\",{\"children\":[\"s\",{\"children\":[[\"slug\",\"dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\",\"d\",null],{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0fwxch7cdz3kv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/17wr4kjvetgpg.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/01d9z6trbvl9l.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0_3fj3rn8zo2r.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"geist_deef94d5-module__Sms4YG__variable geist_mono_1bf8cbf6-module__FlyLvG__variable newsreader_6473ecd3-module__Kact_q__variable\",\"children\":[\"$\",\"body\",null,{\"className\":\"bg-grid-subtle min-h-svh font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"flex min-h-svh flex-col\",\"children\":[[\"$\",\"a\",null,{\"href\":\"#main\",\"className\":\"sr-only focus:not-sr-only focus:fixed focus:left-3 focus:top-3 focus:z-50 focus:rounded-md focus:bg-[color:var(--color-bg-2)] focus:px-3 focus:py-2 focus:text-[12px] focus:text-[color:var(--color-ink-0)]\",\"children\":\"Skip to main content\"}],[\"$\",\"$L3\",null,{}],[\"$\",\"main\",null,{\"id\":\"main\",\"className\":\"flex-1\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-3xl px-4 py-24 sm:px-6 lg:px-10\",\"children\":[\"$\",\"div\",null,{\"role\":\"status\",\"className\":\"flex flex-col items-center justify-center gap-3 rounded-[12px] border border-dashed border-[color:var(--color-line)] bg-[color:var(--color-bg-1)] px-6 py-16 text-center\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex size-12 items-center justify-center rounded-full border border-[color:var(--color-line)] bg-[color:var(--color-bg-2)]\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-inbox size-6 text-[color:var(--color-ink-3)]\",\"aria-hidden\":true,\"children\":[[\"$\",\"polyline\",\"o97t9d\",{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"}],[\"$\",\"path\",\"oot6mr\",{\"d\":\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"}],\"$undefined\"]}]}],[\"$\",\"h3\",null,{\"className\":\"font-serif text-[18px] text-[color:var(--color-ink-0)]\",\"children\":\"Page not found\"}],[\"$\",\"p\",null,{\"className\":\"max-w-[44ch] text-[13px] leading-[1.55] text-[color:var(--color-ink-2)]\",\"children\":\"The page you were looking for doesn't exist or was moved. Try the homepage or browse the library.\"}],[\"$\",\"div\",null,{\"className\":\"mt-2\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-2\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/\",\"children\":\"Home\",\"ref\":null,\"className\":\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-[13.5px] font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:size-4 [\u0026_svg]:shrink-0 bg-[color:var(--color-primary-light)] text-[color:var(--color-primary-dark)] hover:bg-[color:var(--color-o-600)] active:bg-[color:var(--color-o-700)] shadow-[0_1px_0_0_color-mix(in_oklab,var(--color-o-700)_50%,transparent)_inset,0_1px_2px_rgba(0,0,0,0.4)] h-9 px-4\"}],[\"$\",\"$L6\",null,{\"href\":\"/library\",\"children\":\"Browse rules\",\"ref\":null,\"className\":\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-[13.5px] font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [\u0026_svg]:size-4 [\u0026_svg]:shrink-0 border border-[color:var(--color-line)] bg-transparent text-[color:var(--color-ink-0)] hover:bg-[color:var(--color-bg-2)] hover:border-[color:var(--color-line-2)] h-9 px-4\"}]]}]}]]}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],\"$L7\"]}]}]}]}]]}],{\"children\":[\"$L8\",{\"children\":[\"$L9\",{\"children\":[\"$La\",{\"children\":[\"$Lb\",{},null,false,null]},null,false,\"$@c\"]},null,false,\"$@c\"]},null,false,\"$@c\"]},null,false,null],\"$Ld\",false]],\"m\":\"$undefined\",\"G\":[\"$e\",[\"$Lf\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"Ns5mKA7XDYfug19WaJf-f\"}\n"])</script><script>self.__next_f.push([1,"13:I[97367,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"OutletBoundary\"]\n14:\"$Sreact.suspense\"\n17:I[97367,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"ViewportBoundary\"]\n19:I[97367,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"MetadataBoundary\"]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"footer\",null,{\"className\":\"mt-24 border-t border-[color:var(--color-line)] bg-[color:var(--color-bg-1)]\",\"role\":\"contentinfo\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-7xl px-4 py-12 sm:px-6 lg:px-10\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 gap-10 sm:grid-cols-2 lg:grid-cols-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"space-y-3\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center rounded-sm leading-none transition-opacity hover:opacity-85\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-2 leading-none text-[color:var(--color-ink-0)] sm:gap-2.5\",\"aria-label\":\"Mesrai Marketplace\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 280 65\",\"role\":\"img\",\"aria-label\":\"Mesrai\",\"className\":\"h-[24px] w-auto shrink-0 select-none sm:h-[26px]\",\"children\":[[\"$\",\"circle\",null,{\"cx\":\"32\",\"cy\":\"32\",\"r\":\"25\",\"fill\":\"currentColor\"}],[\"$\",\"g\",null,{\"transform\":\"translate(32 32)\",\"children\":[\"$\",\"path\",null,{\"style\":{\"fill\":\"var(--color-bg-0)\"},\"d\":\"M -12 -10 C -12 -10, -8 -6, -8 0 C -8 6, -12 10, -12 10 C -12 10, -4 6, 0 0 C 4 6, 12 10, 12 10 C 12 10, 8 6, 8 0 C 8 -6, 12 -10, 12 -10 C 12 -10, 4 -6, 0 0 C -4 -6, -12 -10, -12 -10 Z\"}]}],[\"$\",\"text\",null,{\"x\":\"68\",\"y\":\"44\",\"fill\":\"currentColor\",\"style\":{\"fontFamily\":\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif\",\"fontSize\":\"36px\",\"fontWeight\":700,\"letterSpacing\":\"0.5px\"},\"children\":\"Mesrai\"}]]}],[\"$\",\"span\",null,{\"aria-hidden\":true,\"className\":\"hidden h-3 w-px shrink-0 bg-[color:var(--color-line-2)] sm:inline-block\"}],[\"$\",\"span\",null,{\"className\":\"hidden font-mono text-[10.5px] uppercase tracking-[0.18em] text-[color:var(--color-ink-3)] sm:inline-block\",\"children\":\"Marketplace\"}]]}]}],[\"$\",\"p\",null,{\"className\":\"max-w-[28ch] text-[13px] leading-[1.6] text-[color:var(--color-ink-2)]\",\"children\":\"Production-grade code review rules, curated and installable in one click.\"}]]}],[[\"$\",\"div\",\"Marketplace\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-3 text-[10.5px] font-medium uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"Marketplace\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"li\",\"Browse rules\",{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/library\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"Browse rules\"}]}],[\"$\",\"li\",\"Agent skills\",{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/skills\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"Agent skills\"}]}],[\"$\",\"li\",\"Become an author\",{\"children\":[\"$\",\"$L6\",null,{\"href\":\"/become-author\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"Become an author\"}]}]]}]]}],[\"$\",\"div\",\"Mesrai\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-3 text-[10.5px] font-medium uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"Mesrai\"}],[\"$\",\"ul\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"li\",\"Open app\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://app.mesrai.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"Open app\"}]}],[\"$\",\"li\",\"Documentation\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://docs.mesrai.com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"Documentation\"}]}],[\"$\",\"li\",\"Pricing\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://mesrai.com/pricing\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"Pricing\"}]}]]}]]}],[\"$\",\"div\",\"Community\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-3 text-[10.5px] font-medium uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"Community\"}],\"$L10\"]}]]]}],\"$L11\"]}]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[\"$L12\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0pg86~w1~d355.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L13\",null,{\"children\":[\"$\",\"$14\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@15\"}]}]]}]\n16:[]\nc:\"$W16\"\nd:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L17\",null,{\"children\":\"$L18\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L19\",null,{\"children\":[\"$\",\"$14\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1a\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\nf:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0fwxch7cdz3kv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"10:[\"$\",\"ul\",null,{\"className\":\"space-y-2\",\"children\":[[\"$\",\"li\",\"GitHub\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/mesraiofficial\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"GitHub\"}]}],[\"$\",\"li\",\"Contact\",{\"children\":[\"$\",\"a\",null,{\"href\":\"mailto:contact@mesrai.com\",\"className\":\"text-[13.5px] text-[color:var(--color-ink-1)] transition-colors hover:text-[color:var(--color-primary-light)]\",\"children\":\"Contact\"}]}]]}]\n11:[\"$\",\"div\",null,{\"className\":\"mt-10 flex flex-col items-start gap-2 border-t border-[color:var(--color-line)] pt-6 text-[12px] text-[color:var(--color-ink-3)] sm:flex-row sm:items-center sm:justify-between\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"© \",2026,\" Mesrai Technologies. All rights reserved.\"]}],[\"$\",\"p\",null,{\"className\":\"font-mono text-[11px] tracking-wider uppercase\",\"children\":\"Built with care · India + worldwide\"}]]}]\n"])</script><script>self.__next_f.push([1,"18:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0b\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"content\":\"#fbfaf7\",\"media\":\"(prefers-color-scheme: light)\"}]]\n"])</script><script>self.__next_f.push([1,"1b:I[27201,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\"],\"IconMark\"]\n15:null\n"])</script><script>self.__next_f.push([1,"1a:[[\"$\",\"title\",\"0\",{\"children\":\"upwork-automation-using-ai · General · Mesrai Skills\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"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) ope\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"keywords\",\"content\":\"code review,ai code review,pull request review,static analysis rules,Mesrai,engineering standards\"}],[\"$\",\"link\",\"4\",{\"rel\":\"canonical\",\"href\":\"https://www.marketplace.mesrai.com/skills/s/dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"upwork-automation-using-ai · General · Mesrai Skills\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"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) ope\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://www.marketplace.mesrai.com/skills/s/dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Mesrai Marketplace\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image\",\"content\":\"https://www.marketplace.mesrai.com/api/og/default\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image:alt\",\"content\":\"upwork-automation-using-ai · General · Mesrai Skills\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:site\",\"content\":\"@mesrai\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:title\",\"content\":\"upwork-automation-using-ai · General · Mesrai Skills\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:description\",\"content\":\"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) ope\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image\",\"content\":\"https://www.marketplace.mesrai.com/api/og/default\"}],[\"$\",\"link\",\"19\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"20\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0hemvqz2teeos.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"23\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/favicon-96x96.png\",\"sizes\":\"96x96\",\"type\":\"image/png\"}],[\"$\",\"link\",\"25\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon-96x96.png\"}],[\"$\",\"$L1b\",\"26\",{}]]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-4xl px-4 pb-24 pt-10 sm:px-6 sm:pt-14 lg:px-10\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareSourceCode\\\",\\\"name\\\":\\\"upwork-automation-using-ai\\\",\\\"description\\\":\\\"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.\\\",\\\"codeRepository\\\":\\\"https://github.com/dvcrn/openclaw-skills-marketplace/tree/main/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai\\\",\\\"programmingLanguage\\\":\\\"Markdown\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"dvcrn\\\"},\\\"dateModified\\\":\\\"2026-05-29T15:18:27Z\\\",\\\"keywords\\\":\\\"General, agent skill, claude code\\\",\\\"url\\\":\\\"https://www.marketplace.mesrai.com/skills/s/dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\\\",\\\"inLanguage\\\":\\\"en\\\"}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Skills\\\",\\\"item\\\":\\\"https://www.marketplace.mesrai.com/skills\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"General\\\",\\\"item\\\":\\\"https://www.marketplace.mesrai.com/skills/c/general\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"upwork-automation-using-ai\\\",\\\"item\\\":\\\"https://www.marketplace.mesrai.com/skills/s/dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\\\"}]}\"}}],[\"$\",\"nav\",null,{\"aria-label\":\"Breadcrumb\",\"className\":\"mb-6 flex items-center gap-2 font-mono text-[11px] tracking-wider text-[color:var(--color-ink-3)]\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/skills\",\"className\":\"uppercase hover:text-[color:var(--color-primary-light)]\",\"children\":\"Skills\"}],[\"$\",\"span\",null,{\"aria-hidden\":true,\"children\":\"›\"}],[\"$\",\"$L6\",null,{\"href\":\"/skills/c/general\",\"className\":\"uppercase hover:text-[color:var(--color-primary-light)]\",\"children\":\"General\"}],[\"$\",\"span\",null,{\"aria-hidden\":true,\"children\":\"›\"}],[\"$\",\"span\",null,{\"className\":\"truncate uppercase text-[color:var(--color-ink-1)]\",\"children\":\"upwork-automation-using-ai\"}]]}],[\"$\",\"header\",null,{\"className\":\"border-b border-[color:var(--color-line)] pb-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-3 flex flex-wrap items-center gap-2\",\"children\":[[\"$\",\"$L6\",null,{\"href\":\"/skills/c/general\",\"className\":\"rounded-full border border-[color:var(--color-line)] px-2.5 py-0.5 font-mono text-[10.5px] uppercase tracking-wider text-[color:var(--color-ink-2)] hover:border-[color:var(--color-primary-light)] hover:text-[color:var(--color-primary-light)]\",\"children\":\"General\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-[10.5px] uppercase tracking-wider text-[color:var(--color-ink-3)]\",\"children\":\"dvcrn\"}]]}],[\"$\",\"h1\",null,{\"className\":\"font-serif text-[36px] leading-tight tracking-tight text-[color:var(--color-ink-0)] sm:text-[42px]\",\"children\":\"upwork-automation-using-ai\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-[65ch] text-[15px] leading-[1.65] text-[color:var(--color-ink-2)]\",\"children\":\"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.\"}],\"$L1c\",\"$L1d\"]}],\"$L1e\",\"$L1f\"]}]\n"])</script><script>self.__next_f.push([1,"20:I[28263,[\"/_next/static/chunks/17wr4kjvetgpg.js\",\"/_next/static/chunks/01d9z6trbvl9l.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0_3fj3rn8zo2r.js\",\"/_next/static/chunks/0pg86~w1~d355.js\"],\"CopyButton\"]\n"])</script><script>self.__next_f.push([1,"1c:[\"$\",\"dl\",null,{\"className\":\"mt-6 grid grid-cols-2 gap-x-6 gap-y-3 sm:grid-cols-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-col gap-1\",\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"Stars\"}],[\"$\",\"dd\",null,{\"className\":\"truncate text-[13px] text-[color:var(--color-ink-1)] \",\"title\":\"15\",\"children\":\"15\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-col gap-1\",\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"Source\"}],[\"$\",\"dd\",null,{\"className\":\"truncate text-[13px] text-[color:var(--color-ink-1)] \",\"title\":\"dvcrn/openclaw-skills-marketplace\",\"children\":\"dvcrn/openclaw-skills-marketplace\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-col gap-1\",\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"Updated\"}],[\"$\",\"dd\",null,{\"className\":\"truncate text-[13px] text-[color:var(--color-ink-1)] \",\"title\":\"2026-05-29\",\"children\":\"2026-05-29\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex min-w-0 flex-col gap-1\",\"children\":[[\"$\",\"dt\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"Slug\"}],[\"$\",\"dd\",null,{\"className\":\"truncate text-[13px] text-[color:var(--color-ink-1)] font-mono text-[12px]\",\"title\":\"dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\",\"children\":\"dvcrn--openclaw-skills-marketplace--upwork-automation-using-ai\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"1d:[\"$\",\"div\",null,{\"className\":\"mt-6 flex flex-wrap items-center gap-3\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/dvcrn/openclaw-skills-marketplace/tree/main/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-2 rounded-full bg-[color:var(--color-primary-light)] px-5 py-2.5 text-[13px] font-medium text-[color:var(--color-on-primary)] transition-opacity hover:opacity-90\",\"children\":[\"View on GitHub\",[\"$\",\"span\",null,{\"aria-hidden\":true,\"children\":\"↗\"}]]}],[\"$\",\"a\",null,{\"href\":\"https://raw.githubusercontent.com/dvcrn/openclaw-skills-marketplace/main/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai/SKILL.md\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-2 rounded-full border border-[color:var(--color-line-2)] px-5 py-2.5 text-[13px] font-medium text-[color:var(--color-ink-1)] hover:border-[color:var(--color-ink-3)] hover:text-[color:var(--color-ink-0)]\",\"children\":\"Raw SKILL.md\"}],[\"$\",\"$L20\",null,{\"value\":\"https://github.com/dvcrn/openclaw-skills-marketplace/tree/main/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai\",\"label\":\"Copy GitHub URL\"}],[\"$\",\"$L20\",null,{\"value\":\"\",\"fetchUrl\":\"https://raw.githubusercontent.com/dvcrn/openclaw-skills-marketplace/main/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai/SKILL.md\",\"label\":\"Copy SKILL.md\"}]]}]\n"])</script><script>self.__next_f.push([1,"1e:[\"$\",\"section\",null,{\"aria-label\":\"Install\",\"className\":\"mt-8 rounded-xl border border-[color:var(--color-line)] bg-[color:var(--color-bg-1)] p-5\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-2 flex items-center justify-between gap-3\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-[10.5px] uppercase tracking-[0.16em] text-[color:var(--color-ink-3)]\",\"children\":\"// install — copy + paste into any project\"}],[\"$\",\"$L20\",null,{\"value\":\"mkdir -p .claude/skills \u0026\u0026 curl -fsSL https://raw.githubusercontent.com/dvcrn/openclaw-skills-marketplace/HEAD/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai/SKILL.md -o .claude/skills/upwork-automation-using-ai.md\",\"label\":\"Copy\"}]]}],[\"$\",\"div\",null,{\"className\":\"relative\",\"children\":[[\"$\",\"pre\",null,{\"className\":\"overflow-x-auto rounded-md bg-[color:var(--color-bg-3)] p-3 pr-20 text-[12px] leading-[1.6] text-[color:var(--color-ink-1)]\",\"children\":[\"$\",\"code\",null,{\"children\":\"mkdir -p .claude/skills \u0026\u0026 curl -fsSL https://raw.githubusercontent.com/dvcrn/openclaw-skills-marketplace/HEAD/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai/SKILL.md -o .claude/skills/upwork-automation-using-ai.md\"}]}],[\"$\",\"$L20\",null,{\"value\":\"mkdir -p .claude/skills \u0026\u0026 curl -fsSL https://raw.githubusercontent.com/dvcrn/openclaw-skills-marketplace/HEAD/plugins/adeel-powerhouse--upwork-automation-using-ai/skills/upwork-automation-using-ai/SKILL.md -o .claude/skills/upwork-automation-using-ai.md\",\"variant\":\"corner\",\"label\":\"Copy\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-[12.5px] leading-[1.55] text-[color:var(--color-ink-2)]\",\"children\":[\"Drops the SKILL.md into\",\" \",[\"$\",\"code\",null,{\"className\":\"rounded bg-[color:var(--color-bg-3)] px-1.5 py-0.5 font-mono text-[11.5px]\",\"children\":[\".claude/skills/\",\"upwork-automation-using-ai\",\".md\"]}],\". Works with Claude Code, Cursor, and any agent that loads SKILL.md files from\",\" \",[\"$\",\"code\",null,{\"className\":\"rounded bg-[color:var(--color-bg-3)] px-1.5 py-0.5 font-mono text-[11.5px]\",\"children\":\".claude/skills/\"}],\".\"]}]]}]\n"])</script><script>self.__next_f.push([1,"21:Tfc5,"])</script><script>self.__next_f.push([1,"\u003ch1\u003eUpwork Automation Using AI\u003c/h1\u003e\n\u003ch2\u003eWorkflow\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eKeep one active browser session/tab unless user explicitly asks to switch.\u003c/li\u003e\n\u003cli\u003eOpen Upwork and ensure login state.\u003c/li\u003e\n\u003cli\u003eIf logged out, run login automation:\u003cul\u003e\n\u003cli\u003ego to Upwork login page\u003c/li\u003e\n\u003cli\u003eprefer \u0026quot;Continue with Google\u0026quot; when user asks for Gmail login\u003c/li\u003e\n\u003cli\u003efill email/password only from user-provided credentials for this run\u003c/li\u003e\n\u003cli\u003ecomplete required next step (password, captcha/2FA/manual checkpoint)\u003c/li\u003e\n\u003cli\u003everify logged-in indicators before continuing\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCollect/confirm criteria:\u003cul\u003e\n\u003cli\u003eallowed job types/stack\u003c/li\u003e\n\u003cli\u003eminimum client quality thresholds\u003c/li\u003e\n\u003cli\u003edisqualifiers\u003c/li\u003e\n\u003cli\u003eproposal constraints (submit or draft-only)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eSearch jobs and shortlist visible matches.\u003c/li\u003e\n\u003cli\u003eReject jobs with any disqualifier.\u003c/li\u003e\n\u003cli\u003ePick the best remaining job (or top N if user asks).\u003c/li\u003e\n\u003cli\u003eOpen job detail and click Apply.\u003c/li\u003e\n\u003cli\u003eDetect proposal location:\u003cul\u003e\n\u003cli\u003eif same tab, continue\u003c/li\u003e\n\u003cli\u003eif new tab/window, switch to it (or ask user to activate once if tool cannot switch)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFill proposal fields completely.\u003c/li\u003e\n\u003cli\u003eStop before submission unless user explicitly says submit.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003eHard Rules\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not submit proposal unless user explicitly says to submit now.\u003c/li\u003e\n\u003cli\u003eStay in the same tab/session unless user requests switching.\u003c/li\u003e\n\u003cli\u003eAfter clicking Apply, immediately check whether proposal opened in same tab.\u003c/li\u003e\n\u003cli\u003eIf proposal opens in a new tab/window, auto-switch to that tab when the tool supports tab targeting.\u003c/li\u003e\n\u003cli\u003eIf auto-switch is not supported by the active tool, instruct user to activate the new tab once, then continue there.\u003c/li\u003e\n\u003cli\u003eIf a modal blocks actions, close modal first, then continue.\u003c/li\u003e\n\u003cli\u003eValidate on-page state with screenshot/text checks before risky clicks.\u003c/li\u003e\n\u003cli\u003eNever persist credentials to skill files or notes; use credentials only for the active run.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eJob Filtering Rubric\u003c/h2\u003e\n\u003cp\u003eTreat a job as valid only if all required checks pass.\u003c/p\u003e\n\u003cp\u003eRequired:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJob type matches user scope (ecommerce stack or general development)\u003c/li\u003e\n\u003cli\u003ePosted within time window (default \u0026lt;= 3 days unless user changes)\u003c/li\u003e\n\u003cli\u003eClient quality meets thresholds (e.g., avg hourly \u0026gt;= $10 if visible)\u003c/li\u003e\n\u003cli\u003eFixed budget \u0026gt;= $100 when fixed-price budget is visible\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDisqualify when any is true:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIndividual-only hiring restriction\u003c/li\u003e\n\u003cli\u003eUrgent/start-today pressure language\u003c/li\u003e\n\u003cli\u003eNo/poor payment history when user disallows it\u003c/li\u003e\n\u003cli\u003eRequires screen share, onsite reporting, strict time tracking, or skill tests (if disallowed)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf uncertain from visible data:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emark as \u0026quot;needs manual review\u0026quot;\u003c/li\u003e\n\u003cli\u003edo not claim it fully passed\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eProposal Drafting Template\u003c/h2\u003e\n\u003cp\u003eUse concise, specific structure:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDirect fit opening (stack + outcome)\u003c/li\u003e\n\u003cli\u003eDelivery plan (milestones/timeline)\u003c/li\u003e\n\u003cli\u003eRelevant proof (similar builds)\u003c/li\u003e\n\u003cli\u003eCommunication cadence\u003c/li\u003e\n\u003cli\u003eClear CTA\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003ePrefer concrete numbers and short bullets over long paragraphs.\u003c/p\u003e\n\u003ch2\u003eExecution Notes (Browser Reliability)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrefer deterministic selectors and verify each transition with screenshot/get_text.\u003c/li\u003e\n\u003cli\u003eIf generic selectors misfire, target by nearby unique text.\u003c/li\u003e\n\u003cli\u003eIf automation cannot switch to newly opened tab, ask user to bring proposal tab active and confirm.\u003c/li\u003e\n\u003cli\u003eKeep browser open at end and report exact completion status:\u003cul\u003e\n\u003cli\u003ejob selected\u003c/li\u003e\n\u003cli\u003eproposal fields filled\u003c/li\u003e\n\u003cli\u003esubmission state (not submitted)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOutput Format to User\u003c/h2\u003e\n\u003cp\u003eAfter completing work, respond with:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSelected job: \u003ctitle\u003e\u003c/li\u003e\n\u003cli\u003eWhy selected: \u003ccriteria match summary\u003e\u003c/li\u003e\n\u003cli\u003eFields filled: \u003ckey fields\u003e\u003c/li\u003e\n\u003cli\u003eSubmission: Not submitted\u003c/li\u003e\n\u003cli\u003eNext action: “Review and tell me ‘submit now’ if you want me to send it.”\u003c/li\u003e\n\u003c/ul\u003e\n"])</script><script>self.__next_f.push([1,"1f:[\"$\",\"article\",null,{\"className\":\"mt-10\",\"children\":[\"$\",\"div\",null,{\"className\":\"prose-skill\",\"dangerouslySetInnerHTML\":{\"__html\":\"$21\"}}]}]\n"])</script></body></html>