solve-captchalisted
Install: claude install-skill suxrobGM/jobpilot
# Solve CAPTCHA
Clear a CAPTCHA on the **current browser tab**. Return **solved** or **unsolved** (the caller falls back). Authorized use only — the user's own applications.
```bash
JOBPILOT_API=http://localhost:8000
```
## 1. Dispatch + identify
If the argument is a URL → `browser_navigate` there first. `browser_resize` to a tall viewport (`1280×1400`) so the widget is fully on-screen, then `browser_snapshot` + `browser_take_screenshot` the captcha and classify:
- **checkbox** (reCAPTCHA "I'm not a robot" / hCaptcha / Turnstile) → §2. **Always try this first** — it escalates to the service only if it opens an image challenge.
- **text** (distorted characters + answer field) → §3.
- **image-grid already open** (no checkbox to click) → §4 directly.
- **slider / unknown** → **unsolved**.
## 2. Checkbox (free, first)
`browser_click` the control by `ref`, `browser_wait_for`, re-snapshot. Verified → **solved**. An image grid opened instead → escalate to §4. **Never hand-click tiles** — automated clicks get flagged and fail.
## 3. Text (free)
`browser_take_screenshot`, read the characters, `browser_type` the answer, submit. Verified → **solved**.
## 4. Image-grid → token service
Read the sitekey (`browser_evaluate`, read-only):
```js
() => {
const el = document.querySelector('.g-recaptcha, [data-sitekey]');
let key = el?.getAttribute('data-sitekey');
if (!key) {
const f = [...document.querySelectorAll('iframe[src*="recaptcha"]')].map(f => f.src).find(s => /[?&