← Plugin catalog
Productivity

ACA

Automated Client Acquisition v1.5.3

Manage leads and outreach

Create a free account to save this plugin.

From the developer

Declared capabilities

  • Workspace setup guidance
  • Search contacts and lead lists
  • Build lead lists

Cost & access

ACA does not sell products or process payments in ChatGPT.

Declared limitations

  • Do not use ACA for unrelated calendar scheduling.
  • Do not use ACA to send an outreach message.
  • Do not use ACA to access another organization's contacts.

Onboarding example

What should I do next in my ACA workspace?

View onboarding source →

Sources & dates

Developer declarations; not independently tested. Listing last checked Nov 6, 2026. Package observed Nov 6, 2026.

View package source →

Description

From the marketplace listing

ACA helps go-to-market teams run client acquisition from one connected workspace. Check what the workspace has set up and the recommended next steps; search contacts, lead lists, conversations, sequences, campaigns, and campaign metrics; list connected LinkedIn and social accounts and CRM pipeline stages; create contacts, lead lists, content ideas, blueprints, agent profiles, and inactive LinkedIn campaign and lead-magnet drafts. Start content generation from existing active blueprints using external AI providers; generated content remains unapproved and unpublished. Limitations: the app never sends messages, activates campaigns, or enrolls leads. Drafts are reviewed and activated in the ACA web app, where users also connect accounts and mailboxes and find new prospects. It only accesses the single workspace the user authorizes through OAuth. Contact changes may trigger configured webhooks, and adding contacts to a list can trigger that list's existing enrichment, enrollment, and outreach automations, so review the target list settings first.

Language: English · Automatically detected from descriptions.

Changes

No changes recorded yet. Follow this plugin to keep track of future changes.

First seen Oct 28, 2026. Last seen Nov 6, 2026.

Keywords

Files & skills

File archives

Plugin package38 files · 60.3 KBBrowse files →
Skill instructions
aca5.16 KB

View saved version →

---
name: aca
description: What ACA is, what it replaces, and every ACA command. Use when the user has just installed the plugin, asks "what is ACA", "what can ACA do", "what can I do here", "help", "list the commands", or seems unsure where to start.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key) for the workspace check; the overview works without it.
metadata:
  author: ACA
  version: "1.0"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA overview

Give the user a fast, accurate picture of ACA and a clear first move. One screen, no hype, nothing promised that the plugin or the app does not do.

## What to say

### 1. What ACA is (keep it to this)

ACA (Automated Client Acquisition) is one platform for outbound and inbound client acquisition. It covers what most teams stitch together from several tools:

| Instead of | ACA gives you |
| --- | --- |
| Smartlead / Instantly | Cold email sequences, mailbox rotation, warmup, and deliverability monitoring |
| HeyReach | LinkedIn automation across multiple sender accounts, with a unified inbox |
| Separate content tools | Content blueprints and autopilots for LinkedIn, X, Instagram and more |
| Lead-magnet tools | Comment-to-DM lead magnets on LinkedIn and Instagram |
| Signal tools | Buying signals (funding, hiring, engagement) feeding lists |
| Mailbox infrastructure vendors | Microsoft 365 sending tenants and your own mail stack |
| Glue code | CRM, webhooks, GoHighLevel and Notion integrations, native n8n nodes, a CLI, and this MCP connector |

### 2. What you can do from here vs in the app

From this assistant (through the connector): see your workspace status, search your contacts, build lead lists, draft LinkedIn campaigns and lead magnets, read campaign results, triage replies, and plan and generate content.

In the ACA app: connect LinkedIn accounts and mailboxes, find new prospects in ACA's lead database and imports, build and enroll email sequences, activate campaigns, and run autopilots. The assistant gives you the exact link when a step needs the app.

### 3. Their workspace, if connected

Call `get_started`. Report the stage and the first next step in one line, for example: "Your workspace is new. First step: describe your offer and ideal customer; I can draft it with you now." If the connector is not connected, say they can connect ACA from their assistant's connector settings and sign in (a free account works).

### 4. The commands

Show this list, grouped. Each is a skill the user can ask for by name (in Claude Code, type it as a slash command).

**Start**
- `/aca-kickoff`: set up the workspace and launch plan, step by step
- `/aca-icp-onboarding`: define your offer and ideal customer
- `/aca-pipeline-status`: what's running, what's replying, what needs attention
- `/aca-weekly-rhythm`: the weekly review of replies, results and next experiments

**Find prospects**
- `/aca-find-leads`: plan and build your first audience
- `/aca-lookalike-leads`: find more people like your best customers
- `/aca-local-business-leads`: local businesses by category and area
- `/aca-competitor-engagers`: people engaging with competitors' content
- `/aca-domain-list-builder`: build lists from company domains
- `/aca-lead-quality`: clean, score and segment a list
- `/aca-auto-research`: scan the workspace and find the next best action

**Outreach**
- `/aca-launch-outreach`: from lead list to a campaign draft ready to activate
- `/aca-campaign-strategy`: pick the angle, channel mix and cadence
- `/aca-campaign-copywriting`: write the sequence
- `/aca-copy-variants`: A/B variants of a message
- `/aca-personalization-pattern`: personalization that scales without sounding templated
- `/aca-copy-spam-checker`: catch spam triggers before you send
- `/aca-email-sequence-manager`: review and improve existing sequences
- `/aca-experiment-design`: set up a clean test

**Deliverability**
- `/aca-email-infra-readiness`: domains, DNS and mailbox

Preview of the first 4,000 characters. Read full instructions →

aca-auto-research5.37 KB

View saved version →

---
name: aca-auto-research
description: "Autonomous ACA research loop for finding the next best action. Use when the user asks the agent to research opportunities, find gaps, run the outbound research loop, or decide what ACA should do next."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA auto research

Review the connected workspace, name the single biggest bottleneck with evidence, and route to the ACA skill that fixes it.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Start read-only. Do not create anything without approval, unless the user explicitly asked for autonomous execution and the downstream skill allows it.
- Launching, importing, activating, pausing, and publishing happen in the ACA app. Give the link.
- Never invent data. Evidence is counts and records exactly as returned. `get_campaign_metrics` returns stored counts, never rates.
- Prefer one recommendation over a long list.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Operating scan

Call `get_started` first. Its `stage`, `counts`, and `next_steps` usually point straight at the bottleneck. If it is unavailable, call `get_workspace` and infer the stage from the list calls.

Then read what the stage calls for:

- `list_lead_lists`
- `list_campaigns`, plus `get_campaign_metrics` for active campaigns
- `list_sequences`
- `search_conversations` with `has_inbound_message: true`
- `list_lead_magnets`
- `list_content_ideas`, `list_content_generation_jobs`

### 2. Identify the bottleneck

Work down this order and stop at the first that applies:

| Evidence | Bottleneck | Route |
| --- | --- | --- |
| `get_started` shows 0 ICPs or 0 products | No foundation | `aca-icp-onboarding` |
| 0 contacts or no lead list | No audience | `aca-find-leads` |
| Lists exist but contacts lack emails, titles, or fit | Low list quality | `aca-lead-quality` |
| 0 connected LinkedIn accounts and 0 mailboxes | No sender | `aca-sender-health` (connect at `/accounts`, `/email/mailboxes`) |
| Lists and sender ready, no campaign | No campaign | `aca-campaign-strategy` |
| Active campaigns progressing but few inbound conversations | Copy issue | `aca-campaign-copywriting` |
| Active campaigns with little or no progression in stored counts | Sender or send issue | `aca-sender-health` |
| Replies waiting unanswered | Reply backlog | `aca-positive-reply-scoring` |
| Few ideas and no recent generation jobs | Content gap | `aca-content-week` |

Mailbox and sender health details are not available through the connector. When the evidence points there, say so and send the user to `/email/analytics` alongside the skill.

### 3. Write the research note

Write it in chat: bottleneck, evidence (with the exact counts), recommended skill, why now. Offer to let the user save it at `/assets?tab=strategies`.

### 4. Continue

If the user asked for autonomous execution, continue into the selected skill. Otherwise end with the handoff block.

## Output format

```text
Auto research result
Workspace: {workspace} ({stage})
Main bottleneck: {bottleneck}
Evidence: {counts and records as returned}
Recommended next skill: {skill}
Why now: {reason}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue into the next skill; otherwise end with the handoff block.

**Upstream**
- Entry point for "figure out what to do next" requests, or called by `aca-pipeline-status`.

**Auto-continue conditions**
- No product or ICP: continue to `aca-icp-onboarding`.
- No audience: continue to `aca-find-leads`.
- Low list quality: continue to `aca-lead-quality`.
- No campaign strategy:

Preview of the first 4,000 characters. Read full instructions →

aca-campaign-copywriting5.37 KB

View saved version →

---
name: aca-campaign-copywriting
description: "Write ACA outbound campaign copy for LinkedIn, email, WhatsApp, and multi-channel sequences. Use when the user asks for cold email copy, LinkedIn DMs, campaign prompts, follow-ups, or to rewrite campaign messaging. Works in chat and produces copy and prompt-mode instructions ready to paste into the ACA builders."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA campaign copywriting

Write usable campaign copy and prompt-mode instructions that fit ACA's campaign and sequence builders. The writing happens in chat. ACA context is optional and read-only; the user pastes the final copy into the app.

## Rules

- No fake familiarity, fake stats, hype, or unverifiable claims. Proof comes from the user.
- Short messages with one CTA.
- For scalable personalization, write prompt-mode instructions (the builder's AI message mode) instead of hardcoded per-lead messages.
- The connector cannot edit campaigns or sequences. Never say copy was applied; give the page where the user pastes it.
- The connection is bound to one workspace. If the user wants a different one, they switch their active workspace in ACA and reconnect.

## Workflow

### 1. Gather context

Ask for what is not already in the conversation, in one message: offer, audience, pain, proof the user can stand behind, CTA, channel, and tone.

ACA context, only when useful:

- `get_started` to see which channels are connected (`counts.sender_accounts`, `counts.mailboxes`) so the copy targets a channel the user can actually send from.
- `list_campaigns` or `list_sequences` to find the asset being rewritten, then `get_campaign` or `get_sequence` to confirm its name, status, and step count. The connector does not return step copy, so ask the user to paste the current messages.
- `get_contact` on one or two list members to see which fields exist for merge variables and prompts.

### 2. Draft

Write each piece the channel needs:

- Connection request (under 250 characters, peer tone, no pitch)
- First DM (2 to 3 sentences: one observation, one question)
- Email 1 (subject 2 to 4 words, lowercase; body under 90 words; one soft question)
- Follow-up (new angle, same thread, shorter)
- Breakup or fallback message (one or two lines, easy to say no)

For WhatsApp, keep it to the length of a text from a colleague and only for contacts who have opted in or have an existing relationship.

### 3. Convert to prompt mode where it should vary by lead

For each step where personalization should differ per contact, write an instruction the builder's AI step can follow. Constrain:

- Length (characters or sentences)
- Tone (peer, plain, no emojis)
- What to reference (role, company, industry, analysis data)
- What not to do (no invented facts, no compliments about posts it has not seen, no pricing)
- The single CTA

Hand off to `aca-personalization-pattern` when the user wants sample QA against real contacts.

### 4. QA

Run the output through `aca-copy-spam-checker`.

### 5. Hand off

- LinkedIn copy: the user pastes it into the campaign steps at `https://www.automatedclientacquisition.com/campaigns/{campaign_id}`. If there is no campaign yet, continue to `aca-launch-outreach`.
- Email copy: the user pastes it at `https://www.automatedclientacquisition.com/email/sequences`.
- To keep the copy as a reference, the user can save it at `https://www.automatedclientacquisition.com/assets?tab=strategies`.

## Output format

```text
Campaign copy draft: {campaign_or_plan}

Connection request:
{copy}

First DM:
{copy}

Email 1:
Subject: {subject}
{body}

Follow-up:
{copy}

Breakup:
{copy}

Prompt-mode instructions:
{step}: {prompt}

Paste into: {app link}
Recommended next: {skill or action}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, approval state, and the drafted copy when continu

Preview of the first 4,000 characters. Read full instructions →

aca-campaign-strategy5.58 KB

View saved version →

---
name: aca-campaign-strategy
description: "Design an ACA campaign strategy before copy or launch. Use when the user asks for campaign strategy, outbound angle, channel mix, offer framing, target list plan, or success metrics. Reads the workspace, writes the plan in chat, and routes to the next skill."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA campaign strategy

Turn the offer, ICP, and available channels into a practical outbound plan that routes to concrete ACA actions: a list, a campaign, a sequence, or content.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- This skill is read-only in ACA. The plan lives in chat; the user can save it at `/assets?tab=strategies`.
- Never invent metrics, benchmarks presented as the user's data, or proof points. Report ACA counts exactly as returned.
- Prefer one primary angle and one backup angle.
- The connection is bound to one workspace. If the user wants a different one, they switch their active workspace in ACA and reconnect.

## Workflow

### 1. Read the workspace

Call `get_started`. Note `stage`, `counts` (icps, products, contacts, lead_lists, campaigns, active_campaigns, sender_accounts, mailboxes), and `next_steps`. If it is not available, call `get_workspace`, `list_lead_lists`, `list_campaigns`, and `list_sequences`.

Then, as relevant:

- `list_lead_lists` for candidate audiences and their sizes.
- `list_campaigns` and `list_sequences` to see what has already run.
- `get_campaign_metrics` on one or two past campaigns if the user wants the plan to learn from them. Use the counts as returned; do not compute rates without the matching denominator.

The connector reports whether ICPs and products exist, not their content. Ask the user for the offer and ICP in one message if they are not in the conversation already.

### 2. Pick the campaign path

- LinkedIn-first: a connected LinkedIn account and a list of people with LinkedIn profiles.
- Email-first: a connected mailbox and contacts with verified emails.
- Multi-channel: both, LinkedIn connection first, email as the follow-up channel.
- Lead magnet or inbound: a resource worth opting into; route to `aca-lead-magnet-brainstorm`.
- Content-supported nurture: the audience needs trust before outreach; route to `aca-content-week`.

Base the choice on what `get_started` shows is connected, not on preference alone.

### 3. Define the plan

- Audience: titles, company size, industry, geography, disqualifiers.
- Offer: what is being sold and the one outcome it produces.
- Pain: the specific problem the audience already feels.
- Proof: only proof the user supplies (customers, results, credentials).
- CTA: one low-friction ask.
- Sequence length and spacing per channel.
- Suppression rules: existing customers, open deals, competitors, people already in active campaigns.
- Primary angle and backup angle.

### 4. Define success metrics

Reply rate, positive reply rate, booking rate, list quality (valid emails, ICP fit), and sender health. Set a target and a stop rule for each (for example, "pause and rewrite if positive replies stay at zero after 150 contacted"). Make clear these are targets, not results.

### 5. Hand off

Show the plan in chat. Offer to keep it as a strategy document; the user saves it at `https://www.automatedclientacquisition.com/assets?tab=strategies`. If the offer or ICP is not saved yet, point to `/assets?tab=products` and `/assets?tab=icps`.

