Lead quality and segmentation
Use this skill to turn a raw ACA lead list into clean outreach segments.
Rules
- Do not invent lead scores. Use existing
lead_score, enrichment fields, tags, and visible contact data. - If analysis data is missing, tag the contact for review or recommend an outreach campaign with
analyze_contactas the first step. - Do not delete contacts unless the user explicitly asks.
- Create new lists/tags for segmentation instead of mutating the source list destructively.
Workflow
1. Pick the source audience
Find the list with list_lead_lists, then call get_lead_list.
If the user describes contacts instead of a list, use search_contacts_and_leads with filters such as tags, status, score range, company, or outreach status.
2. Pull contact details
For each sampled or selected contact, call get_contact when more detail is needed. Grade the list on:
- Data completeness: name, company, job title, email, LinkedIn URL
- Channel readiness: email available, LinkedIn available, phone/WhatsApp where relevant
- ICP fit: existing
lead_score, role, industry, geography, company size, tags - Risk: missing company, generic role, personal email, suppression/do-not-contact tags
- Freshness: last activity and outreach status
For large lists, sample 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
Create destination lists with create_lead_list, then use add_contacts_to_list.
4. Tag and annotate
Use add_contact_tag for durable routing:
aca_tier1aca_tier2aca_needs_enrichmentaca_suppress_review
Use add_contact_note for important judgment calls, especially why a contact was suppressed or promoted to Tier 1.
5. Hand off
If Tier 1 is non-empty, route to aca-launch-outreach.
If too many contacts need enrichment, recommend a LinkedIn import or a campaign sequence that starts with find_email and analyze_contact.
Output format
Lead quality complete for "{source_list}".
Overall quality: {A/B/C/D}
Reviewed: {count}
Tier 1: {count} -> {list_id}
Tier 2: {count} -> {list_id}
Needs enrichment: {count}
Suppress/review: {count}
Main issue: {one-line diagnosis}
Next: {recommended skill/action}
Skill chaining
This skill participates in the ACA chain. Preserve the selected ACA org, relevant IDs, user brief, approval state, and any generated artifacts when continuing into another ACA skill. If the user asked for execution and a downstream condition is met, continue into the next skill automatically; otherwise end with the handoff block.
Upstream
- Called after any lead sourcing skill, or by
aca-kickoffwhen an existing list needs validation.
Auto-continue conditions
- Tier 1 list exists and campaign strategy is missing -> continue to
aca-campaign-strategy. - Tier 1 list and strategy/copy are ready -> continue to
aca-launch-outreach. - Many contacts need better targeting -> continue to
aca-find-leadswith corrected filters.
Stop before chaining when
- Ask before tagging large volumes or creating many derived lists if the user did not request cleanup.
Downstream skills
aca-campaign-strategy- plan messaging for the segment.aca-launch-outreach- launch to the campaign-ready segment.aca-find-leads- refill or correct the audience.
Handoff block
Chain state: {continue|needs_approval|blocked|complete}
Next skill: {aca-skill-name|none}
Reason: {why this handoff is or is not needed}
Carry forward: {org_id/name, product_id, icp_id, lead_list_id, campaign_id, sequence_id, job_id, approvals, constraints}
ACA tools used
list_lead_lists,get_lead_list,create_lead_list,add_contacts_to_listsearch_contacts_and_leads,get_contactadd_contact_tag,add_contact_note