Follow up radar
MIT reusable AI skills for Codex and Claude Code: safe publishing, research briefs, case studies, web scraping, copy cleanup, and release automation.
npx -y skills add jqaisystems/jqai-ai-skills --skill follow-up-radarAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Scan a folder of outreach or CRM markdown files for overdue follow-ups and draft the follow-up messages, oldest first. Report-first and drafts only, it never sends anything. Use when the user says "any follow-ups due", "check my outreach pipeline", "who did I forget to follow up with", or "follow-up status".
SKILL.md
3.3 KB, as published. Nobody here has run it
Follow-up Radar
Most outreach dies not because the first email failed but because the follow-up never went out. This skill finds the follow-ups you owe and puts the drafts in front of you. It reports first and it never sends anything.
Step 0: Load the radar config (once)
Look for a follow-up-radar.config.md file in the project root. If it does not exist, ask for the values below, then offer to save them.
WATCH_FOLDER Folder containing one markdown file per prospect or contact
STATUS_KEY Frontmatter key holding the state (default: status)
DUE_KEY Frontmatter key holding the follow-up date (default: follow_up_due)
DONE_VALUES Status values that need no follow-up (default: Replied, Closed, Skip)
VOICE_NOTES Optional tone guidance for drafts
The expected file shape is simple frontmatter, for example:
---
company: Example Studio
status: Sent
follow_up_due: 2026-05-01
---
If the user's files use different keys, map them in the config instead of asking them to change their files.
Step 1: Scan and report
Read the frontmatter of every markdown file in WATCH_FOLDER. Build the report before drafting anything:
# Follow-up Radar: <today>
## Overdue (oldest first)
| Contact | Status | Due | Days overdue | File |
|---|---|---|---|---|
## Due in the next 7 days
| Contact | Status | Due | File |
|---|---|---|---|
## Waiting, not yet due: N
## Done or closed: N
## Files with missing or unparseable dates: <list them, do not guess>
Show the report in chat. If nothing is overdue, say so in one line and stop unless asked to continue.
Step 2: Draft the overdue follow-ups
Only after the user confirms, or if they asked for drafts upfront. For each overdue item, oldest first:
- Read the full file. If it already contains a prepared follow-up draft, use it as the base and only refresh anything stale (dates, references to "last week").
- If there is no draft, write one: 80 words max, references the first message in one clause, adds one new angle or piece of value, no guilt-tripping, no "just checking in".
- Subject line is
Re:plus the original subject when the original is in the file. - Present each draft in chat under the contact's name with the file path.
Step 3: Update the files (only on confirmation)
When the user says a follow-up was sent, update that file's frontmatter: set the status value they use for a second touch, and either advance DUE_KEY to the next window or clear it if this was the final touch. Never edit files the user did not confirm.
Rules
- Report before drafting, draft before touching files, and never send anything. A human sends every message from their own inbox.
- Never mark anything as sent on your own.
- Dates you cannot parse go in the report as-is. Do not guess a date.
- No em dashes in any output.
Output
A radar report in chat (optionally saved to a file on request), follow-up drafts for each overdue contact, and confirmed frontmatter updates.