## Output format

```text
Campaign strategy: {name}
Workspace: {workspace} ({stage})
Audience: {audience}
Primary angle: {angle}
Backup angle: {angle}
Channel path: {path}
Sequence: {touches and spacing}
Primary metric: {metric and target}
Have: {lead_lists} lists, {sender_accounts} LinkedIn, {mailboxes} mailboxes
Needed before launch: {missing_items with app link}
Next: {aca-find-lea

Preview of the first 4,000 characters. Read full instructions →

aca-competitor-engagers4.48 KB

View saved version →

---
name: aca-competitor-engagers
description: "Source prospects around competitors, alternatives, and category keywords using ACA-native lead sources. Use when the user asks for competitor engagers, users of competitor tools, people talking about a competitor, or alternative-to campaigns."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA competitor engagers

Build an audience around competitor and category signals. This skill designs the targeting and the angle; the search or import runs in the ACA app.

## Rules

- Be explicit that the connector cannot scrape post engagers or run searches. Exact engager lists come from a LinkedIn import the user runs at `/leads/import`.
- Prefer category keywords, competitor company names, and role filters over vague interest signals.
- Never invent people, companies, or counts.
- Ask before creating lists or adding contacts.
- Avoid hostile competitor messaging. Position as an alternative, never as an attack.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Read the workspace

Call `get_started` (fallback: `get_workspace`, `list_lead_lists`).

### 2. Clarify the competitive frame

Ask for competitor names, category terms, geography, target roles, and exclusion terms (the user's own customers, partners, competitor employees).

### 3. Pick the source path and write the spec

Offer the paths that fit, in order of precision:

- **Engagers on a competitor post or page**: the user brings the post or page URL to `/leads/import` and runs a LinkedIn import.
- **People at companies using the competitor**: a database search at `/list-building` with the competitor or tool name as a keyword plus role and size filters.
- **Category audience**: a database search or LinkedIn search import using category keywords ("CRM for agencies", "cold email tool") plus roles.

```text
Competitor audience spec: {list name}
Path: {engager import | tool users | category audience}
Where: /leads/import | /list-building
Competitors / category terms: {terms}
Roles: {titles}
Geography / size: {filters}
Exclude: {competitor employees, existing customers, partners}
Target count: {n}
```

### 4. Pick up and verify

When the user says the import or build is done, find the list with `list_lead_lists` and check it with `get_lead_list`. Use `search_contacts` to spot competitor employees or existing customers that slipped in, and flag them for exclusion.

### 5. Recommend the angle

Draft a respectful "alternative to" angle in chat: what the competitor does well, the gap the user fills, and a low-friction ask. Then route to `aca-lead-quality`, followed by `aca-campaign-strategy`.

## Output format

```text
Competitor audience:
Competitors/categories: {terms}
Source path: {engager import / tool users / category audience}
Build at: {app page}
List: {list_id, count | pending}
Recommended angle: {angle}
Next: {skill}
```

## Skill chaining

Preserve the workspace, the audience spec, the angle, relevant IDs, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue automatically; otherwise end with the handoff block.

**Upstream**
- Called by `aca-find-leads` or campaign planning for competitor or category audiences.

**Auto-continue conditions**
- Audience list exists in ACA: continue to `aca-lead-quality`.
- After quality scoring: continue to `aca-campaign-strategy` for a respectful alternative angle.

**Stop before chaining when**
- The import or build still has to run in the ACA app.
- Copy drifts toward hostile competitor messaging.

**Downstream skills**
- `aca-lead-quality` - clean the competitor or category audience.
- `aca-campaign-strategy` - build the alternative-to campaign.
- `aca-campaign-copywriting` - wr

Preview of the first 4,000 characters. Read full instructions →

aca-content-week6.36 KB

View saved version →

---
name: aca-content-week
description: Generate a week of on-brand content in ACA. Use when the user says "generate this week's content", "I need [N] LinkedIn posts about [topic]", "write a content batch", "fill the content queue", "make ad creatives for [product]", or asks for multi-piece content tied to a brand voice. Plans ideas, matches them to an ACA blueprint, and starts generation through the ACA connector.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# Generate a week of content in ACA

ACA's content engine produces on-brand assets through blueprints. This skill plans an idea batch, saves it, starts generation on a matching active blueprint, and tracks the jobs. Scheduling and publishing happen in the ACA app.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Ask before any write. Show the idea batch before `create_content_ideas`.
- Match the requested format to a real blueprint and its pipeline. Never silently use the wrong one.
- `start_content_generation` only runs on an active blueprint, sends prompts to AI providers, and consumes billable credits that cannot be undone. Confirm the blueprint, pipeline, item count, and that it costs credits before every call.
- A blueprint created here with `create_blueprint` is an inactive draft. The user reviews and activates it at `/blueprints/{id}` before it can generate.
- Generated content stays unapproved and unpublished. Approval, autopilots, scheduling, and publishing happen at `/autopilots` and `/publish-queue`.
- For long-running video jobs, set expectations and check `list_content_generation_jobs` no faster than every 30 seconds.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Clarify the brief

Capture:

- Format: LinkedIn posts, tweets, carousels, videos, ads, articles
- Topic or theme
- Count (default 5 for a week)
- Offer and buyer context
- Brand voice to match

Call `get_started` to see whether the workspace has products and ICPs. Brand voice and product details are not readable through the connector; if the user has not described them, ask for a short summary or route to `aca-icp-onboarding`.

### 2. Pick the blueprint

Call `list_blueprints` (use `active_only: true` when you only want ones that can generate now), then `get_blueprint` on the likely match to confirm its pipeline and purpose.

Connector pipelines: `social_media_post`, `rich_article`, `instagram_carousel`, `image_only`, `ugc_video`, `generative_video_oneshot`, `video_script`, `storyboard_video_longform`.

- Active blueprint matches: use it.
- Only an inactive match exists: tell the user to activate it at `/blueprints/{id}`.
- No match: draft a blueprint in chat (name, description, pipeline, master prompt). After approval, call `create_blueprint`; it lands as an inactive draft for the user to review and activate.

### 3. Build the idea batch

Call `list_content_ideas` to avoid duplicating existing ideas. Draft slightly more ideas than needed. Each idea has:

- Short title
- Keywords
- Content framework (for example: contrarian take, story, how-to, teardown, listicle)
- Emotional triggers or angle

Show the batch and ask which to keep. After approval, call `create_content_ideas` (up to 25 per call).

### 4. Start generation

Confirm cost first: "This starts {N} items on {blueprint} ({pipeline}) and uses billable credits. Go?"

After a clear yes, call `start_content_generation` with `blueprint_id`, `pipeline`, and `items` (up to 10 per call; each item carries an `idea_id` or `idea_title`).

Track progress with `list_content_generation_jobs`. Report statuses as returned.

### 5. Review and schedule in the app

Generated pieces are unapproved and unpublished. Send the user to review them, then schedule or publish at 

Preview of the first 4,000 characters. Read full instructions →

aca-copy-spam-checker5.37 KB

View saved version →

---
name: aca-copy-spam-checker
description: "Review ACA email, LinkedIn, and campaign copy for spam risk, weak claims, fake personalization, compliance issues, and formatting problems. Use before launch or when deliverability is questionable. Works on pasted copy in chat and points to where fixes are applied in the ACA app."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA copy spam checker

Review copy before it goes into campaigns or email sequences. The review happens in chat on copy the user pastes. ACA context is optional.

## Rules

- Be concrete. Quote the exact phrase and give a safer replacement.
- Flag unverifiable claims, fake familiarity, urgency tricks, excessive links, image-heavy emails, and spammy formatting.
- For LinkedIn, also flag pitch-heavy connection requests and long first DMs.
- Do not rewrite unless the user asks or the copy is clearly high risk.
- The connector cannot edit campaigns or sequences. Never say a fix was applied; give the page where the user applies it.

## Workflow

### 1. Get the copy

Review pasted copy directly. If the user refers to an ACA asset, find it with `list_campaigns` or `list_sequences` and confirm it with `get_campaign` or `get_sequence`. Those return name, status, and step count, not the message text, so ask the user to paste the steps.

### 2. Grade it

Score each dimension low, medium, or high risk:

- **Deliverability risk**
  - Spam trigger words and phrases: "free", "guarantee", "risk-free", "act now", "limited time", "urgent", "100%", "no obligation", "click here", "earn $", "cash", "winner", "congratulations", "double your", "best price", "special promotion".
  - ALL CAPS words, multiple exclamation marks, `$$$`, emojis in subject lines.
  - More than one link in a first email, link shorteners, tracking-heavy links, attachments, images in cold emails.
  - Subject lines that look like marketing ("Exclusive offer for {company}") rather than a colleague ("quick question").
  - Missing plain-text feel: heavy HTML, colored fonts, signatures with banners.
- **Human credibility**
  - Invented stats, unnamed "clients like you", superlatives ("the leading", "world-class").
  - Fake familiarity ("as we discussed", "following up on our call" when there was none, "Re:" on a first email).
- **Personalization quality**
  - Generic compliments ("loved your recent post") with no specifics.
  - Merge variables that might be empty, broken braces, or fields the contacts do not have (check one contact with `get_contact` if unsure).
- **CTA clarity**
  - More than one ask, calendar links in the first touch, vague asks ("let me know your thoughts").
- **Channel fit**
  - LinkedIn connection request over 250 characters or containing a pitch.
  - First DM longer than 3 sentences.
  - Email first touch over roughly 120 words.
- **Compliance**
  - No way to opt out on email sequences where the user's region expects one.
  - Claims about results the user cannot back up.

### 3. Report

List each issue with the phrase, reason, and replacement. List what is strong and should stay. Give an overall risk level (the highest single dimension, unless it is an isolated minor issue).

### 4. Rewrite (only if asked or high risk)

Provide a full rewrite that fixes every flagged issue and keeps the user's offer and voice.

### 5. Hand off

The user applies changes in the app:

- LinkedIn steps: `https://www.automatedclientacquisition.com/campaigns/{campaign_id}` (draft or paused campaigns).
- Email steps: `https://www.automatedclientacquisition.com/email/sequences`.
- Live deliverability signals: `https://www.automatedclientacquisition.com/email/analytics`.

## Output format

```text
Copy risk: {low/medium/high}

Scores:
Deliverability {l/m/h} | Credibility {l/m/h} | Personalization {l/m/h} | CTA {l/m/h} | Channel fit {l/m/h}

Issues:
- "{phrase}" - {reason} - 

Preview of the first 4,000 characters. Read full instructions →

aca-copy-variants4.65 KB

View saved version →

---
name: aca-copy-variants
description: "Create controlled ACA copy variants for outbound experiments. Use when the user asks for spintax, subject line variants, DM variations, A/B tests, or alternate angles for a campaign. Writes single-variable variants in chat, ready to paste into the ACA campaign or sequence builder."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA copy variants

Create variations that isolate one variable at a time, so the result tells the user something. The work happens in chat; the user applies approved variants in the ACA app.

## Rules

- Change one thing per experiment: pain, proof, CTA, subject, or opening hook.
- Do not create many random variants. 2 to 4 is enough.
- For LinkedIn campaigns, write variants as message variations or prompt variations for the builder's steps.
- For email sequences, use an A/B test step only for a real single-variable split. Subject and body variations go in the same step.
- Spintax: keep each option a natural alternative of the same meaning, no more than 2 to 3 options per slot, never inside merge variables.
- The connector cannot edit campaigns or sequences. Never say variants were applied.
- Never invent past results. If the user wants to base a test on performance, use the counts ACA returns.

## Workflow

### 1. Identify the target

If the user names an ACA asset, find it with `list_campaigns` or `list_sequences`, then confirm with `get_campaign` or `get_sequence` (name, status, step count). The connector does not return step copy; ask the user to paste the control message.

For a LinkedIn campaign that has been running, `get_campaign_metrics` gives counts (contacted, replied, connection rate) to anchor the hypothesis. Report them as returned.

### 2. Set the hypothesis and metric

One sentence: "Changing {variable} from {control} to {variant} will raise {metric} because {reason}." Pick one metric: open rate (subject tests only), reply rate, positive reply rate, or connection acceptance.

Rough sample guidance: each variant needs enough sends to tell apart (a few hundred per arm for reply rate). Say so if the list is too small, using the list's `lead_count` from `get_lead_list` when available.

### 3. Write 2 to 4 variants

- A: Control (unchanged)
- B: Alternate pain, proof, CTA, subject, or hook (only the chosen variable changes)
- C: Optional second alternative of the same variable

Keep length, tone, and everything else identical across variants.

### 4. QA

Run the variants through `aca-copy-spam-checker`.

### 5. Hand off

- LinkedIn: add the variants to the step in `https://www.automatedclientacquisition.com/campaigns/{campaign_id}`. Campaigns should be draft or paused before editing.
- Email: add an A/B test step or subject/body variations at `https://www.automatedclientacquisition.com/email/sequences`.
- Experiment note: the user can save the hypothesis, metric, and stop rule at `https://www.automatedclientacquisition.com/assets?tab=strategies`.

