rescan-skippedlisted
Install: claude install-skill suxrobGM/jobpilot
# Rescan Skipped — Recover Wrongly-Dropped Jobs
Re-score a campaign's `skipped` jobs and set eligible ones to `approved`. **Never apply and never change the campaign's status** — apply the promoted jobs afterward via the `apply` skill (`apply campaign <campaign-id>`) or the campaign page.
## Setup
```bash
JOBPILOT_API=http://localhost:8000
```
Follow `../shared/setup.md`. Fetch the campaign: `curl -fsS "$JOBPILOT_API/api/campaigns/<campaign-id>"`. Threshold = `config.minScore` (fallback `data.autoApply.minMatchScore`, else 70).
## Step 1: Select Targets
Targets are **every** `status:"skipped"` job; with `--jobs key1,key2,…`, restrict to those `key`s.
- **Always leave (permanent) — only these:** `skipReason` starting `Already applied`, `CAPTCHA`, or `Payment required`, or one stating a JD-cited citizenship/clearance requirement.
- **Whole-campaign mode (no `--jobs`):** also leave deliberate user choices — `Removed by user`, `Not selected by user`, `User cancelled…`, `Max applications limit reached`, `Campaign paused by user`.
- **`--jobs` mode:** reconsider every named target except the permanent ones.
Count the full target list up front and process every one. **Below-threshold, zero-score, and no-`skipReason` jobs are all targets** — the stored score came from the campaign that wrongly skipped them, so it's never a reason to skip the re-score. Don't cherry-pick the jobs already at/above threshold.
## Step 2: Per Job
1. **Digest** — parse the cached `digest`. Rich =