Follow Up Cadence logo

Follow Up Cadence

Organization
Amazon-Quick
follow-up-cadence

Creates and manages follow-up sequences for small business sales. Handles post-meeting recaps, post-proposal check-ins, conference lead follow-ups, re-engagement of cold leads, and batch follow-up reviews. Use when user says 'follow up with', 'write a follow-up email', 'what follow-ups do I owe', 'post-meeting email', 'check in with [client]', 'they haven't responded', 'send a recap', 'follow-up sequence', or 'meeting recap for [person]'.

Overview

PublisherAmazon-Quick
RepositoryAmazon-Quick-official-catalog
Skill namefollow-up-cadence
Stars
50
Forks
4
Bundled files
1
LicenseMIT-0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Amazon-Quick on GitHub. Read the source before you install it.

Installation

Install the Follow Up Cadence AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Amazon-Quick/Amazon-Quick-official-catalog/tree/main/skills/sales/follow-up-cadence
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Amazon-Quick/Amazon-Quick-official-catalog.git /tmp/Amazon-Quick-official-catalog
mkdir -p .claude/skills
cp -r /tmp/Amazon-Quick-official-catalog/skills/sales/follow-up-cadence .claude/skills/follow-up-cadence
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Follow Up Cadence in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Follow Up Cadence on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Follow Up Cadence is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Overview

Creates strategic follow-up sequences that maintain sales momentum. Handles post-meeting recaps, post-proposal check-ins, conference lead follow-ups, re-engagement of cold leads, and post-purchase nurturing. Tracks all follow-ups in a persistent ledger and adapts timing based on prospect response patterns.

Workflow

<Definition - Follow-Up Types>

TypeTrigger SignalTimingTone
Post-meeting recapJust had a call/meetingWithin 2 hoursWarm, collaborative
Post-proposalSent proposal, no responseDay 3, 7, 14Professional, patient
Post-eventMet at conference/networkingWithin 24 hoursFriendly, casual
Re-engagementLead went cold (30+ days)ImmediatelyFresh angle, no guilt
Post-purchase check-inClient onboardedDay 7, 30, 90Supportive
Referral requestDelivered great resultsAfter milestoneGrateful, specific ask
</Definition - Follow-Up Types>

<Definition - Escalation Rules>

Touches SentNo Response Action
3 emailsTry different channel (LinkedIn, phone)
5 totalMove to quarterly nurture
Positive replyExit cadence, begin conversation
"Not now"Set reminder for 60-90 days
"Not interested"Remove from active follow-up, log reason
</Definition - Escalation Rules>

<Definition - Timing Intelligence> If email history is available, adapt timing:

  • Contact usually replies within 24 hours: follow up on Day 2 (not Day 3)
  • Contact usually takes a week: follow up on Day 8 (give breathing room)
  • Contact replies in mornings: send at 8am their timezone
  • Contact replies evenings: send at 6pm their timezone

Default (no history available):

  • Tue-Thu, 8-10am recipient timezone
  • Post-meeting recaps: same day, within 2 hours
  • Post-proposal: Day 3, 7, 14 </Definition - Timing Intelligence>

<Definition - Sending Modes>

ModeWhenWhat Happens
Send nowPost-meeting recaps (time-sensitive)Sends immediately with user confirmation
Stage draftsMulti-touch sequencesTouch 1 sent now; remaining saved as drafts with scheduled dates
Review firstFirst time use, sensitive contactsShows full email for approval before sending
Copy to clipboardNo email connectorDisplays formatted for manual send
</Definition - Sending Modes>

<Definition - Skill-Ready Outputs> Two formatted blocks always included:

  1. Follow-Up Activity Log table (for deal-pipeline-manager)
  2. Contacts That Exhausted Follow-Up table (for outreach-sequence-builder) </Definition - Skill-Ready Outputs>

