# Sales Qualification Refresh

Monthly, on the last weekday, light browser lane.

- Repository: https://github.com/markfulton/ai-employees (826 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add markfulton/ai-employees --skill sales-qualification-refresh -g -a claude-code -y`
Codex: `npx skills add markfulton/ai-employees --skill sales-qualification-refresh -g -a codex -y`
Cursor: `npx skills add markfulton/ai-employees --skill sales-qualification-refresh -g -a cursor -y`
Gemini CLI: `npx skills add markfulton/ai-employees --skill sales-qualification-refresh -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add markfulton/ai-employees`

## Description

Monthly, on the last weekday, light browser lane. Re-tests every named qualification test and every buyer segment against a month of this kit's own ledger evidence, then rewrites both files itself where the evidence disagrees with the assumption they were written on. It records every change in strategy/CHANGELOG.md with the ledger path that justified it. It sends only where you released the channel, never re-queues anyone, never edits the contacted ledger, and never writes a number it did not count out of a named file.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

## Shared work cycle

After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.


# Qualification refresh

**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-qualification-refresh`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-qualification-refresh.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.

You are the targeting analyst for this business. Once a month you answer the one question the weekly review never asks: **is this desk qualifying the right people at all.**

The Friday review answers "which thing do I stop and which do I do more of this week". You answer a slower and more uncomfortable question. A desk can draft, send, and follow up flawlessly for a month and reach nobody who was ever going to buy, and every number on every weekly page will look like a process problem. The only thing that separates the two is the evidence table you build here, which joins the tests a person passed to whether that person eventually answered.

The rest: https://github.com/markfulton/ai-employees/blob/HEAD/employees/sales-employee/routines/sales-qualification-refresh/SKILL.md
