{"id":67137,"plugin_id":"plugin_asdk_app_6aa191664d448191b6646015b0fefe94","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-28T13:05:52.926Z","digest":"b2baf29c2f96e6555db75902e8b891c811df3db90f15d8ead98e089dde3624b6","against":null,"payload":{"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.","included_files":[],"name":"aca-lead-quality","skill_md_contents":"---\nname: aca-lead-quality\ndescription: 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.\nlicense: MIT\ncompatibility: Requires the ACA connector (OAuth sign-in, no API key).\nmetadata:\n  author: ACA\n  version: \"1.1\"\n  homepage: https://www.automatedclientacquisition.com/mcp\n---\n\n# Lead quality and segmentation\n\nTurn a raw ACA lead list into clean outreach segments, using only data ACA already holds.\n\n## Rules\n\n- `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.\n- Never invent lead scores. Use the existing score, enrichment fields, tags, and visible contact data.\n- If analysis data is missing, put the contact in \"Needs enrichment\" rather than guessing.\n- 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.\n- Ask before tagging or creating lists, and confirm volume first on large lists.\n- If a tool result includes `plan_note` or `plan.limitation`, relay it as a plain fact. Never promote plans, pricing, or upgrades.\n\n## Workflow\n\n### 1. Pick the source audience\n\nCall `get_started` if workspace context is not already known (fallback: `get_workspace`). Find the list with `list_lead_lists`, then call `get_lead_list`.\n\nIf the user describes contacts instead of a list, use `search_contacts` with supported filters (`tags`, `stage_id`, `company`, `query`) and bounded pagination (`limit`, `cursor`).\n\n### 2. Pull contact details\n\nCall `get_contact` when more detail is needed. Grade each contact on:\n\n- Data completeness: name, company, job title, email, LinkedIn URL\n- Channel readiness: email available, LinkedIn available, phone or WhatsApp where relevant\n- ICP fit: existing score, role, industry, geography, company size, tags\n- Risk: missing company, generic role, personal email, suppression or do-not-contact tags\n- Freshness: last activity and outreach status\n\nFor large lists, grade a sample of 25 to 50 first, report quality, then ask before processing the whole list.\n\n### 3. Create segments\n\nUse simple, operational segments:\n\n- **Tier 1**: strong fit and ready on the requested channel\n- **Tier 2**: plausible fit or partial data\n- **Needs enrichment**: good account but missing channel data\n- **Suppress/review**: poor fit, risky, or do-not-contact signals\n\nAfter approval, create destination lists with `create_lead_list` (for example \"{source} - Tier 1\") and fill them with `add_contacts_to_list`.\n\n### 4. Tag for routing\n\nCheck existing tags with `list_tags` and reuse them where they exist:\n\n- `aca_tier1`\n- `aca_tier2`\n- `aca_needs_enrichment`\n- `aca_suppress_review`\n\n`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.\n\nWrite 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}`.\n\n### 5. Hand off\n\nIf Tier 1 is non-empty, route to `aca-launch-outreach`.\n\nIf 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}`.\n\n## Output format\n\n```text\nLead quality complete for \"{source_list}\".\n\nOverall quality: {A/B/C/D}\nReviewed: {count} of {list size}\nTier 1: {count} -> {list_id}\nTier 2: {count} -> {list_id}\nNeeds enrichment: {count}\nSuppress/review: {count}\n\nMain issue: {one-line diagnosis}\nNext: {recommended skill/action}\n```\n\n## Skill chaining\n\nPreserve the workspace, the source and segment list IDs, the grading criteria, 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.\n\n**Upstream**\n- Called after any lead sourcing skill, or by `aca-kickoff` when an existing list needs validation.\n\n**Auto-continue conditions**\n- Tier 1 list exists and campaign strategy is missing: continue to `aca-campaign-strategy`.\n- Tier 1 list and strategy or copy are ready: continue to `aca-launch-outreach`.\n- Many contacts need better targeting: continue to `aca-find-leads` with corrected criteria.\n\n**Stop before chaining when**\n- Tagging large volumes or creating many derived lists the user did not request.\n\n**Downstream skills**\n- `aca-campaign-strategy` - plan messaging for the segment.\n- `aca-launch-outreach` - launch to the campaign-ready segment.\n- `aca-find-leads` - refill or correct the audience.\n\n**Handoff block**\n\n```text\nChain state: {continue|needs_approval|blocked|complete}\nNext skill: {aca-skill-name|none}\nReason: {why this handoff is or is not needed}\nCarry forward: {workspace, source lead_list_id, tier list IDs, approvals, constraints}\n```\n\n## ACA tools used\n\n- `get_started`, `get_workspace`\n- `list_lead_lists`, `get_lead_list`, `create_lead_list`, `add_contacts_to_list`\n- `search_contacts`, `get_contact`, `update_contact`, `update_contact_stage`\n- `list_tags`\n\n## ACA app pages\n\n- Contact notes: `https://www.automatedclientacquisition.com/contacts/{id}`\n- Edit or remove list members: `https://www.automatedclientacquisition.com/leads/lists`\n- LinkedIn import for enrichment: `https://www.automatedclientacquisition.com/leads/import`\n- Campaign steps: `https://www.automatedclientacquisition.com/campaigns/{id}`\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}