list-dedup について
ColdIQ enrichment の前に連絡先や企業リストを整理・重複排除するデータ処理スキルです。LinkedIn URL の正規化値を主な照合キーとして使い、API 呼び出しは行いません。
主な機能
- 01LinkedIn URL の正規化
- 02URLまたはメールによる人物の重複排除
- 03URLまたは名称による企業の重複排除
- 04複数ソースを共通スキーマに統合
- 05重複時に最高スコアの行を保持
- 06企業ごとの連絡先数を制限
活用シーン
- 01enrichment 前のリスト整理
- 02複数ソースの連絡先を統合
- 03重複時に最高スコアのレコードを保持
- 04企業ごとの連絡先数を制限
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ cold-iq/ coldiq-marketplace-skills --skill list-dedupインストール後、Claude Code で/list-dedupを入力して読み込まれたか確認します。
同梱ファイルresources/credit-optimization.md
詳細
リストの重複排除
ColdIQ でデータをエンリッチする前に、データの重複を排除してクリーンアップするための純粋なデータ処理ユーティリティです。クレジットを最も大幅に節約できます。重複を削除するたびに、有料の検索/エンリッチ呼び出しを行わずに済みます。resources/credit-optimization.md を参照してください。このスキルは API 呼び出しを行いません。
重複排除を行うタイミング
- エンリッチ前(同じ人物のエンリッチに二重に費用をかけないでください)
- 複数のソースを統合した後(データベース検索+エンリッチ+広告スクレイピング)
- スコアリング後(重複をまとめ、最もスコアの高い行を残します)
主キー:LinkedIn URL(最初に正規化)
import re
def normalize_linkedin(url):
if not url: return ""
return re.sub(r'\?.*$', '', url).rstrip('/').lower().replace('https://www.', 'https://')
def dedup_people(rows):
seen, out = set(), []
for r in rows:
key = normalize_linkedin(r.get('linkedin_url', '')) or (r.get('email','').lower())
if key and key not in seen:
seen.add(key); out.append(r)
return out
副キー:会社名/会社の LinkedIn URL
会社名を正規化します(Inc/LLC/Ltd の接尾辞を削除し、小文字にします)。より適切なのは、会社の LinkedIn URL がある場合、それを使って重複を排除する方法です。
複数ソースを統合するパターン
- 列を正規化 — 各ソースの列を、次の標準スキーマに対応付けます
(
full_name, title, linkedin_url, email, company_name, company_domain, company_linkedin, source, score)。 - 読み込み — すべてのソース CSV を読み込みます。
- 重複排除 — 正規化した LinkedIn URL(なければメールアドレス)で人物を、会社の LinkedIn URL/会社名で企業を重複排除します。
- 並べ替えとエクスポート — Tier 1 を最初にし、次にペルソナ、最後に会社名の順に並べます。
会社ごとの連絡先上限
1 つのアカウントに大量の連絡を送らないよう、会社ごとの連絡先を 5〜10 件に制限します。役職の優先順位(C レベル/VP/Director > Manager > IC)でランク付けし、company_domain ごとに上位 N 件を残します。
TAM との照合
連絡先リストをスコアリング済み TAM と company_domain で左外部結合して Tier を付与し、エンリッチ前に DQ 済み企業の連絡先を削除します。
チェックリスト
- 比較前に LinkedIn URL を正規化する
- LinkedIn URL(なければメールアドレス)で人物の重複を排除する
- LinkedIn URL/正規化した会社名で企業の重複を排除する
- 統合前にすべてのソースを 1 つのスキーマに対応付ける
- 重複行は最もスコアの高いものを残す
- 会社ごとの連絡先上限(5〜10 件)を適用する
- TAM と照合し、DQ 企業を削除する
- その後、エンリッチする(contact-enrichment を参照)
コメント
Markdown 対応