## Output format

```text
Variant plan: {campaign_or_sequence}
Hypothesis: {hypothesis}
Variable: {pain|proof|CTA|subject|hook}
Metric: {metric}
Sample needed: {per arm}

A (control): {copy}
B: {copy}
C: {optional}

Apply in: {app link}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, approval state, and the variants when continuing into another ACA skill.

**Upstream**
- Called by `aca-campaign-copywriting`, `aca-experiment-design`, or `aca-weekly-rhythm`.

**Auto-continue conditions**
- After variants are drafted: continue to `aca-copy-spam-checker`.
- The experiment needs a tracking plan: continue to `aca-experiment-design`.

**Stop before chaining when**
- The user has not approved the variants.
- The next step is applying them in the ACA app.

**Downstream skills**
- `aca-copy-spam-checker`: validate variants.
- `aca-experiment-des

Preview of the first 4,000 characters. Read full instructions →

aca-crew-handoff3.21 KB

View saved version →

---
name: aca-crew-handoff
description: Use this when coordinating the ACA multi-agent sales crew handoffs from signal to meeting.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---
# ACA crew handoff

Use this when running or coordinating a multi-agent ACA outbound crew so work moves stage-to-stage without skipping gates.

## The rule for bots (non-negotiable)

- **One agent, one job, narrow scope.**
- Use **deterministic code** everywhere the task is deterministic; use the **model only** where the input is genuinely unstructured.
- Keep a **human at every irreversible action**. Direct sending, publishing, activation and enrollment remain in the ACA app, even after approval. Confirm paid generation and automation-triggering list writes before using those supported tools.
- Run a **drift check every morning** (ICP, prompts, campaign settings, mailbox health, handoff packet quality).

Reading, researching and drafting can run within the user's scope. Sending, publishing, campaign activation and direct enrollment are handed to the human operator in the ACA app. Never invent a connector action or report an app-only action as completed.

## Chain (default)
1. **Head of Sales**: who to target and why (ICP, segments, priorities)
2. **Signal Hunter**: find real buying intent (funding, hiring, competitor engagement, launches, leadership moves)
3. **ICP Analyst**: filter bad fits against the active ICP
4. **Account Researcher**: company + prospect angle, pain, trigger, stakeholders
5. **Lead Enricher**: emails, phones, missing fields (never invent contacts; enrichment runs in ACA at /list-building or as campaign steps)
6. **Intent Scorer**: rank likelihood to buy; park low-intent
7. **LinkedIn Copywriter**: personalised messages from research + score
8. **Outreach Operator**: prepare inactive drafts and review results; the human operator launches and enrolls leads in the ACA app
9. **Reply Agent**: classify replies (interest / objection / OOO)
10. **Follow-up Agent**: keep warm opportunities alive
11. **Meeting Qualifier**: qualify before calendar
12. **Pipeline Analyst**: what ICPs, signals, and messages convert
13. **Sales Manager**: unblock stages, assign handoffs, report status

## Handoff rules
- Pass a short structured packet: who, company, signal/source, ICP fit, research notes, contact confidence, score, next owner.
- Do not skip ICP or enrichment before outreach.
- Do not fabricate emails or phone numbers.
- Use ACA MCP for leads, lists, sequences, campaigns, and reply status when available.
- Hand activation and enrichment setup to the user in the ACA app. Review list automation before any membership write and confirm paid generation separately.
- Sales Manager owns stuck work; Pipeline Analyst advises, does not silently rewrite live campaigns.

## Example path
Signal Hunter finds competitor engagement → ICP Analyst fit-checks → Account Researcher finds angle → Lead Enricher gets contact data → Intent Scorer ranks → Copywriter writes → Outreach Operator prepares draft → human operator activates in ACA → Reply Agent handles response → Meeting Qualifier moves toward demo.
aca-crew-roles3.57 KB

View saved version →

---
name: aca-crew-roles
description: Use this when creating, briefing, or reviewing specialized ACA sales-crew agent roles and their job boundaries.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---
# ACA crew roles

Use this when spinning up or briefing agents so each has one job and clear handoffs. All roles use the ACA connector when connected; start with `get_started`. Never invent contact data.

## The rule for bots (non-negotiable)

- **One agent, one job, narrow scope.**
- **Deterministic code** everywhere the task is deterministic; the **model only** where input is genuinely unstructured.
- A **human at every irreversible action**. Direct sends, publication, campaign activation and enrollment happen in the ACA app; approval never enables unavailable connector tools. Confirm paid generation and list writes that can trigger existing automations before proceeding.
- A **drift check every morning**.

Do not widen a bot's job "just this once." Split the work or hand off.

## Role charters

### Head of Sales
Decides who to target and why. Sets ICP, segments, campaign priorities. Hands approved targets to Signal Hunter and ICP Analyst. Does not launch outreach.

### Signal Hunter
Finds prospects with real buying intent. Hands companies/people to ICP Analyst. Does not enrich emails or write copy.

### ICP Analyst
Filters bad fits against the active ICP. Passes fits to Account Researcher; rejects and logs non-fits.

### Account Researcher
Researches company + prospect (angle, pain, trigger, stakeholders). Attaches notes via ACA. Hands to Lead Enricher and Intent Scorer.

### Lead Enricher
Finds emails, phones, missing fields via ACA enrichment (list-building or campaign enrichment steps, set up in the app). Never fabricates. Hands complete contacts to Intent Scorer and Copywriter.

### Intent Scorer
Ranks likelihood to buy. Tags/scores in ACA. Hands high-intent to Copywriter and Outreach Operator; parks low-intent.

### LinkedIn Copywriter
Writes personalised LinkedIn/DM copy from research + score. Hands ready copy to Outreach Operator. Sending remains in the ACA app.

### Outreach Operator
Prepares inactive campaign drafts and reviews campaign results through the connector. Hands launch settings to the human operator for activation and enrollment in the ACA app. Hands replies to Reply Agent.

### Reply Agent
Classifies replies (interest / objection / OOO). Hands interested prospects to Follow-up Agent and Meeting Qualifier.

### Follow-up Agent
Keeps warm opportunities alive. Hands demo-ready to Meeting Qualifier; escalates stuck deals to Sales Manager.

### Meeting Qualifier
Qualifies before calendar (fit, next-step clarity). Hands qualified meetings to Sales Manager / human calendar.

### Pipeline Analyst
Reports which ICPs, signals, and messages convert. Briefs Head of Sales and Sales Manager. Does not silently change live campaigns. Owns or triggers the morning drift check summary when asked.

### Sales Manager
Coordinates the crew end-to-end, assigns handoffs, unblocks stages, reports status. Uses ACA for pipeline truth. Enforces the bot rule and the irreversible-action fence.

## Boundary rules
- One primary job per agent.
- Handoff with a structured packet (see ACA crew handoff skill).
- Hand campaign activation and paid enrichment setup to the user in the ACA app; confirm paid generation and automation-triggering list writes separately.
- Prefer scripts/tools for deterministic steps; reserve the model for messy language and judgment calls.
aca-deliverability-incident-response7.09 KB

View saved version →

---
name: aca-deliverability-incident-response
description: "Triage ACA email deliverability incidents. Use when the user reports bounces, spam placement, failed sends, reputation drops, disconnected mailboxes, throttling, or campaigns and sequences that suddenly stopped sending."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA deliverability incident response

Diagnose a sending incident, classify the likely cause, and propose the smallest safe intervention. The connector can show workspace counts, sequences, campaigns and replies; it cannot read mailbox health, send logs or bounce rates, and it cannot pause anything. Those happen in the ACA app.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Start read-only. Never invent bounce rates, health scores, or send counts. Use only what tools return or what the user pastes from the app.
- Pausing a sequence or campaign, lowering limits, and reconnecting mailboxes happen in the ACA app. Give the exact page and say what to click; never say it was done.
- Preserve evidence: name the sequence, campaign, mailbox or domain, and the symptom, with the time it started.
- Do not recommend aggressive retries or volume increases while an incident is open.
- The connection is bound to one workspace. If the incident is in a different workspace, the user switches their active workspace in ACA and reconnects.

## Workflow

### 1. Read what the connector can see

- `get_started`: mailbox count and connected LinkedIn account count. Zero mailboxes while sequences exist is itself a finding (disconnected or removed mailboxes).
- `list_sequences`, then `get_sequence` for the affected sequence: status, steps, spacing, and any settings it returns.
- `list_campaigns`, then `get_campaign` and `get_campaign_metrics` for affected campaigns: status and the metrics returned.
- `search_conversations` with `has_inbound_message: true`, then `get_conversation` on recent threads, to look for indirect signals: mailer-daemon bounces, "wrong person" or "unsubscribe" replies, spam complaints, or auto-replies. This is a sample, not a rate.

If `get_started` is not available, use `get_workspace` plus the `list_*` tools above.

### 2. Get the numbers from the app

Ask the user to open `/email/analytics` and `/email/mailboxes` and paste or describe:

- Bounce rate and spam complaint rate for the last 7 days, per mailbox or domain if shown
- Which mailboxes show as disconnected, paused, or flagged
- Daily send volume per mailbox before and after the incident
- When the change started and what changed around then (new list, new copy, new domain, volume increase)

If the user cannot get them, continue with what is known and mark the rest as unknown.

### 3. Classify the incident

Pick the most likely cause and list the evidence for it:

- **Mailbox disconnected**: mailbox shows disconnected in `/email/mailboxes`, or mailbox count dropped. Sends stop rather than bounce.
- **Reputation or warmup issue**: new domain or mailbox, rising spam placement, opens collapsing across all sequences at once.
- **Bounce spike**: hard bounces above 2% (above 5% is severe). Usually list quality or unverified emails.
- **Bad list quality**: bounces concentrated in one lead list or source, many role or catch-all addresses.
- **Copy or content issue**: one sequence affected while others on the same mailboxes are fine; spammy wording, links, images or attachments.
- **Volume or rate issue**: per-mailbox volume ramped quickly, or above roughly 30 to 50 cold emails per mailbox per day.
- **DNS or authentication issue**: SPF, DKIM or DMARC missing or broken after a DNS change. Check with a public DNS lookup if your tools allow it, or ask the user to paste the records.
- **Processor or campaign stalled**: nothing sends, no bounces, mailboxes connected. Sequence 

Preview of the first 4,000 characters. Read full instructions →

aca-deliverability-test5.79 KB

View saved version →

---
name: aca-deliverability-test
description: "Plan a controlled ACA email preflight test. Use before launching a new sequence, new mailbox, new domain, or high-volume campaign, or when the user asks how to test deliverability safely."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA deliverability test

Design a small, low-risk preflight for email sending, set up the test list, and hand off the sequence build and sending to the ACA app. The connector cannot create, enroll or activate sequences, and it cannot read mailbox health or send logs.

## Rules

- `add_contacts_to_list` can trigger the target list's existing enrichment, campaign enrollment, external outreach, and configured webhooks. Before adding contacts, review that list's automation settings at `/leads/lists` and confirm the intended contacts and side effects. If the connector cannot expose those settings, ask the user to verify them in ACA; do not assume a list write is draft-only.
- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Never send test traffic or tell the user it was sent. Building, enrolling and activating the test sequence happen at `/email/sequences`.
- Keep tests small. Test infrastructure, copy, tracking and enrollment separately where possible.
- Never invent test contacts. Seed or test addresses come from the user.
- Ask before creating a lead list or adding contacts.
- The connection is bound to one workspace. To test in another, the user switches their active workspace in ACA and reconnects.

## Workflow

### 1. Read the workspace

- `get_started`: mailbox count. If it is zero, stop and route to `aca-email-infra-readiness`.
- `list_sequences` and `get_sequence` for the sequence being tested.
- `list_lead_lists` and `get_lead_list` for the candidate list.

If `get_started` is not available, use `get_workspace` plus the `list_*` tools above.

### 2. Choose what to test

One of: a new mailbox or domain, a new sequence's copy, tracking settings, or a new list source. Ask the user which mailboxes will be used; the connector does not list them, so they check `/email/mailboxes`.

### 3. Review copy

Run the sequence copy through `aca-copy-spam-checker` before any send.

### 4. Build the test plan