<Workflow - Single Follow-Up description="Create and send a follow-up message for a specific contact." tools=[run_python, file_write] triggers=["follow up with", "write a follow-up email", "post-meeting email", "check in with", "they haven't responded", "send a recap", "meeting recap for"]

  1. [Agent] Auto-pull context. If email tools are available, search for last 5 emails with contact (sent + received). If calendar is available, find most recent meeting with contact. Extract: last topic discussed, promises made, questions asked, response time pattern, any pending unreplied emails. Validate: Found at least one prior interaction to reference. If fails: Skip auto-pull. Proceed to step 2 to ask user for context.

  2. [Decide] Is context sufficient (contact name, last interaction type, desired outcome)?

    • Yes (auto-pull succeeded): Present findings to user for confirmation. "I found your last interaction with [Name]: [summary]. Want me to follow up based on this, or is there newer context?"
    • Partially: Ask only what is missing (max 2 questions).
    • No (nothing found): Ask "Who are you following up with, what happened last, and what do you want to happen next?" Validate: Contact name, last interaction type, and desired outcome are known. If fails: Cannot proceed without at minimum contact name and context. Re-ask.
  3. [Decide] Determine follow-up type per <Definition - Follow-Up Types>.

    • Post-meeting: recent meeting found, no recap sent yet.
    • Post-proposal: proposal sent, no reply.
    • Post-event: user mentions conference/event.
    • Re-engagement: 30+ days since last contact.
    • Post-purchase: client onboarded, no check-in yet.
    • Referral: user explicitly requests. Validate: Exactly one type identified. If fails: Ask user to clarify which type applies.
  4. [Agent] Draft follow-up message(s) per the appropriate template in . Apply <Definition - Timing Intelligence> to determine send timing. Each message must: reference specific prior interaction, add new value, stay under 150 words, include clear CTA. Validate: Message meets all four criteria. Multi-touch sequences have distinct value per touch. If fails: Rewrite. If no new value can be identified for additional touches, produce a single strong message rather than a weak sequence.

  5. [Ask user] Present drafted message(s) with proposed timing. Offer sending mode per <Definition - Sending Modes>. Validate: User approves, edits, or rejects. If fails: Revise per user feedback.

  6. [Agent] Send or stage per user-selected mode. If email tools are available, send directly or create draft. If not available, display formatted for manual send. Validate: Email sent or draft created, or formatted copy provided. If fails: Display full email in chat for manual copy-paste.

  7. [Agent] Update persistent follow-up ledger. Record: contact, company, type, touch number, date sent, subject, next action due date. Set reminder for next touch. If spreadsheet tools are connected (Google Sheets, Excel via SharePoint/OneDrive, or local), write there. Otherwise save to local workspace file. Validate: Ledger entry created. Next action date set. If fails: Tell user verbally when next follow-up is due.

</Workflow - Single Follow-Up>

<Workflow - Batch Review description="Review all pending follow-ups and prioritize next actions." tools=[run_python, file_write, file_read, open_in_session_tab] triggers=["what follow-ups do I owe", "follow-up review", "pending follow-ups", "who do I need to contact"]

  1. [Agent] Gather pending follow-ups from all sources: persistent ledger (spreadsheet or local file), sent emails with no reply (last 30 days via email search if available), meetings from last 2 weeks with no recap sent (via calendar if available). Validate: At least one source returned data. If fails: Ask user to list contacts they know need follow-up.

  2. [Agent] Deduplicate and prioritize. Score: deal value x days overdue. Apply <Definition - Escalation Rules> for contacts with multiple unanswered touches. Validate: Prioritized list produced with scores. If fails: Present unprioritized list sorted by date.

  3. [Agent] For each pending follow-up (top 10 max), draft a ready-to-send message using context from ledger and email history. Include: priority level, contact name, company, days overdue, deal value, recommended action, draft message. Validate: Each follow-up has specific context (not generic). Draft references prior interaction. If fails: Flag entries with insufficient context for user input.

  4. [Ask user] Present prioritized list with drafts. Offer: "Send all approved", "Review one by one", or "Skip/snooze individual items." Validate: User provides direction. If fails: Default to review one by one.

  5. [Agent] Execute per user direction. Send approved messages, snooze deferred ones (update ledger with new due date), remove declined ones. Validate: All actions completed. Ledger updated. If fails: Report which items failed and why.

  6. [Agent] Produce skill-ready outputs per <Definition - Skill-Ready Outputs>: Follow-Up Activity Log for deal-pipeline-manager, Contacts That Exhausted Follow-Up for outreach-sequence-builder. Validate: Both output blocks present. If fails: Add missing outputs.

