From career
Sweep all (or a filtered subset of) email addresses in the workspace CRM and re-verify them via Hunter Email-Verifier. Use periodically — people change jobs, addresses go stale, accept-all status changes. Updates the `verified` and `last-verified` columns in `crm/contacts.md` and prints a summary of what flipped.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin careerThis skill is limited to using the following tools:
Periodic sweep of `${CAREER_WORKSPACE}/crm/contacts.md`. Throttle-aware — Hunter's verifier consumes one credit per address.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Periodic sweep of ${CAREER_WORKSPACE}/crm/contacts.md. Throttle-aware — Hunter's verifier consumes one credit per address.
$ARGUMENTS:
--max=<N> — cap the number of addresses verified this run (default 50).--stale-days=<N> — only re-verify rows whose last-verified is older than N days (default 90). Rows never verified are always included.--filter=<expression> — restrict to rows matching a substring of any column (e.g. --filter=acme or --filter=lens=employer).--dry-run — list what would be verified, don't call Hunter.Resolve CAREER_WORKSPACE (env → config.json WORKING_FOLDER → $PWD). Load ${CAREER_WORKSPACE}/crm/contacts.md. If absent, bail.
For each row:
last-verified is within --stale-days.--filter is set and no column substring matches.--max is reached.Print the work list count and total Hunter credits this will consume. If --dry-run, stop here.
If the work list is > 10 rows, ask the user to confirm — bulk verification has real cost.
For each address in the work list, call Email-Verifier. Capture result and score. If a 429 comes back, stop the sweep, write everything verified so far, surface the rate-limit message.
For each verified row, update:
verified column → yes / no / risky (per the verdict mapping in verify-email).last-verified → today's date (DD/MM/YY).yes → no/risky, append flipped=<YYYY-MM-DD> to notes so the user can spot drift.Print:
sweep complete:
verified: 37
unchanged: 29
flipped: 6
- jane@acme.com yes -> no
- sam@beta.io yes -> risky
...
errors: 2
Suggest next actions: re-run find-contact for any company whose primary contact flipped to no / risky.
verified.--max. Default 50 is intentionally conservative.Re-running picks up where the last run left off because rows verified within --stale-days are skipped. Safe to schedule (e.g. once a quarter via the schedule skill).
crm/contacts.md in the workspace — bail with: "no CRM yet — run find-contact <company> --append-to-crm first."