- **Sample size**: 20 to 50 real prospects from the target list, or a seed list of 5 to 10 addresses the user owns across Gmail, Outlook and one other provider.
- **Mailboxes**: 1 to 2, already warmed for at least 2 to 3 weeks.
- **Daily cap**: 10 to 20 per mailbox for the test.
- **Send window**: recipients' business hours, weekdays.
- **Tracking**: plain text, no open pixel, at most one link, for the first test.
- **Pass criteria**: hard bounces under 2%, no spam complaints, seed messages land in Primary or Inbox, at least one human reply or no negative signals within 3 to 5 business days.
- **Fail criteria**: bounces at or above 5%, any complaint, seeds in spam, or mailbox flagged.

### 5. Set up the test list (with approval)

If the user approves, `create_lead_list` for the test and `add_contacts_to_list` with contacts found via `search_contacts`. If they supply seed addresses, add them with `bulk_create_contacts` (up to 100 per call, user-supplied data only) first.

### 6. Hand off to the app

The user builds or duplicates the test sequence, enrolls the test list, sets the daily cap, and activates it at `/email/sequences`. Mailbox caps are set at `/email/mailboxes`.

### 7. Read results

After the test window, ask the user to paste bounce and complaint numbers from `/email/analytics`. Check replies with `search_conversations` (`has_inbound_message: true`) and `get_conversation`. Judge pass or fail against the criteria above; do not estimate numbers you were not given.

## Output format

```text
Deliverability test plan
Asset: {sequence/mailbox/domain/list}
Sample size: {n}
Ma

Preview of the first 4,000 characters. Read full instructions →

aca-domain-list-builder4.79 KB

View saved version →

---
name: aca-domain-list-builder
description: "Build ACA account and contact lists from company domains, company keywords, or account constraints. Use when the user has a target account list, company keyword list, domain list, or wants contacts at specific companies."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA domain list builder

Turn a target account list into a usable lead list: first by collecting contacts already in ACA, then by sending the user to source the gaps.

## Rules

- `add_contacts_to_list` can trigger the target list's existing enrichment, campaign enrollment, external outreach, and configured webhooks. Before adding contacts, review that list's automation settings at `/leads/lists` and confirm the intended contacts and side effects. If the connector cannot expose those settings, ask the user to verify them in ACA; do not assume a list write is draft-only.
- If the user provides domains, never invent contacts at those domains.
- Search existing ACA contacts first, then source what is missing.
- The connector cannot search ACA's lead database or run imports. Write the spec for the missing accounts and send the user to `/list-building` or `/leads/import`.
- Ask before creating lists or adding contacts.
- Keep source notes so the list's origin is clear (list name and description).
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Read the workspace

Call `get_started` (fallback: `get_workspace`, `list_lead_lists`).

### 2. Parse the account source

Normalize the input into a clean table: domain, company name, and any constraints given (industry, size, geography), plus the target roles per account. Strip `www.`, protocols, and paths from domains, and dedupe.

### 3. Match existing contacts

For each account, call `search_contacts` by company name or domain. Record per account: contacts found, and whether they match the target roles. Use `get_contact` when the role or channel is unclear.

Split accounts into **covered** (at least one target-role contact) and **gaps** (none).

### 4. Build the destination list

Propose a list name and description that records the source (for example "Q3 target accounts - from Sales domain list"). After approval, `create_lead_list` and `add_contacts_to_list` with the matching contacts.

### 5. Source the gaps

For gap accounts, write a spec:

```text
Account sourcing spec: {list name}
Where: /list-building (database) | /leads/import (LinkedIn or CSV)
Companies / domains: {gap accounts}
Roles: {titles, seniority}
Contacts per account: {n}
Exclude: {roles, already-covered accounts}
```

If the user later pastes contacts for these accounts, confirm and add them with `bulk_create_contacts` (100 per call), then `add_contacts_to_list`.

### 6. Verify

Check the final list with `get_lead_list` and route to `aca-lead-quality`.

## Output format

```text
Domain/account list:
Input accounts: {n}
Covered by existing contacts: {n} ({contacts} contacts)
Gaps to source: {n} -> {app page}
List: {list_id, count}
Next: aca-lead-quality
```

## Skill chaining

Preserve the workspace, the account table, relevant IDs, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue automatically; otherwise end with the handoff block.

**Upstream**
- Called when `aca-find-leads` detects account or domain constraints, or the user provides company or domain lists.

**Auto-continue conditions**
- List exists in ACA: continue to `aca-lead-quality`.
- Contacts are missing channel data: continue to `aca-launch-outreach`, noting that email finding or enrichment steps are set up in the campaign at `/campaigns/{id}`.

**Stop before chaining when**
- Gap accounts still have to be sourced in the A

Preview of the first 4,000 characters. Read full instructions →

aca-email-deliverability-audit5.52 KB

View saved version →

---
name: aca-email-deliverability-audit
description: "Audit ACA cold email readiness before launch. Use when the user asks about deliverability, inbox placement, warmup, mailbox health, sending limits, bounce risk, or whether a sequence is safe to start."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA email deliverability audit

Review whether ACA email outreach is ready to send without unnecessary risk. The connector shows sequences, campaigns, lists and the mailbox count; mailbox health, warmup state and bounce history live in the ACA app, so the audit combines both.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Read-only. Changes to sequences, limits or mailboxes happen in the ACA app; give the link.
- Do not promise inbox placement. Report risk levels and concrete blockers.
- Never invent health scores, warmup progress or bounce rates. Use what tools return or what the user pastes from the app, and mark the rest unknown.
- Treat zero or disconnected mailboxes, high bounce risk lists, aggressive volume, missing authentication, and spammy copy as blockers.
- The connection is bound to one workspace. To audit another, the user switches their active workspace in ACA and reconnects.

## Workflow

### 1. Read the workspace

- `get_started`: mailbox count, campaign counts.
- `list_sequences`, then `get_sequence` for the sequences about to launch: summary, status and step count. Sequence copy, step spacing, limits, send windows and tracking settings are not exposed; ask the user to provide them from `/email/sequences`.
- `list_campaigns` and `get_campaign` for active campaigns that share senders.
- `get_lead_list` for the target list, plus `search_contacts` to sample contacts and their email fields.

If `get_started` is not available, use `get_workspace` plus the tools above.

### 2. Fill the gaps from the app

Ask the user for what the connector does not expose, from `/email/mailboxes` and `/email/analytics`:

- Connected vs total mailboxes, and how long each has been warming
- Current daily limit per mailbox
- Last 7 to 14 days of bounce and spam complaint rates, if any sending has happened
- Sending domains, so you can check SPF, DKIM and DMARC with a public DNS lookup if your tools allow it, or have the user paste the records

### 3. Review against these checks

- **Mailboxes**: at least one connected; ideally 2 to 3 per sending domain. Zero is a blocker.
- **Warmup**: new mailboxes warmed 2 to 3 weeks before cold sends. Under 2 weeks is a warning.
- **Volume**: roughly 30 to 50 cold emails per mailbox per day at most; start new mailboxes at 10 to 20 and ramp weekly.
- **Authentication**: SPF passes and includes the sending provider, DKIM signing on, DMARC published (`p=none` is fine to start). Missing SPF or DKIM is a blocker.
- **Sequence shape**: 3 to 5 steps, at least 2 to 3 business days between steps, a send window in recipients' business hours.
- **Tracking**: plain text and no open tracking for first sends on new domains; at most one link.
- **List quality**: verified emails, few role or catch-all addresses. Unknown verification status is a warning; route to `aca-lead-quality`.
- **Copy risk**: run through `aca-copy-spam-checker`.
- **History**: hard bounces above 2% or complaints above 0.1% in recent sending is a warning; above 5% bounces or 0.3% complaints is a blocker.

### 4. Report

Give a verdict, blockers, warnings, and launch-safe defaults, each pointing to the app page where it is fixed.

## Output format

```text
Deliverability audit: {pass / caution / blocked}

From ACA: {mailboxes count, sequences reviewed, list reviewed}
From the user: {pasted rates, mailbox states, DNS records}
Unknown: {items}

Blockers:
- {blocker} → {app page}

Warnings:
- {warning}

Recommended limits:
- Daily new leads per mailbox: {n}
- G

Preview of the first 4,000 characters. Read full instructions →

aca-email-infra-readiness5.03 KB

View saved version →

---
name: aca-email-infra-readiness
description: "Review ACA email infrastructure readiness. Use when the user asks about domain setup, BYO email infrastructure, mailbox provisioning, DNS readiness (SPF, DKIM, DMARC), warmup readiness, or whether email infra is ready for cold outreach."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA email infrastructure readiness

Review whether the email foundation (domains, DNS, mailboxes, warmup, capacity) is ready before sequences scale. The connector reports only the mailbox count; domains, DNS, warmup and mailbox state come from the user, public DNS, or the ACA app.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Be clear when a fix happens at the DNS provider or in the ACA app rather than through the connector.
- Never claim SPF, DKIM or DMARC status you have not seen. Use records the user pastes or a public DNS lookup you actually ran.
- Never invent warmup progress or health scores.
- Prefer a readiness checklist over speculative diagnosis.
- The connection is bound to one workspace. To review another, the user switches their active workspace in ACA and reconnects.

## Workflow

### 1. Read the workspace

- `get_started`: mailbox count and active campaign count.
- `list_sequences`: how many sequences exist or are active, which sets the capacity needed.
- `list_campaigns`: active campaigns that may share senders.

If `get_started` is not available, use `get_workspace` plus the `list_*` tools above.

### 2. Gather infrastructure details

Ask in one message for what the connector does not expose:

- Sending domains, and whether they are separate from the main company domain
- Mailbox provider (Google Workspace, Microsoft 365, BYO SMTP) and mailboxes per domain
- Mailbox ages and warmup start dates, as shown at `/email/mailboxes`
- Planned daily volume

### 3. Check DNS per sending domain

Run a public DNS lookup if your tools allow it; otherwise ask the user to paste the records.

- **MX**: present and pointing at the mailbox provider.
- **SPF**: exactly one `v=spf1` TXT record, includes the provider, ends in `~all` or `-all`, under 10 DNS lookups.
- **DKIM**: provider selector published and signing enabled in the provider admin.
- **DMARC**: `_dmarc` TXT record exists; `p=none` with a `rua` address is a fine start, move to `quarantine` once stable.
- **Custom tracking domain** (if tracking is used): CNAME set, HTTPS working.
- **Domain redirect**: sending domains redirect to the main website.

### 4. Check capacity and warmup

- Mailboxes: 2 to 3 per sending domain; do not put many mailboxes on one domain.
- Warmup: 2 to 3 weeks before cold sends; keep warmup running alongside cold sends.
- Capacity: roughly 30 to 50 cold emails per mailbox per day. Planned daily volume divided by that gives the mailboxes needed; if the count from `get_started` is short, say how many more are needed.
- New domains: register 2 to 4 weeks ahead of launch where possible.

### 5. Produce the checklist and route

Mark each item ready, caution, or not ready, and say where it gets fixed: the DNS provider, the mailbox provider, or `/email/mailboxes`.

## Output format

```text
Email infra readiness: {ready/caution/not ready}

Known from ACA:
- Mailboxes: {count from get_started}
- Sequences/campaigns needing capacity: {counts}

Checked (DNS / user-provided):
- {domain}: MX {ok/missing}, SPF {ok/issue}, DKIM {ok/issue}, DMARC {ok/issue}

Needs a check in the app or DNS:
- {item} → {where}

Capacity: {mailboxes needed} vs {mailboxes connected}
Next: {skill/action}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, approval state, and the domain checklist when continuing into another ACA skill.

**Upstream**
- Called by `aca-sender-health`, `aca-email-deliverability-audit`, or setup workflows.

Preview of the first 4,000 characters. Read full instructions →

aca-email-sequence-manager6.31 KB

View saved version →

---
name: aca-email-sequence-manager
description: "Plan, write, and review ACA email sequences. Use when the user asks to create an email sequence, edit steps, enroll leads, pause or resume a sequence, inspect sequences, or replace Smartlead-style sequence operations with ACA native email. Reads existing sequences, writes paste-ready sequence copy, and hands building, enrollment, and on/off to the ACA app."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA email sequence manager

Work with ACA's native email sequence engine. The connector can read sequences (name, status, step count). Creating, editing, enrolling, pausing, and resuming happen in the ACA app at `/email/sequences`, so this skill writes the full sequence in chat in a paste-ready format and gives the exact next click.

## Rules

- `add_contacts_to_list` can trigger the target list's existing enrichment, campaign enrollment, external outreach, and configured webhooks. Before adding contacts, review that list's automation settings at `/leads/lists` and confirm the intended contacts and side effects. If the connector cannot expose those settings, ask the user to verify them in ACA; do not assume a list write is draft-only.
- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Never say a sequence was created, edited, enrolled, paused, or resumed. Those actions are done by the user in the app.
- Never invent prospects, emails, proof points, or metrics. Proof and claims come from the user.
- Ask before adding contacts to ACA. Only add people the user supplied, with `bulk_create_contacts` (100 per call).
- Use HTML paragraphs for email bodies. Keep spacing conservative (3 to 4 days between touches) unless the user asks otherwise.
- The connection is bound to one workspace. If the user wants a different one, they switch their active workspace in ACA and reconnect.

## Workflow

### 1. Read the workspace

Call `get_started`. Note `counts.mailboxes`, `counts.lead_lists`, and `counts.contacts`. If it is not available, call `get_workspace` and `list_lead_lists`.

If `mailboxes` is 0, stop and route to `aca-sender-health`: the user connects a mailbox at `/email/mailboxes` before any sequence can send.

### 2. Inspect existing sequences

Call `list_sequences` (filter by `status` if the user asked about active or paused ones). For a specific sequence, call `get_sequence` to confirm its name, status, and `step_count`.

The connector returns summaries, not step copy. If the user wants to edit or review existing copy, ask them to paste it.

### 3. Write or revise the sequence

Write the sequence in chat as a numbered block the user can paste step by step into the builder:

```text
Sequence: {name}
Goal: {goal}
Audience: {list or ICP}