</Workflow - Batch Review>

<Template - Post-Meeting Recap> Subject: Next steps from our [day] conversation

Hi [Name],

Great speaking with you about [specific topic]. Quick recap:

What we discussed:

  • [Key point 1]
  • [Key point 2]

What I promised to send/do:

  • [Action item 1] - [attached/linked/by date]

Agreed next steps:

  • [Who does what by when]

Looking forward to [specific next step]. Talk [day]?

[Signature] </Template - Post-Meeting Recap>

<Template - Post-Proposal Sequence> Day 3: Subject: Re: [Proposal] - quick question

Hi [Name],

Wanted to make sure the proposal came through okay and see if any questions jumped out. I know [their challenge] is time-sensitive, so happy to hop on a quick call to walk through options.

Would [day] at [time] or [day] at [time] work?


Day 7: Subject: [Relevant resource] + proposal check-in

Hi [Name],

Came across [article/case study] about [their challenge] and thought of our conversation. [1-sentence why it's relevant]

Also wanted to check - is the timeline for [project] still [date discussed]?


Day 14 (final): Subject: Should I close this out?

Hi [Name],

Haven't heard back and want to be respectful of your time. Usually that means:

  1. Timing isn't right (when should I circle back?)
  2. You went another direction (any feedback is helpful)
  3. This got buried (happy to resend)

No hard feelings either way. Just let me know so I can update my notes. </Template - Post-Proposal Sequence>

<Template - Re-engagement> Subject: [Something that changed since last contact]

Hi [Name],

It's been a while since we connected about [original topic]. Reaching out because [genuine reason - new feature, case study, company news].

[2 sentences about the development and why relevant to them]

Worth a fresh conversation? No pressure either way. </Template - Re-engagement>

<Template - Batch Review Output>

Pending Follow-Ups

PriorityContactCompanyDays OverdueDeal ValueRecommended ActionDraft Ready?

Follow-Up Activity Log (for deal-pipeline-manager)

| Contact | Company | Last Follow-Up | Response Status | Next Touch Due | Sequence Position |

Contacts That Exhausted Follow-Up (for outreach-sequence-builder)

| Contact | Company | Touches Sent | Last Angle | Suggested New Approach | </Template - Batch Review Output>

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Follow Up Cadence AI skill do?

Creates and manages follow-up sequences for small business sales. Handles post-meeting recaps, post-proposal check-ins, conference lead follow-ups, re-engagement of cold leads, and batch follow-up reviews. Use when user says 'follow up with', 'write a follow-up email', 'what follow-ups do I owe', 'post-meeting email', 'check in with [client]', 'they haven't responded', 'send a recap', 'follow-up sequence', or 'meeting recap for [person]'.

Why use Follow Up Cadence on TypingMind?

Because you install it once and use it with any model. Follow Up Cadence is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Follow Up Cadence in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Amazon-Quick/Amazon-Quick-official-catalog/tree/main/skills/sales/follow-up-cadence. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Follow Up Cadence?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Follow Up Cadence?

As many as you like. As long as a model supports skills, you can use Follow Up Cadence with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Follow Up Cadence AI skill free?

Yes. It is published on GitHub by Amazon-Quick under the MIT-0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