<< All versions

Skill v1.0.0

currentAutomated scan100/100
noique/cross-border-ecommerce-skills/contact-extractor
──Details
PublishedOctober 22, 2026 at 05:59 PM
Content Hashsha256:e32ca21757d93bf5...
Git SHA44fef9b51016
──Files
Files (1 file, 3.2 KB)
SKILL.md3.2 KBactive
SKILL.md · 74 lines · 3.2 KB

version: "1.0.0" name: contact-extractor description: Multi-source contact email extraction for KOL / media prospect rows. Given a CSV with personal_site / youtube / podcast_apple columns (e.g. output of linktree-expander or media-press-discovery), enrich each row with up to 3 ranked candidate emails + source label + confidence tier (high/medium/low/none). Triggers on "find contact email", "extract email from creator profile", "deep dig contact info", "enrich KOL contacts".


Contact Extractor

Multi-source email extraction with confidence tiering.

Quick Start

bash
python3 scripts/extract_contacts.py linktree_expanded.csv --out linktree_with_contacts.csv
python3 scripts/extract_contacts.py creators.csv --verify --out enriched.csv # SMTP MX probe

Sources tried (in order)

  1. personal_site root + /about + /contact + /press + /work-with-me
  • mailto: links → high confidence
  • Visible text emails → medium
  1. YouTube Data API v3 (set YOUTUBE_API_KEY env var)
  • Channel description email → high
  1. Apple Podcasts public API (no key needed)
  • RSS feed iTunes:owner email → high
  1. Email pattern guess (only if 1-3 produce no hits)
  • hello@, hi@, contact@, {firstname}@ on personal_site domain
  • Low confidence unless --verify runs SMTP MX probe

Required input columns

  • personal_site — domain (e.g. nurtuher.com)

Optional input columns

  • youtube — channel slug or ID (for YouTube source)
  • podcast_apple — Apple Podcast ID (for podcast RSS)
  • page_title / linktree_handle — used as name hint for pattern guessing

Output

Same CSV + 5 new columns:

  • contact_email_1, contact_email_2, contact_email_3 — ranked
  • contact_sources — e.g. "site / podcast" (which sources hit)
  • contact_confidence — high / medium / low / none

Confidence rubric

TierSource patternAction
highmailto: link OR YouTube API description OR podcast RSS ownersafe to outreach directly
mediumVisible text email on creator's sitespot-check before outreach
lowPattern-guessed email only (no verification)run --verify OR Hunter.io before outreach
noneNo personal_site / no hitsneeds IG bio extraction or manual lookup

NEVER_DIG_DOMAINS

The script skips visiting known third-party domains that produce noise emails (link shorteners, affiliate platforms, scheduling tools, etc.). See list in source.

Pilot run (2026-05-06, 45 Linktree-derived KOLs)

After fixing personal_site identification (handle-match scoring) + NEVER_DIG filtering:

  • 5 high (real mailto / podcast owner / brand support)
  • 4 medium (text emails on creator sites)
  • 11 low (pattern guess on validated personal_site)
  • 25 none (no findable personal_site — recommend IG bio extraction next)

Limitations

  • Requires personal_site in input — for KOLs without one (~50-70% of Linktree pool), this skill produces "none". Use IG bio extraction (Apify or manual) for those.
  • Pattern guess at low confidence has ~60% land rate (推算 industry baseline) — recommend SMTP probe or Hunter.io verification before mass send.
  • YouTube channel businessEmail is hidden behind CAPTCHA — only emails embedded in description are captured.
All versions