Step 1 - Email
Subject: {subject}
Body:
<p>{paragraph}</p>
<p>{paragraph}</p>

Step 2 - Wait {n} days

Step 3 - Email (reply in thread)
Body:
<p>{paragraph}</p>

Step 4 - Condition: stop if replied

Step 5 - Wait {n} days

Step 6 - Email (breakup)
...
```

Step types to use, matching the builder: Email, Delay, Condition, and A/B test where a real single-variable split is wanted (hand variant work to `aca-copy-variants`).

Defaults that work:

- 3 to 4 emails. First email under 90 words, follow-ups shorter.
- Follow-ups reply in the same thread with a new angle, not "just bumping this".
- One CTA per email, usually a soft question.
- Merge variables only for fields the contacts actually have (check one with `get_contact`).

Run the copy through `aca-copy-spam-checker` before handoff.

### 4. Prepare the audience (optional)

If the user wants to enroll a list:

- `list_lead_lists` and `get_lead_list` to confirm the list and its `lead_count`.
- If the user pasted people who are not in ACA yet, confirm count and fields, then add them with `bulk_create_contacts` after approval, and p

Preview of the first 4,000 characters. Read full instructions →

aca-experiment-design5.04 KB

View saved version →

---
name: aca-experiment-design
description: "Design one controlled ACA experiment for outbound or content. Use when the user wants to improve reply rate, test an angle, split audiences, A/B test copy, compare channels, or plan experiments."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA experiment design

Design a clean experiment with one variable, one metric, and a stopping rule, grounded in the workspace's real baseline.

## Rules

- `add_contacts_to_list` can trigger the target list's existing enrichment, campaign enrollment, external outreach, and configured webhooks. Before adding contacts, review that list's automation settings at `/leads/lists` and confirm the intended contacts and side effects. If the connector cannot expose those settings, ask the user to verify them in ACA; do not assume a list write is draft-only.
- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Change one variable at a time.
- Prefer small tests before scaling.
- Write the experiment plan before anything changes.
- Baselines come from stored counts as returned. `get_campaign_metrics` returns counts, never rates. Only compute a rate when the matching denominator came back too, and show both numbers. If there is no usable baseline, say so and make the first run the baseline.
- Never invent results.
- Ask before any write. Editing sequences, changing campaign settings, enrolling, and activating happen in the ACA app.

## Workflow

### 1. Read the current state

Call `get_started`, then:

- `list_campaigns` and `get_campaign_metrics` for the campaigns in scope
- `list_sequences` and `get_sequence` for email tests
- `search_conversations` with `has_inbound_message: true` for reply volume context
- `list_lead_lists` for audience size
- `list_content_generation_jobs` for content tests

### 2. Pick the experiment type

- Audience
- Angle
- CTA
- Channel
- Sequence timing
- Content topic

### 3. Define the test

- Hypothesis
- Control (what runs now, with its stored baseline counts)
- Variant (the one thing that changes)
- Metric (a count with its denominator, for example "replies of contacts messaged")
- Sample size per arm (a list size you can actually fill, from `list_lead_lists`)
- Decision rule (the difference that counts as a win, and what happens if it is a tie)
- Review date

### 4. Write the plan

Show it in chat. Offer to let the user save it at `/assets?tab=strategies`.

### 5. Route to the executor (after approval)

- Copy variable: `aca-copy-variants` (copy written in chat; built at `/email/sequences` or `/campaigns/{id}`)
- Audience variable: `aca-find-leads` or `aca-lead-quality` (variant list via `create_lead_list` and `add_contacts_to_list`)
- Channel or new LinkedIn arm: `aca-launch-outreach` (inactive draft via `create_linkedin_campaign_draft`)
- Content variable: `aca-content-week`

## Output format

```text
Experiment: {name}
Hypothesis: {hypothesis}
Control: {control} (baseline: {stored counts})
Variant: {variant}
Metric: {count} of {denominator}
Sample size: {n} per arm
Decision rule: {rule}
Review date: {date}
Next action: {skill} → {app link if the change is app-only}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue into the next skill; otherwise end with the handoff block.

**Upstream**
- Called by `aca-weekly-rhythm`, `aca-positive-reply-scoring`, `aca-copy-variants`, or optimization requests.

**Auto-continue conditions**
- Copy variable: continue to `aca-copy-variants`.
- Audience variable: continue to `aca-find-leads` or `aca-lead-quality`.
- Content variable: continue to `aca-content-week`.
- Launch-ready test: continue to `aca-launch-outreach`.

**Stop before chaining when**
- Appl

Preview of the first 4,000 characters. Read full instructions →

aca-find-leads6.87 KB

View saved version →

---
name: aca-find-leads
description: Plan and build a target list of leads in ACA. Use when the user says "find leads", "build a list of [role] in [industry]", "import [N] [persona]", "search LinkedIn for [criteria]", "populate the audience for [campaign]", or asks to source prospects. Turns a vague audience into precise search criteria, sends the user to the right ACA sourcing page, then picks up and verifies the resulting list.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# Find leads in ACA

ACA stores prospects as contacts grouped into lead lists. This skill turns a brief into a campaign-ready lead list. The search itself runs in the ACA app; this skill does the targeting work, then checks what landed.

## Rules

- `add_contacts_to_list` can trigger the target list's existing enrichment, campaign enrollment, external outreach, and configured webhooks. Before adding contacts, review that list's automation settings at `/leads/lists` and confirm the intended contacts and side effects. If the connector cannot expose those settings, ask the user to verify them in ACA; do not assume a list write is draft-only.
- Use the ACA connector only. Never ask for LinkedIn, Apify, Prospeo, or other provider API keys; ACA owns those integrations.
- Never invent people, emails, companies, or counts. Prospects come from ACA searches the user runs, or from data the user pastes.
- The connector cannot search ACA's lead database or run LinkedIn imports. Define the criteria in chat, then send the user to `/list-building` (database search) or `/leads/import` (LinkedIn search URL or CSV).
- Ask before any write: creating a list, adding contacts, or adding pasted people.
- If a brief is too broad, narrow by industry or SIC category, keyword, geography, company size, seniority, email status, or LinkedIn presence.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Read the workspace

Call `get_started` to see counts (contacts, lead lists, ICPs) and next steps. If it is not available, call `get_workspace` and `list_lead_lists`.

Check whether a suitable list already exists with `list_lead_lists`, and whether matching contacts are already in ACA with `search_contacts`. Reuse before sourcing.

### 2. Clarify the audience

If the brief is vague, ask one short question. Extract:

- Buyer role and seniority
- Industry or SIC category
- Geography
- Company size
- Desired count
- Required channels (email, LinkedIn, phone)
- Disqualifiers

If the user references a saved ICP, ask them to paste its key traits; `get_started` only tells you whether ICPs exist.

### 3. Write the search spec

Produce a precise spec the user can enter in ACA:

```text
Search spec: {list name, e.g. "US HVAC Owners - May 2026"}
Where: /list-building (database) | /leads/import (LinkedIn)
Roles / seniority: {titles, seniority levels}
Industry: {SIC codes or keywords}
Geography: {country / state / city}
Company size: {min-max employees}
Channel requirements: {has email, email status, has LinkedIn, has phone}
Exclude: {titles, industries, keywords}
Target count: {n}
```

Pick the source:

- **Database search at `/list-building`** first. It is the fastest route for most B2B and local briefs.
- **LinkedIn import at `/leads/import`** when the database is thin, the user wants LinkedIn-first outreach, or the brief depends on LinkedIn-only filters. Describe the LinkedIn or Sales Navigator search to build (keywords, title, geography, industry, company headcount), and remind the user to check for an already running import before starting another.
- **CSV at `/leads/import`** when the user has a file.

If the user pastes people directly in chat (names, companies, emails, LinkedIn URLs), confirm the count and fields, then add them with `bulk_create_contacts`

Preview of the first 4,000 characters. Read full instructions →

aca-icp-onboarding4.68 KB

View saved version →

---
name: aca-icp-onboarding
description: "Turn a rough buyer or offer description into a paste-ready offer and ICP to save in ACA. Use when the user says define my ICP, onboard this niche, set up targeting, create the buyer profile, or needs product ICP fit before campaigns."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA ICP onboarding

Produce the minimum useful product and ICP context needed for lead sourcing, scoring, copywriting, and campaign personalization. The drafting happens in chat; the user saves the records in ACA.

## Rules

- Use the ACA connector only.
- Do not over-model. The output should help a campaign launch.
- The connector cannot create or edit products, ICPs, brand voices, or strategy documents. Draft them in chat in a paste-ready shape, then send the user to the right `/assets` tab. Never say a record was saved.
- Include negative filters and disqualifiers, not just ideal traits.
- Never invent proof, metrics, or customer names. Use only what the user provides.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Inspect current setup

Call `get_started` and read the ICP and product counts (fallback: `get_workspace`). If ICPs or products already exist, ask the user to paste the relevant one so you refine it rather than duplicate it.

### 2. Clarify missing details

Ask once, in one short message, for what is missing: offer, buyer role, industry, geography, company size, pain, desired outcome, objections, proof, and bad-fit criteria.

### 3. Draft the product

```text
Product: {name}
One-liner: {what it does, for whom, outcome}
Key outcome: {measurable result the user can stand behind}
Proof: {user-supplied proof only}
Common objections: {objection -> answer}
Price / offer shape: {if given}
```

### 4. Draft the ICP

```text
ICP: {name}
Titles / seniority: {list}
Industry: {SIC or keywords}
Geography: {list}
Company size: {employee range}
Pains: {top 3}
Buying triggers: {hiring, funding, new tool, growth signal}
Best-fit signals: {signals}
Disqualifiers: {titles, industries, sizes, situations to exclude}
Fit with product: {why this ICP needs this product, 1-2 lines}
```

Show both drafts and revise until the user approves. Then hand off: product at `/assets?tab=products`, ICP at `/assets?tab=icps`, and brand voice at `/assets?tab=brands` if the user wants tone set too.

### 5. Save the targeting note

Write a short targeting note (best-fit signals, disqualifiers, lead-source suggestion, first campaign angle). The user can save it at `/assets?tab=strategies`.

### 6. Route next

- Need an audience: `aca-find-leads`
- Need positioning: `aca-campaign-strategy`
- Ready to send: `aca-launch-outreach`

## Output format

```text
ICP onboarding drafted.
Product: {product}
ICP: {icp}
Best-fit signals: {signals}
Disqualifiers: {disqualifiers}
Save in ACA: /assets?tab=products, /assets?tab=icps{, /assets?tab=strategies}
Next: {skill}
```

## Skill chaining

Preserve the workspace, the approved product and ICP drafts, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue automatically; otherwise end with the handoff block.

**Upstream**
- Usually called by `aca-kickoff`, `aca-auto-research`, or `aca-campaign-strategy` when product or ICP context is missing.

**Auto-continue conditions**
- User asked to launch and the ICP draft is approved: continue to `aca-campaign-strategy`.
- Audience sourcing is the next blocker: continue to `aca-find-leads` with the ICP as the search spec.
- The offer needs an inbound asset: continue to `aca-lead-magnet-brainstorm`.

**Stop before chaining when**
- The user has not approved the product and ICP drafts.

**Downstream skills**
- `aca-campaign-strategy` - tur

Preview of the first 4,000 characters. Read full instructions →

aca-kickoff6.28 KB

View saved version →

---
name: aca-kickoff
description: Guided start-here orchestrator for ACA. Use when the user is new, wants to set up ACA, wants an outbound/content launch plan, says "start here", "set up my ACA workspace", "launch my first campaign", or asks what to do next. Reads the workspace stage, fills the gaps that block a first campaign, and routes to the next skill.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA kickoff

The guided entry point for running ACA through an agent. It turns a vague goal into a concrete next action in the user's ACA workspace, then routes to the right skill.

## Rules

- `add_contacts_to_list` can trigger the target list's existing enrichment, campaign enrollment, external outreach, and configured webhooks. Before adding contacts, review that list's automation settings at `/leads/lists` and confirm the intended contacts and side effects. If the connector cannot expose those settings, ask the user to verify them in ACA; do not assume a list write is draft-only.
- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Never invent prospects, emails, companies, or results. Contacts come from the user or from ACA.
- Ask before creating anything in ACA unless the user explicitly asked you to set it up.
- Campaigns are created as inactive drafts. Activation, sending, imports, and connecting LinkedIn or mailboxes happen in the ACA app; give the link.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.
- The connection is bound to one workspace. If the user wants a different one, they switch their active workspace in ACA and reconnect.

## Workflow

### 1. Read the workspace

Call `get_started`. Note `workspace`, `stage`, `counts`, `plan`, and `next_steps`.

If `get_started` is not available, call `get_workspace`, `list_lead_lists`, `list_campaigns`, and `list_sequences` and infer the stage yourself: nothing set up (new), contacts or lists but no sender or campaign (setting up), lists plus a campaign draft (ready to launch), an active campaign (live).

If the stage is `new`, open with three lines before anything else: ACA is one platform for cold email (instead of Smartlead or Instantly), LinkedIn automation (instead of HeyReach), content, lead magnets, buying signals, mailbox infrastructure and integrations; from here you can set up the workspace and draft campaigns, and the rest happens in the ACA app; `/aca` lists every command. Then continue.

