audience-icp-filter
Audience ICP Filter
Takes an audience that already exists and splits it into ICP match, needs review and no match — with the user's own team and competitors stripped out, and a reason attached to every decision.
Authority — read this first
- Inlined below: the coverage gate, the ICP question set, the seniority and function tiers, the exclusion doctrine, the two-pass rule, the naming convention, the anti-patterns, and the fixed result UI. This covers the common ~90% of lists. Work from these tables.
- In
references/title-taxonomy.json: the full regex patterns behind seniority/function detection. You do not need to read it —scripts/build.pyloads it. Consult it only if a user disputes a classification or wants to extend the taxonomy. - Never classify a list by hand. Run the script, then run your own review pass over its output. Both passes are mandatory.
Scope
This skill starts from a list that already exists: an audience in the user's sales tool, or a CSV. It does not import or scrape — importing is a separate job with its own timing and prerequisites, and folding it in here would make the skill slower and less reliable for no gain.
If the user hasn't imported yet, tell them to do that first, then come back with the audience.
What it does
Any audience is mostly noise: the user's own colleagues are in it, competitors are watching, and a third of the job titles are unreadable. This skill checks whether the data can support the ICP the user wants, asks what that ICP actually is, sorts the list, and writes the segments back as complementary audiences.