extruct-ai/gtm-cowork-skills · Archived

deal-reengagement

Re-engage a stale deal or cold contact. Reads all relevant context (Attio deal, Gmail threads, Granola meetings), then suggests 2-3 angles to reactivate and drafts a re-engagement email. Triggers on: "re-engage", "reactivate deal", "stale deal", "cold deal", "win back", "re-engagement email", "revive deal".

First seen Apr 17, 2026

Installation

$ npx skills add extruct-ai/gtm-cowork-skills --skill deal-reengagement

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Also in this package

Other skills from extruct-ai/gtm-cowork-skills.

npx skills add extruct-ai/gtm-cowork-skills

Browse all from extruct-ai/gtm-cowork-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 7
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,147 B
  • docs SUMMARY.md 333 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

Re-engage Stale Deal

Help write a re-engagement email for a stale deal or cold contact. First gather all context, then suggest angles, then draft.

Inputs

The user provides one or more of:

  • A contact name, email, or company name
  • A deal name or Attio deal ID
  • Specific context on why they want to re-engage

If not provided, ask for the contact or deal reference.

Workflow

Step 1: Build full context

1a. Attio — Person + Deal records

Resolve the contact in Attio:

  • Use search-records with object = "people" and the contact's name or email as query.

From the person record, extract:

  • Name, job title, company
  • Origin, registration date
  • Subscription status, plan, LTV (if any)
  • Last interaction date
  • Associated deal IDs

For each associated deal:

  • Use get-records-by-ids with object = "deals" and the deal record IDs.
  • Extract: deal name, stage, value, created date, last activity
  • Calculate how long the deal has been stale

Check pending tasks:

  • Use list-tasks with is_completed = false.
  • Filter for tasks linked to this person or their deals

1b. Gmail — Full email history

  1. Call gmailsearchmessages with:

from:{contactemail} OR to:{contactemail} Limit to 20 messages to get the full arc.

  1. Call gmailreadthread on the 2-3 most substantive threads.

Extract:

  • The full relationship timeline (first contact → last contact)
  • What was proposed or discussed
  • Any pricing, offers, or commitments made
  • Where the conversation dropped off and why (if apparent)
  • The tone and style of the relationship

1c. Granola — Past meetings

  1. Call querygranolameetings with "meetings with {contact_name}"
  2. If found, call get_meetings for full details
  3. If transcript needed, call getmeetingtranscript

Extract:

  • What was discussed in meetings
  • Action items that were or weren't completed
  • Pain points the contact expressed
  • Objections or hesitations raised

Step 2: Diagnose the stall

Before drafting, analyze why the deal went cold. Common patterns:

  • Timing: they weren't ready, budget cycle, other priorities
  • Fit: product didn't match their immediate needs
  • Champion left: the contact changed roles or companies
  • Dropped ball: follow-up was missed on our side
  • Price: proposal was too high or unclear value
  • Competitor: they went with someone else

State the diagnosis explicitly to the user.

Step 3: Suggest 2-3 re-engagement angles

Based on the context, propose 2-3 distinct angles. Each angle should include:

  • Hook: what makes this relevant now (new feature, time passed, market change)
  • Value prop: why it's worth reconnecting
  • Ask: specific low-friction CTA

Example angle types:

  • Value-first: share something useful (insight, data, resource) without asking for anything
  • Trigger-based: reference a change (new role, funding, product update, industry shift)
  • Direct check-in: honest, low-pressure "how are things going"
  • New offer: revised pricing, new capability, different packaging
  • Social proof: similar company succeeded with your product

Present angles to the user and let them pick one (or combine).

Step 4: Draft the re-engagement email

Based on the chosen angle:

Structure:

  1. Opening — personal, reference something specific from history (1 sentence)
  2. Bridge — why you're reaching out now (1-2 sentences)
  3. Value — what's new or different (1-2 sentences)
  4. Ask — specific, low-friction CTA (1 sentence)

Tone rules:

  • Match the existing relationship tone from email history
  • Never apologize for the gap ("sorry for the silence")
  • Never guilt trip ("I haven't heard back")
  • Confident but not pushy
  • Reference specific things from your history, not generic filler

Constraints:

  • Under 150 words (shorter than a regular follow-up — stale deals need brevity)
  • No emojis unless the contact uses them
  • Subject line should NOT be a reply to the old thread (fresh start)

Step 5: Save artifacts locally

After gathering context, persist to revops/customers/{company-slug}/:

  1. Read first: Check for existing context.md and past meeting notes — use as input.
  2. Save meeting notes: If Granola data was fetched, persist to meetings/YYYY-MM-DD_{title-slug}.md.
  3. Save key emails: If the email thread contains commercial significance (proposals, pricing),

snapshot to emails/YYYY-MM-DD_{subject-slug}.md.

  1. Update context.md: Update deal history and current status.

Granola data can be deleted — the local copy is the source of truth. See revops/customers/README.md for templates and naming rules.

Step 6: Present and act

Show the draft with:

  • To: address
  • Subject: line (new thread, not a reply)
  • Body
  • Angle used: which re-engagement angle was chosen
  • Context: brief note on sources used

Ask the user if they want to:

  1. Edit the draft
  2. Try a different angle
  3. Create a Gmail draft via gmailcreatedraft

Attio MCP Tool Reference

Use these MCP tools (NOT raw API calls):

Task Tool Key parameters
Search people or companies search-records object, query
Get specific records get-records-by-ids object, record_ids
Get pending tasks list-tasks is_completed=false

Environment

Variable Source Purpose
Attio MCP (Attio connector) CRM — people, deals, tasks
Gmail MCP (claude.ai Gmail) Email history and drafting
Granola MCP (Granola) Meeting notes and transcripts

Reference

  • CRM enrichment context: revops/CRM_ENRICHMENT.md
  • Customer artifacts: revops/customers/ (see README.md for structure and templates)