If the stage is `live`, skip to step 5 and route to `aca-pipeline-status`.

### 2. Clarify the launch brief

Ask only for what ACA does not already show, in one short message:

- Offer being sold and the main outcome (book meetings, sell a service, grow a lead magnet list)
- Ideal buyer and disqualifiers
- Preferred channel (LinkedIn, email, or both)
- Where prospects come from: a list the user already has, or new prospects to find

### 3. Close the first gap

Work the first item in `next_steps`, in this order of priority:

- **`define_offer_and_icp`**: draft a one-paragraph offer and a short ICP (titles, company size, industry, geography, disqualifiers, pains). Show it in chat. The user saves it in ACA at `/assets?tab=products` and `/assets?tab=icps`.
- **`add_prospects`**: if the user pastes or uploads people they already have, confirm the count and fields, then add them with `bulk_create_contacts` (100 per call). To find new prospects, help write the search criteria, then send them to `/list-building` or `/leads/import`. Never generate contacts yourself.
- **`create_lead_list`**: propose a list name and purpose, then `create_lead_list` and `add_contacts_to_list` after the user approves.
- **`connect_sender`**: explain that ACA sends from the user's own LinkedIn account or mailbox, connected at `/accounts` or `/email/mai

Preview of the first 4,000 characters. Read full instructions →

aca-launch-outreach9.22 KB

View saved version →

---
name: aca-launch-outreach
description: Plan and set up a LinkedIn or email outreach campaign in ACA. Use when the user says "launch a campaign", "start outreach", "send LinkedIn DMs to [list]", "email sequence for [audience]", "enroll leads", or asks to begin contacting a list. Checks the workspace, writes the full sequence, creates an inactive LinkedIn campaign draft on approval, and hands off step building, enrollment, and activation to the ACA app.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# Launch outreach in ACA

ACA runs LinkedIn campaigns and native email sequences from the user's own connected accounts. Through the connector, this skill checks readiness, writes the whole sequence, and creates an inactive LinkedIn campaign draft linked to a lead list. Adding steps, assigning senders, enrolling leads, and activating all happen in the ACA app.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Never invent prospects, emails, companies, or results. Report counts exactly as ACA returns them.
- Ask before creating anything in ACA. The only write here is `create_linkedin_campaign_draft`, and only after the user approves the name and list.
- A draft created through the connector is inactive and has no outreach steps. It cannot send. Never say a campaign is live, scheduled, or sending.
- Email sequences are read-only through the connector. Write the copy in chat; the user builds it and enrolls leads at `/email/sequences`.
- Stop and hand off if there is no lead list or no connected sender for the chosen channel.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.
- The connection is bound to one workspace. If the user wants a different one, they switch their active workspace in ACA and reconnect.

## Workflow

### 1. Confirm the brief

Restate in one short message:

- Lead list
- Channel path (LinkedIn, email, or both)
- Goal (meetings, replies, lead magnet opt-ins)
- Offer and main outcome
- Tone or brand voice
- Number of touches

Ask one question only if the launch would otherwise be ambiguous.

### 2. Check readiness

Call `get_started`. Note `counts.lead_lists`, `counts.sender_accounts` (connected LinkedIn accounts), `counts.mailboxes`, `counts.campaigns`, `counts.icps`, `counts.products`, and `plan`.

If `get_started` is not available, call `get_workspace`, `list_lead_lists`, `list_campaigns`, and `list_sequences`.

Then:

- `list_lead_lists` and `get_lead_list` (with `include_members: false` unless you need a sample) to confirm the target list and its `lead_count`.
- `list_campaigns` with `search` set to the planned name to avoid collisions.
- `list_sequences` for email, to see whether a sequence already exists that the user may want to reuse.

Blockers and handoffs:

- No lead list: route to `aca-find-leads`.
- LinkedIn chosen and `sender_accounts` is 0: the user connects LinkedIn at `/accounts`.
- Email chosen and `mailboxes` is 0: the user connects a mailbox at `/email/mailboxes`.
- No offer or ICP saved (`icps` or `products` is 0): draft them in chat so the copy has a source, and point to `/assets?tab=products` and `/assets?tab=icps`.

### 3. Write the sequence

Write every touch in full in chat, in the format the ACA builder expects. Keep the judgment below; it is what makes the sequence work.

**LinkedIn-only (default)**

1. Analyze contact (AI research step, continue on failure). Gives later prompt-mode steps company and role context.
2. Connection request, prompt mode: "Write a short LinkedIn connection request under 250 characters. Sound like a peer. Mention one specific business reason this person is relevant. No pitch, no emojis."
3. Delay 3 days.
4. If connected:
   - Accepted: Message, prompt mode: "Write a 2 sentence LinkedIn DM. Referenc

Preview of the first 4,000 characters. Read full instructions →

aca-lead-magnet-brainstorm5.58 KB

View saved version →

---
name: aca-lead-magnet-brainstorm
description: "Brainstorm and prepare ACA lead magnet campaigns. Use when the user wants lead magnet ideas, keyword monitoring, comment to DM campaigns, inbound capture, or a resource that attracts their ICP."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA lead magnet brainstorm

Plan lead magnets and the comment-to-DM keyword campaigns that deliver them, then save the chosen one as an inactive ACA draft.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Tie every idea to an ICP pain and a follow-up conversation path.
- Prefer specific tools, calculators, teardown templates, checklists, and scripts over generic PDFs.
- Ask before any write. `create_lead_magnet_draft` creates an inactive draft. It cannot monitor posts, send DMs, or deliver a link until the user activates it at `/lead-magnets`.
- Never invent results or capture numbers. Report counts from `list_lead_magnets` and `get_lead_magnet` as returned.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Gather context

Call `get_started` to see the workspace stage, whether ICPs and products exist, and how many LinkedIn accounts are connected.

Call `list_lead_magnets`, then `get_lead_magnet` on any existing ones, to see what already runs, which keywords are taken, and how captures and deliveries look.

Offer, ICP, and brand voice details are not readable through the connector. If the user has not described the offer and buyer, ask in one short message or route to `aca-icp-onboarding`.

Call `list_agent_profiles` if the user wants an AI agent to handle follow-up replies.

### 2. Brainstorm 10 concepts

For each: hook, promise, format, trigger keyword(s), and the qualification signal a request reveals.

### 3. Pick the top 3

Score each 1 to 5 on buyer intent, ease to produce, and follow-up relevance. Recommend one.

### 4. Draft the campaign in chat

For the chosen concept:

- Name
- Trigger keywords (lowercase, distinct from existing magnets, up to 20)
- Lead magnet title and URL (the user hosts the resource; if it does not exist yet, leave the URL blank)
- DM template that delivers the link and opens a conversation
- Whether a LinkedIn connection is required before the DM

### 5. Save as a draft (after approval)

`create_lead_magnet_draft` needs `account_id`, the ID of an account connected in this workspace.

- Call `list_connected_accounts` (filter `provider: LINKEDIN` or `INSTAGRAM` to match the post) and ask the user which active account to use.
- If it returns none, send them to `/accounts` to connect one first.
- If the tool is not available, reuse the `account_id` of an existing lead magnet from `get_lead_magnet`, or ask the user.

Call `create_lead_magnet_draft` with `account_id`, `name`, `trigger_keywords`, and, when available, `lead_magnet_title`, `lead_magnet_url`, `dm_template`, `require_connection_for_linkedin`. Report the returned ID and any `plan_note`. Activation happens at `/lead-magnets`.

If follow-up replies need a dedicated persona and none fits in `list_agent_profiles`, draft one and call `create_agent_profile` after approval. The user finishes editing it in the app.

The resource itself (copy, outline, checklist) is written in chat. The user can store supporting context at `/assets?tab=knowledge`.

## Output format

```text
Lead magnet concepts:
1. {name} - {promise} - {keyword triggers}
2. {name} - {promise} - {keyword triggers}
3. {name} - {promise} - {keyword triggers}

Recommended: {name}
Why: {reason}
Draft: {lead_magnet_id, inactive, activate at /lead-magnets | not created}
Plan note: {plan_note if returned}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, and approval state when continuing

Preview of the first 4,000 characters. Read full instructions →

aca-lead-quality5.89 KB

View saved version →

---
name: aca-lead-quality
description: Grade, clean, and segment ACA lead lists before outreach. Use when the user says "grade this list", "quality check leads", "segment the list", "who should we contact first", "split by tier", "remove bad leads", or wants a campaign-ready sublist from existing ACA contacts.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# Lead quality and segmentation

Turn a raw ACA lead list into clean outreach segments, using only data ACA already holds.

## Rules

- `add_contacts_to_list` can trigger the target list's existing enrichment, campaign enrollment, external outreach, and configured webhooks. Before adding contacts, review that list's automation settings at `/leads/lists` and confirm the intended contacts and side effects. If the connector cannot expose those settings, ask the user to verify them in ACA; do not assume a list write is draft-only.
- Never invent lead scores. Use the existing score, enrichment fields, tags, and visible contact data.
- If analysis data is missing, put the contact in "Needs enrichment" rather than guessing.
- Never delete contacts or remove them from the source list. Segment into new lists and tags instead. Removing or deleting happens at `/leads/lists` if the user asks.
- Ask before tagging or creating lists, and confirm volume first on large lists.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Pick the source audience

Call `get_started` if workspace context is not already known (fallback: `get_workspace`). Find the list with `list_lead_lists`, then call `get_lead_list`.

If the user describes contacts instead of a list, use `search_contacts` with supported filters (`tags`, `stage_id`, `company`, `query`) and bounded pagination (`limit`, `cursor`).

### 2. Pull contact details

Call `get_contact` when more detail is needed. Grade each contact on:

- Data completeness: name, company, job title, email, LinkedIn URL
- Channel readiness: email available, LinkedIn available, phone or WhatsApp where relevant
- ICP fit: existing score, role, industry, geography, company size, tags
- Risk: missing company, generic role, personal email, suppression or do-not-contact tags
- Freshness: last activity and outreach status

For large lists, grade a sample of 25 to 50 first, report quality, then ask before processing the whole list.

### 3. Create segments

Use simple, operational segments:

- **Tier 1**: strong fit and ready on the requested channel
- **Tier 2**: plausible fit or partial data
- **Needs enrichment**: good account but missing channel data
- **Suppress/review**: poor fit, risky, or do-not-contact signals

After approval, create destination lists with `create_lead_list` (for example "{source} - Tier 1") and fill them with `add_contacts_to_list`.

### 4. Tag for routing

Check existing tags with `list_tags` and reuse them where they exist:

- `aca_tier1`
- `aca_tier2`
- `aca_needs_enrichment`
- `aca_suppress_review`

`update_contact` replaces the whole `tags` array, so read the contact with `get_contact` first and send the existing tags plus the new one. For clear do-not-contact cases, `update_contact_stage` can move the contact out of the active pipeline if the user agrees.

Write the reasoning for important judgment calls (why a contact was suppressed or promoted) in your summary. Notes on the contact itself are added at `/contacts/{id}`.

### 5. Hand off

If Tier 1 is non-empty, route to `aca-launch-outreach`.

If too many contacts need enrichment, recommend a fresh LinkedIn import at `/leads/import`, or a campaign whose first steps find emails and analyze the contact, set up at `/campaigns/{id}`.

## Output format

```text
Lead quality complete for "{source_list}".

