gtm-pipeline:contact-filter

Classify and rank B2B contacts by ICP fit before enrichment using tiered scoring.

69|8|Updated Apr 16, 2026
One-click install
npx skills add https://github.com/keinsaasforever/gtm-pipeline-skills --skill gtm-pipeline-contact-filter-keinsaasforever
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gtm-pipeline:contact-filter
Source: https://github.com/keinsaasforever/gtm-pipeline-skills/tree/main/skills/gtm-contact-filter
Command: npx skills add https://github.com/keinsaasforever/gtm-pipeline-skills --skill gtm-pipeline-contact-filter-keinsaasforever

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Enriching every contact found in a people search wastes enrichment credits on poor-fit leads. This Skill filters and ranks contacts from people-search output before enrichment, rejecting non-ICP contacts and prioritizing the best matches so only qualified contacts consume paid enrichment credits. ## Core Features & Use Cases - Multi-Tier ICP Classification: Scores contacts on job tier (1-6), industry tier (0-5), location tier (A-D), company size, and ICP keyword matches in company specialities, with configurable hard-reject thresholds. - Smart Edge-Case Handling: Applies C-level promotion at small companies, demotes assistant/support titles even when they contain decision-maker keywords, and falls back gracefully when company data is missing. - Configurable Ranking: Sorts passed contacts by a client-defined composite sort key stored in context/icp.md, with dedup by LinkedIn URL and best-N-per-company selection for small batches. - Use Case: After a people-search returns 500 contacts, run this filter to reject interns and out-of-region roles, rank the rest by job and industry fit, and pass only the top 150 to people-enrichment — cutting enrichment spend significantly. ## Quick Start Filter and rank the contacts in csv/intermediate/contacts_found.csv using my ICP configuration and write the qualified results to contacts_filtered.csv.

Frequently Asked Questions about gtm-pipeline:contact-filter

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I filter B2B contacts before paying for enrichment?

Run this filter on the contacts_found.csv produced by people-search. It classifies each contact by job tier, industry tier, location tier, and company size, rejects contacts above the hard-reject threshold, and writes only qualified, ranked contacts to contacts_filtered.csv.

How does ICP scoring rank sales leads by job title and industry?

Contacts receive a job tier (1-6) from keyword and seniority matching, an industry tier (0-5) from exact or keyword matching, and a location tier (A-D) from company HQ country. A configurable composite sort key combines these tiers with ICP keyword scores to produce the final ranking.

What happens when company data is missing for a contact?

The filter falls back to job-title-only classification and skips company-dependent dimensions like industry tier and size filter. Missing employee counts set an employee_count_missing flag and deprioritize the contact in sorting rather than rejecting it.

Why are contacts with CEO in the title sometimes rejected?

An assistant/support demotion rule checks for tokens like assistant, secretary, or office manager before crediting decision-maker keywords. Titles such as 'Assistant to the CEO' contain CEO but are demoted to the reject tier because they are not buying authorities.

Can I customize the ICP filter thresholds and sort order?

Yes. All tier definitions, keyword lists, size ranges, hard-reject thresholds, and sort order are stored per client in context/icp.md under a Contact Filter section. If the configuration is missing, the skill asks setup questions and saves your answers.