Overall quality: {A/B/C/D}
Reviewed: {count} of {lis

Preview of the first 4,000 characters. Read full instructions →

aca-local-business-leads4.23 KB

View saved version →

---
name: aca-local-business-leads
description: "Build local business lead lists in ACA by geography, vertical, SIC code, company keyword, size, and owner/manager seniority. Use for plumbers, roofers, med spas, dentists, contractors, agencies, restaurants, and other local niches."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA local business leads

Define a tight local-niche audience, send the user to ACA to build it, then verify and segment what landed.

## Rules

- Always include geography.
- Prefer SIC codes for known local verticals; add keywords for niches SIC lumps together (for example "med spa" inside a broader health category).
- Never invent businesses, owners, emails, or counts.
- The connector cannot search ACA's lead database or run imports. Write the spec in chat, then send the user to `/list-building` or `/leads/import`.
- Ask before creating lists or adding contacts.
- Segment by channel readiness after the list is built.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Read the workspace

Call `get_started` (fallback: `get_workspace`, `list_lead_lists`). Check `list_lead_lists` for an existing list in the same niche and geography.

### 2. Clarify the niche

Ask once for anything missing: vertical, city/state/country (or radius), owner or manager role, company size, desired count, and required channel (email, phone, LinkedIn). Local owners often have weak LinkedIn presence, so default to email or phone unless the user says otherwise.

### 3. Write the local spec

```text
Local spec: {vertical} in {geo}
Where: /list-building (database) | /leads/import (LinkedIn or CSV)
SIC codes / keywords: {codes, keywords}
Geography: {country, state, city}
Roles: {owner, founder, general manager, practice manager}
Company size: {employees range}
Channel requirements: {has email, email status, has phone}
Exclude: {franchises, chains, national brands, keywords}
Target count: {n}
```

Start at `/list-building`. If the database is thin for that niche or geography, suggest a LinkedIn search import or a CSV the user already has at `/leads/import`. If the user pastes businesses in chat, confirm the fields and add them with `bulk_create_contacts` (100 per call) after approval.

### 4. Verify and split by channel

When the user says the list is built, find it with `list_lead_lists` and check it with `get_lead_list`. Report how much of the sample has email, phone, and LinkedIn so the user can pick the channel. Then route to `aca-lead-quality`.

## Output format

```text
Local list: {vertical} in {geo}
Source: {database search / LinkedIn import / CSV / pasted}
Built list: {list_id, count | pending}
Channel readiness (sample): {email x/n, phone x/n, LinkedIn x/n}
Next: aca-lead-quality
```

## Skill chaining

Preserve the workspace, the local spec, relevant IDs, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue automatically; otherwise end with the handoff block.

**Upstream**
- Called directly for local SMB niches or delegated by `aca-find-leads`.

**Auto-continue conditions**
- List exists in ACA: continue to `aca-lead-quality`.
- User has an offer but no strategy: continue to `aca-campaign-strategy` after quality scoring.

**Stop before chaining when**
- The build or import still has to run in the ACA app.
- Creating lists or contacts the user has not approved.

**Downstream skills**
- `aca-lead-quality` - score local list quality.
- `aca-campaign-strategy` - build the local-market campaign angle.

**Handoff block**

```text
Chain state: {continue|needs_approval|blocked|complete}
Next skill: {aca-skill-name|none}
Reason: {why this handoff is or is not needed}
Carry forward: {workspace, local spec, lead_lis

Preview of the first 4,000 characters. Read full instructions →

aca-lookalike-leads4.59 KB

View saved version →

---
name: aca-lookalike-leads
description: "Build lookalike lead lists in ACA from a winning customer, lead list, campaign, or contact segment. Use when the user asks for more leads like these, clones of a customer profile, or lookalike prospecting."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA lookalike leads

Use an existing winning segment in ACA to define a new prospect audience. The connector reads the seed; the search for new lookalikes runs in the ACA app.

## Rules

- Use the ACA connector only. Never invent people, companies, or counts.
- Derive traits only from data ACA returns or the user provides. State which traits are copied and which are excluded.
- The connector cannot search ACA's lead database or run imports. Turn the traits into a search spec, then send the user to `/list-building` or `/leads/import`.
- Ask before creating lists or adding contacts.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Read the workspace

Call `get_started` (fallback: `get_workspace`, `list_lead_lists`, `list_campaigns`).

### 2. Identify the seed

- A lead list: `list_lead_lists`, then `get_lead_list`
- A set of contacts (customers, tagged winners, replied leads): `search_contacts`, then `get_contact` for detail on a sample
- A winning campaign: `list_campaigns`, `get_campaign`, and `get_campaign_metrics` to confirm it actually performed; then use the lead list it targets if the result shows one

Work from a sample of 20 to 50 seed contacts. If the seed is under 10 people, say the traits are directional.

### 3. Extract shared traits

Look for what most of the seed has in common:

- Role and seniority
- Industry and keywords
- Geography
- Company size
- Channel availability (email, LinkedIn)
- Tags and stage

Separate **copied traits** (shared by most of the seed) from **excluded traits** (noise, one-offs, or things the user wants to avoid, such as current customers or competitors).

### 4. Write the lookalike spec

```text
Lookalike spec: {list name}
Seed: {list or segment, n contacts}
Where: /list-building (database) | /leads/import (LinkedIn)
Copied traits: {roles, seniority, industry, geo, size, channel}
Excluded: {traits, existing customers, seed companies}
Target count: {n}
```

Send the user to `/list-building` first; use `/leads/import` with a LinkedIn search when the database is thin or the seed is LinkedIn-native. Remind them to exclude seed companies so the new list is net new.

### 5. Pick up and verify

When the user says the list is built, find it with `list_lead_lists` and check it with `get_lead_list`. Compare the sample against the copied traits, then route to `aca-lead-quality`.

## Output format

```text
Lookalike list plan:
Seed: {seed} ({n} contacts reviewed)
Copied traits: {traits}
Excluded traits: {exclusions}
Build at: {app page}
Built list: {list_id, count | pending}
Next: {aca-lead-quality | wait for build}
```

## Skill chaining

Preserve the workspace, seed IDs, the lookalike spec, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue automatically; otherwise end with the handoff block.

**Upstream**
- Called when `aca-find-leads`, `aca-positive-reply-scoring`, or `aca-weekly-rhythm` finds a winning segment.

**Auto-continue conditions**
- Lookalike list exists in ACA: continue to `aca-lead-quality`.
- Lookalike is based on reply winners: continue to `aca-experiment-design` after quality scoring.

**Stop before chaining when**
- The build or import still has to run in the ACA app.
- Creating lists the user has not approved.

**Downstream skills**
- `aca-lead-quality` - validate lookalike quality.
- `aca-experiment-design` - test the lookalike against the control audience.
- 

Preview of the first 4,000 characters. Read full instructions →

aca-mcp-ops7.01 KB

View saved version →

---
name: aca-mcp-ops
description: >-
  Operating guide for agents using the ACA connector. Use when connecting to or
  operating ACA through MCP for contacts, lead lists, sequences, campaigns,
  replies, content, and lead magnets, or when unsure which ACA tool to call or
  what needs the ACA app.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA MCP ops

How an agent should operate Automated Client Acquisition through the ACA connector: what it can read and write, what needs the ACA app, and the safe defaults.

## The rule for bots

One agent, one job, narrow scope. Prefer deterministic tool calls for structured ACA work; use the model for judgment (copy, ICP, triage). Keep a human on anything irreversible. Campaign, blueprint and lead-magnet writes create inactive drafts. Contact and list-membership writes update live records and may trigger configured webhooks, enrichment, enrollment or external outreach. Direct sending, activation, publishing and enrollment are app-only actions; user approval does not add unsupported connector tools.

## Connect

- URL: `https://mcp.automatedclientacquisition.com/mcp`
- Auth: OAuth. The client prompts the user to sign in to ACA on first use. Never ask for, paste or store API keys or tokens.
- One workspace per connection. There is no workspace switching through the connector. To work in another workspace, the user changes their active workspace in ACA and reconnects.

## Start every session

1. Call `get_started`. It returns the workspace, stage, counts (ICPs, products, contacts, lead lists, campaigns, active campaigns, connected LinkedIn accounts, mailboxes), plan, and up to three next steps.
2. If it is not available, call `get_workspace` and the relevant `list_*` tools.
3. Read before writing: check existing lists, campaigns and blueprints before creating near-duplicates.

## Connector tools by area

- **Workspace**: `get_started`, `get_workspace`, `list_connected_accounts` (LinkedIn and social account ids)
- **Contacts**: `search_contacts`, `get_contact`, `create_contact`, `bulk_create_contacts` (100 per call, user-supplied data only), `update_contact` (replaces the whole `tags` array, so read the contact first), `list_pipeline_stages` then `update_contact_stage`, `list_tags`
- **Lead lists**: `list_lead_lists`, `get_lead_list`, `create_lead_list`, `add_contacts_to_list`
- **Email sequences** (read-only): `list_sequences`, `get_sequence`
- **LinkedIn campaigns**: `list_campaigns`, `get_campaign`, `get_campaign_metrics`, `create_linkedin_campaign_draft` (needs a `lead_list_id`; created inactive with no steps)
- **Replies**: `search_conversations` (`has_inbound_message: true` for replies), `get_conversation`
- **Content**: `list_content_ideas`, `create_content_ideas` (25 per call), `list_blueprints`, `get_blueprint`, `create_blueprint` (inactive draft), `start_content_generation` (active blueprint only; billable, confirm first), `list_content_generation_jobs`
- **Lead magnets**: `list_lead_magnets`, `get_lead_magnet`, `create_lead_magnet_draft` (needs an `account_id` from `list_connected_accounts`; inactive)
- **AI reply agents**: `list_agent_profiles`, `create_agent_profile`

## What needs the ACA app

Do the thinking in chat, then give the exact page. Never say an app-only action happened.

- Offer, ICP, brand voice: `/assets?tab=products`, `/assets?tab=icps`, `/assets?tab=brands`; strategy notes at `/assets?tab=strategies`
- Finding new prospects: `/list-building` (database search) or `/leads/import` (LinkedIn, CSV)
- Editing or removing list members, deleting lists: `/leads/lists`
- Contact notes: `/contacts/{id}`
- Writing, enrolling, pausing email sequences: `/email/sequences`
- Campaign steps, settings, activation, pausing: `/campaigns/{id}`
- Sending a reply: `/inbox`
- LinkedIn and other senders: `/accounts`; mailboxes, warmup, limits: 

Preview of the first 4,000 characters. Read full instructions →

aca-personalization-pattern5.41 KB

View saved version →

---
name: aca-personalization-pattern
description: "Apply ACA prompt-mode personalization patterns to outbound campaigns. Use when the user wants scalable personalization, dynamic campaign prompts, first-line personalization, AI-written DMs, or QA samples before launch. Reads real contact fields, writes step prompts, and QAs samples in chat before the user pastes them into the ACA builder."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA personalization pattern

Personalize at scale with the ACA builder's Analyze contact step followed by prompt-mode messages. This skill checks which fields the contacts really have, writes tightly constrained prompts, and QAs sample outputs against real contacts before the user puts the prompts into a campaign.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Put an Analyze contact step before personalized messages when possible, so prompts have company and role context.
- Prompts must constrain length, tone, CTA, and prohibited claims.
- Samples use only fields ACA returns for real contacts. Never invent details about a person or company to make a sample look better.
- The connector cannot edit campaigns. Never say prompts were applied; give the page where the user pastes them.
- QA samples before the user activates anything.

## Workflow

### 1. Inspect the target

- Campaign: `list_campaigns`, then `get_campaign` for its `lead_list_id`, status, and step count.
- List: `get_lead_list` with a small `limit` to get member `contact_id`s and the `lead_count`.
- Sample 3 to 5 members with `get_contact`.

If the user has no list yet, use `search_contacts` to find a few representative contacts, or route to `aca-find-leads`.

### 2. Map available data

From the sampled contacts, record which fields are filled and how often: first name, job title, company, lead score, tags, stage, custom fields, recent activity. Analysis data from the Analyze contact step is only available at send time inside the campaign, so treat it as optional context in prompts, never as guaranteed.

Set risk:

- Low: title and company present on nearly every contact.
- Medium: gaps in title or company; prompts need fallbacks.
- High: mostly names only; personalization will be guesswork. Recommend enrichment or a simpler, non-personalized message.

### 3. Write step prompts

For each step (connection request, LinkedIn DM, email, follow-up), write a prompt that states:

- Length limit (for example under 250 characters, or 2 sentences)
- Tone (peer, plain, no emojis, no flattery)
- What to reference, in priority order, with a fallback when a field is missing
- What never to do: invent facts, mention posts or news it has not been given, claim familiarity, quote prices
- The single CTA

Example connection request prompt: "Write a LinkedIn connection request under 250 characters. Use the contact's job title and company if present; if not, refer to their industry in general terms. One specific business reason to connect. No pitch, no emojis, no compliments."

### 4. QA samples

For each sampled contact, write the message the prompt would produce using only that contact's real fields. Mark any sample where the prompt pushed toward an unsupported claim, and tighten the prompt.

### 5. Hand off

After the user approves:

- Paste the prompts into the steps at `https://www.automatedclientacquisition.com/campaigns/{campaign_id}` (draft or paused campaigns), with Analyze contact as the first step.
- If there is no campaign yet, continue to `aca-launch-outreach`.
- To keep the pattern as a reference, the user can save it at `https://www.automatedclientacquisition.com/assets?tab=strategies`.

## Output format

```text
Personalization pattern: {campaign_or_list}
Sampled: {n} contacts from {list_name}
Data available: {field: filled x of n}
Risk: {low/medium/h

Preview of the first 4,000 characters. Read full instructions →

aca-pipeline-status6.3 KB

View saved version →

---
name: aca-pipeline-status
description: "Get a read-only status report on everything running in ACA right now: active campaigns, replies waiting, email sequences, lead lists, lead magnets, and content generation jobs. Use when the user says \"what's running\", \"status report\", \"morning brief\", \"what's happening in ACA\", \"give me a summary\", or \"anything need attention\"."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA pipeline status report

A read-only operating brief across the connected ACA workspace. It should be short, specific, and built only from what the connector returns.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Read-only. This skill creates and changes nothing.
- Report counts exactly as returned. `get_campaign_metrics` returns stored counts, never rates. Only show a rate when both the numerator and its matching denominator came back in the same result, and label it with both numbers (for example "12 replies of 140 messaged").
- Never invent data. If a tool call fails, report the partial result and name the failed call.
- Omit empty sections unless the workspace is completely empty.
- Surface genuine blockers plainly: active campaigns with no leads or no progression, lead lists with zero members behind a live campaign, failed generation jobs, replies nobody has answered, zero connected senders or mailboxes.
- Mailbox and sender health (bounces, warmup, disconnects, deliverability) is not available through the connector. Report the counts from `get_started` and link to the app pages.
- The connection is bound to one workspace. To report on another workspace (for example an agency client), the user switches their active workspace in ACA and reconnects, then runs this skill again.

## Workflow

### 1. Read the workspace

Call `get_started`. Note `workspace`, `stage`, `counts` (contacts, lead lists, campaigns, active campaigns, connected LinkedIn accounts, mailboxes), `plan`, and `next_steps`.

If `get_started` is not available, call `get_workspace` and rely on the list calls below.

If the stage is `new` or every count is zero, say "Nothing running yet" and route to `aca-kickoff`.

### 2. Run independent reads

Run these in parallel:

1. `list_campaigns` (all statuses, so active and paused both show)
2. `search_conversations` with `has_inbound_message: true` for recent replies
3. `list_sequences`
4. `list_lead_lists`
5. `list_lead_magnets`
6. `list_content_generation_jobs`

### 3. Drill in only where needed

- For each active campaign that looks stalled or is the user's focus, call `get_campaign_metrics` (and `get_campaign` if you need the sequence summary or lead list).
- For replies, call `get_conversation` only on the few that look unanswered or high-intent, to say who replied and what they asked. Do not summarize every thread.
- For a lead list behind an active campaign that looks empty, the count from `list_lead_lists` is enough; do not page through members.

## Output structure

```text
ACA Status - {timestamp}
Workspace: {workspace} ({stage})

CAMPAIGNS
- {N} active, {N} paused, {N} draft.
- Needs attention: {campaign} - {reason, with the stored counts that show it}

REPLIES
- Conversations with an inbound message: {N} (from this page of results)
- Waiting on you: {contact} - {one-line ask}

EMAIL
- Mailboxes connected: {N} (from get_started)
- Sequences: {N} total, {N} active
- Health: not available here; check /email/mailboxes and /email/analytics

LEADS
- Lead lists: {N}; behind active campaigns: {list} ({members})

LEAD MAGNETS
- {N} active; captures {N}, delivered {N} (as returned)

CONTENT
- Generation jobs: {N} in progress, {N} completed, {N} failed

Nothing else needs attention.
```

## Edge cases

- Empty workspace: say "Nothing running yet" and route to `aca-kickoff`.
- User asks for a date ra

Preview of the first 4,000 characters. Read full instructions →

aca-positive-reply-scoring5.45 KB

View saved version →

---
name: aca-positive-reply-scoring
description: "Review and score ACA campaign replies. Use when the user asks which replies are positive, who to follow up with, campaign reply quality, booking intent, objections, or what the replies teach us."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA positive reply scoring

Turn reply activity into follow-up priorities and campaign lessons.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Classify only from message text you actually read with `get_conversation`. Never guess intent from a name or a subject line.
- Separate positive intent, neutral questions, objections, referrals, not now, out-of-office, and negative replies.
- Surface a next action for each positive or ambiguous reply.
- Ask before tagging or changing a stage. Show the full list of changes first.
- `update_contact` replaces the whole `tags` array. Always read the contact with `get_contact`, merge the new tag into its existing tags, and send the merged array.
- Do not mark contacts do-not-contact unless the user clearly asks.
- Draft follow-up replies in chat. The user sends them from `/inbox`.

## Workflow

### 1. Find the replies

Call `search_conversations` with `has_inbound_message: true` (up to 100 per page; follow `cursor` if the user wants more). To focus on one campaign, call `list_campaigns` and `get_campaign` for campaign metadata, its `lead_list_id`, and aggregate progress. If a lead list is returned, use `get_lead_list` with `include_members: true` and a bounded `limit`, then search conversations for those sampled members using `contact_id`. Label this as a list-member sample: membership alone does not prove that a reply belongs to that campaign, and these tools do not return all enrolled campaign contacts. To focus on one person, pass `contact_id`.

### 2. Read and classify

Call `get_conversation` for each reply in scope (it returns the 50 most recent messages). Classify the latest inbound message:

| Class | Signal | Score |
| --- | --- | --- |
| Positive | Asks for a call, time, price, or next step | 5 |
| Question | Neutral question about the offer or fit | 4 |
| Referral | Points to someone else | 3 |
| Not now | Interested but wrong timing | 2 |
| Objection | Pushes back on price, need, or trust | 2 |
| Out-of-office | Auto-reply | 1 |
| Negative | Not interested, remove me | 0 |

For each Positive, Question, or Referral, write the next action and a short draft reply.

### 3. Tag and stage (after approval)

Proposed tags:

- `aca_positive_reply`
- `aca_objection`
- `aca_referral`
- `aca_not_now`
- `aca_negative_reply`

Call `list_tags` to reuse existing tag names where they match. For each approved contact:

1. `get_contact` to read current tags.
2. `update_contact` with `tags` set to the existing tags plus the new one.
3. If the user wants a stage move, call `list_pipeline_stages`, confirm the target stage with the user, then `update_contact_stage` with its `stage_id`. If that tool is not available, have the user move the stage at `/contacts/{id}`.

Notes go on the contact at `/contacts/{id}`.

### 4. Write the lesson

Summarize what replies teach about audience, angle, and copy. Offer to let the user save it at `/assets?tab=strategies`.

## Output format

```text
Reply scoring ({N} conversations read)
Positive: {n}
Questions: {n}
Referrals: {n}
Objections: {n}
Not now: {n}
Out-of-office: {n}
Negative: {n}

Top follow-ups:
- {contact} ({class}): {next_action}
  Draft: {reply text}  → send from /inbox

Changes applied: {tags and stages updated, or none}

Campaign lesson:
{lesson}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, and approval state when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue into the next skill

Preview of the first 4,000 characters. Read full instructions →

aca-sender-health4.54 KB

View saved version →

---
name: aca-sender-health
description: "Check ACA sender account and mailbox health. Use when the user asks about connected senders, LinkedIn capacity, mailbox status, warmup, reputation, daily budget, or why outreach is not sending."
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA sender health

Check sender readiness across email and LinkedIn. The connector reports how many mailboxes and LinkedIn accounts are connected, and which campaigns and sequences are running; per-account status, warmup, reputation and limits are shown in the ACA app.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Read-only. Reconnecting, warmup and limit changes happen in the ACA app.
- Do not infer capacity, health or reputation beyond what tools return or the user pastes.
- Report missing senders separately from unhealthy senders.
- The connection is bound to one workspace. To check another, the user switches their active workspace in ACA and reconnects.

## Workflow

### 1. Read the workspace

- `get_started`: connected LinkedIn account count and mailbox count. Zero of either for a channel the user wants is a "missing" blocker.
- `list_campaigns`, then `get_campaign` and `get_campaign_metrics` for active campaigns: which ones are consuming LinkedIn capacity and whether sends are moving.
- `list_sequences`: active email sequences consuming mailbox capacity.

If `get_started` is not available, use `get_workspace` plus the `list_*` tools above.

### 2. Get per-account state from the app

Ask the user to check and paste:

- `/accounts`: each LinkedIn (and other channel) account, connected or disconnected, and any restriction or checkpoint warnings
- `/email/mailboxes`: each mailbox, connected or not, warmup status and age, daily limit
- `/email/analytics`: recent bounce and complaint rates per mailbox

### 3. Assess

- **Missing**: no connected account for a channel the plan depends on.
- **Unhealthy**: disconnected, restricted, flagged, warming under 2 weeks, or bounces above 2%.
- **LinkedIn capacity**: as a rule of thumb, about 15 to 25 connection requests and 50 to 100 messages per account per day; several active campaigns on one account share that budget.
- **Email capacity**: roughly 30 to 50 cold emails per warmed mailbox per day.
- **Stalled sends**: a campaign is active but `get_campaign_metrics` shows no movement; usually a disconnected sender, no leads left, or outside the send window.
- **Next campaign channel**: recommend the channel with healthy, unused capacity.

## Output format

```text
Sender health
Email mailboxes: {count from get_started}{, connected/total from the user if given}
LinkedIn accounts: {count from get_started}{, connected/total from the user if given}
Active campaigns: {n}  Active sequences: {n}

Blockers:
- {missing or unhealthy sender} → {app page}

Capacity notes:
- {note}

Unknown (check in the app):
- {item}
```

## Skill chaining

Preserve the workspace, relevant IDs, the user's brief, approval state, and sender findings when continuing into another ACA skill.

**Upstream**
- Called by `aca-launch-outreach`, `aca-email-sequence-manager`, `aca-auto-research`, or `aca-pipeline-status` when senders are a blocker.

**Auto-continue conditions**
- No or weak email infrastructure: continue to `aca-email-infra-readiness`.
- Email senders exist but risk is unclear: continue to `aca-email-deliverability-audit`.
- Senders are healthy and a campaign is waiting: continue to `aca-launch-outreach`.

**Stop before chaining when**
- A sender needs connecting, reconnecting or a limit change in the ACA app.

**Downstream skills**
- `aca-email-infra-readiness`: check infrastructure readiness.
- `aca-email-deliverability-audit`: audit cold-email risk.
- `aca-launch-outreach`: resume launch when senders are ready.

**Handoff block**

```text

Preview of the first 4,000 characters. Read full instructions →

aca-weekly-rhythm6.12 KB

View saved version →

---
name: aca-weekly-rhythm
description: Weekly ACA operating cadence for outbound and content. Use when the user asks for a weekly review, operating rhythm, campaign optimization, experiment planning, Monday/Wednesday/Friday workflow, or "what should I do this week in ACA". Reads campaign, reply, list, lead magnet, and content status through the ACA connector and produces a weekly plan.
license: MIT
compatibility: Requires the ACA connector (OAuth sign-in, no API key).
metadata:
  author: ACA
  version: "1.1"
  homepage: https://www.automatedclientacquisition.com/mcp
---

# ACA weekly rhythm

This skill turns ACA from a launch tool into an operating system. It reviews the pipeline, picks one or two high-leverage changes, and writes the week's plan.

## Rules

- Use the ACA connector only. Never ask for vendor API keys or run SQL/API calls.
- Start read-only. Ask before any write.
- Report counts exactly as returned. `get_campaign_metrics` returns stored counts, never rates. Only state a rate when the matching denominator came back too, and show both numbers.
- Never invent metrics, replies, or results.
- Pausing, resuming, or editing campaigns and sequences, running autopilots, and publishing happen in the ACA app. Recommend the change and give the link.
- Prefer one controlled experiment at a time.
- Keep the output operational: what changed, what to do next, and what is blocked.
- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.

## Workflow

### 1. Run the brief

Call `get_started` first (fallback: `get_workspace`). Then read in parallel:

- `list_campaigns`, then `get_campaign_metrics` for each active campaign
- `search_conversations` with `has_inbound_message: true` for replies
- `list_sequences`
- `list_lead_lists`
- `list_lead_magnets`
- `list_content_ideas` and `list_content_generation_jobs`

Mailbox and sender health are not available through the connector. Use the mailbox and LinkedIn counts from `get_started` and point to `/email/mailboxes` and `/email/analytics` for health.

### 2. Diagnose by cadence

**Monday: plan and refill**

- Lead lists behind active campaigns that are small or exhausted
- Content queue light (few unused ideas, no recent generation jobs)
- Choose campaign, list, and content priorities for the week
- Route to `aca-find-leads` or `aca-content-week` when needed

**Wednesday: experiment and unblock**

- Active campaigns with little progression in their stored counts
- Replies waiting more than a day
- Pick one experiment: audience, hook, channel, offer, or timing
- Draft the change in chat; the user applies it at `/campaigns/{id}` or `/email/sequences`

**Friday: review and clean**

- Summarize wins, replies, failed generation jobs, and list quality problems
- Identify contacts to tag, re-stage, or suppress (route to `aca-positive-reply-scoring` for replies)
- Write the weekly note

### 3. Write the weekly note

Write it in chat with:

- Week and date
- Metrics snapshot (stored counts as returned)
- Decisions
- Experiment hypothesis
- Next actions with owner and link

Offer to let the user save it at `/assets?tab=strategies`.

### 4. Optional actions

Only after approval, through the owning skill:

- Refill a lead list: `aca-find-leads`
- Draft a new campaign: `aca-launch-outreach`
- Add ideas or generate content: `aca-content-week`
- Tag or re-stage replying contacts: `aca-positive-reply-scoring`

App-only, give the link:

- Pause or resume a campaign: `/campaigns/{id}`
- Turn a sequence on or off: `/email/sequences`
- Run or pause an autopilot: `/autopilots`

## Output format

```text
ACA Weekly Rhythm - {week}
Workspace: {workspace} ({stage})

Status:
- Campaigns: {summary with stored counts}
- Replies: {N with inbound messages, N waiting on you}
- Leads: {summary}
- Content: {ideas, jobs}
- Senders: {N LinkedIn, N mailboxes}; health at /email/analytics

This week's priority:
{one priority}

Experiment:
Hypothesi

Preview of the first 4,000 characters. Read full instructions →

Release notes

Adds get_started for workspace setup guidance, list_connected_accounts and list_pipeline_stages, clearer tool descriptions, and scoped server instructions. Draft results state plan limits as facts with no pricing or upgrade prompts. 1.5.3 package repair: fixes the listing category to Productivity, adds the portable plugin.json and mcp.json, and corrects skill guidance for list automation side effects, app-only actions, and supported read operations.

Declared in the saved package. Remote tools may change independently.

Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package license
MIT
Package author
Automated Client Acquisition
Keywords
See keywords
Getting started skill
./skills/aca-kickoff/SKILL.md
Commerce declaration
Does not support commerceThis does not establish whether access is free or paid.
Review scenarios
5 positive · 3 negativeScenario counts, not test results.

Declared capabilities

  • Workspace setup guidance
  • Search contacts and lead lists
  • Build lead lists
  • Draft LinkedIn campaigns
  • Draft lead magnets
  • Read campaign results
  • Triage replies
  • Plan and generate content

Package observed Nov 6, 2026.

Technical details
First seen
Oct 28, 2026 · 12:00 UTC
Last seen
Nov 6, 2026 · 18:00 UTC
Collection status
Collected

plugin_asdk_app_6aa191664d448191b6646015b0fefe94

Download plugin data (JSON)

Plugin details: served from cache. Prepared . Refreshed when plugin data changes or after 6 hours. Your account and Follow status are live.