Community라이팅 & 에디팅github.com

이메일 파인더

trykitt, Icypeas, MillionVerifier를 사용한 폭포수 방식 이메일 보강 도구입니다. 단독 실행이 가능하며, Outreach Magic과 함께 사용하면 중복 제거 및 영구 저장이 가능합니다.

이메일 파인더란 무엇인가요?

이 스킬은 이름과 회사 도메인이 주어졌을 때 업무용 이메일을 찾아주는 도구입니다. 먼저 trykitt을 시도하고, 실패 시 Icypeas로 폴백하는 폭포수(waterfall) 방식을 사용합니다. 단독 실행 모드에서는 API 키만으로 즉시 사용할 수 있으며, 결과는 stdout으로 출력됩니다. Outreach Magic(OM)과 연동하면 사전 중복 제거, SQLite 기반 영구 저장, 세션 간 조회 기록 유지 등 고급 기능을 활용할 수 있습니다. 또한 MillionVerifier를 통해 이메일 검증을 추가할 수 있으며, 배치 모드에서는 JSON/CSV 파일을 입력으로 받아 대량 처리하고 진행 상황을 체크포인트로 저장하여 중단된 작업을 재개할 수 있습니다. 이 스킬은 Claude Code, Codex, Cursor, Windsurf 등 모든 AI 에이전트 플랫폼에서 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add outreachmagic/email-finder

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

이메일 파인더은(는) 무엇을 하나요?

이름 + 회사 도메인이 있을 때 업무용 이메일을 찾습니다. trykitt을 먼저 시도하고, 실패 시 Icypeas를 사용합니다.

단독 실행 가능합니다. API 키만 필요합니다. Outreach Magic과 함께 사용하면 크레딧을 절약하는 중복 제거, 영구 저장, 세션 간 조회 기능을 사용할 수 있습니다.

설정

단독 실행 (OM 없음)

API 키만 필요합니다. 결과는 stdout으로 출력됩니다. 데이터베이스가 필요 없습니다.

키용도
TRYKITT_API_KEYtrykitt.ai (폭포수 첫 번째) — trykitt.ai
ICYPEAS_API_KEYIcypeas (폴백) — app.icypeas.com
python3 scripts/email_finder.py config  # 키 로드 확인
python3 scripts/email_finder.py find --name "Jane Doe" --domain acme.com
# → 결과를 stdout으로 출력

Outreach Magic과 함께 사용 (중복 제거 + 저장)

이미 OM에 있는 리드는 건너뛰는 사전 중복 제거 기능과 결과를 로컬 SQLite 파이프라인에 저장하는 기능이 추가됩니다. outreachmagic 스킬과 함께 pipeline.py login이 필요합니다.

키용도
위 단독 실행 키 전체 +
OUTREACHMAGIC_AGENT_KEYpipeline.py login을 통한 OM 로그인
python3 scripts/email_finder.py find --name "Jane Doe" --domain acme.com --save --workspace CLIENT
python3 scripts/email_finder.py batch-find --workspace CLIENT --yes --workers 3 --delay 3 input.json

OM과 함께 find/batch-find를 실행하기 전에 키를 확인하세요: python3 <SKILLS>/outreachmagic/scripts/pipeline.py sync-secrets --check --json 또는 python3 scripts/email_finder.py config.

키는 Dashboard → pipeline.py sync-secrets를 통해 동기화됩니다. 출처 확인: python3 scripts/email_finder.py config (*_api_key_source가 agent_secrets여야 함).

배치 형식

[{"lead_id": 12345, "name": "Jane Doe", "company_domain": "acme.com"}]

프로덕션 배치 기본값

모드플래그
폭포수--workers 3 --delay 3
IcyPeas만--workers 2 --delay 3
TryKitt만--workers 3 (선택사항 --delay 0.2)

에이전트 규칙

  1. OM 사용 시: find 전에 확인 (check / find + --save). 단독 실행: 확인 생략 — 바로 find 실행.
  2. 이메일을 절대 조작하지 마세요.
  3. 폭포수: 두 키 모두 설정된 경우 trykitt → Icypeas.
  4. OM 사용 시: 태그 trykitt_attempted / icypeas_attempted; MillionVerifier 벌크 후 mv_attempted (결과는 OM email_verification_status에 저장). 발견 상태는 leads.email, latest_source, email_verification_status에 기록됩니다.
  5. OM 사용 시: 모든 행에 lead_id 필수; OM 저장을 위해 --workspace 필요. 단독 실행: --save 생략 또는 --no-save 사용하여 stdout으로 출력.
  6. --yes 전에 batch-find --dry-run을 실행하여 건너뛸 개수를 확인하세요 (CSV email이 비어있어도 리드가 이미 OM에 이메일을 가지고 있을 수 있음).
  7. batch-find는 각 API 호출 직전에 OM을 다시 확인합니다 (배치 시작 이후 해결된 리드는 건너<0xEB><0x9B><0x84>).
  8. OM 사용 시: batch-find는 CSV/JSON을 outreachmagic/exports/에 쓴 후 OM에 저장합니다. 단독 실행: --skip-om을 추가하여 OM 없이 실행 (현재 작업 디렉토리에 씀).
  9. COMPLETE 박스는 IMPORT와 RELAY를 보여줍니다 (보류 중인 스냅샷 — pipeline.py sync 실행; 업로드는 절대 자동이 아님).
  10. 크레딧 — 발견된 이메일당 1크레딧 (trykitt / Icypeas) 또는 검증된 이메일당 1크레딧 (MillionVerifier). 찾지 못한 조회는 0크레딧.

배치 입력

[{"lead_id": 12345, "name": "Jane Doe", "company_domain": "acme.com"}]

선택적으로 "linkedin_url"을 포함할 수 있습니다 — trykitt이 더 높은 매칭률을 위해 사용합니다.

명령어

# 단독 실행 (OM 없음) — stdout으로 결과 출력
python3 scripts/email_finder.py find --name "Jane Doe" --domain acme.com

# 단독 실행 배치 (OM 없음) — CSV를 현재 작업 디렉토리에 씀
python3 scripts/email_finder.py batch-find --skip-om --yes --dry-run input.json

# OM 사용 — find + 중복 제거 + 저장
python3 scripts/email_finder.py find --name "Jane Doe" --domain acme.com --save --workspace CLIENT

# 드라이 런 (건너뛸 개수 확인, API 비용 없음)
python3 scripts/email_finder.py batch-find --workspace CLIENT --dry-run outreachmagic/batches/leads.json

# 배치 (find + OM 저장)
python3 scripts/email_finder.py batch-find --workspace CLIENT --yes \
  --output-base outreachmagic/exports/emails --workers 3 --delay 3 outreachmagic/batches/leads.json

# OM 저장만 — 가져오기 실패 또는 --no-save 실행 후 (batch .csv 또는 .json 허용)
python3 scripts/email_finder.py import-to-om --file outreachmagic/exports/emails.csv --workspace CLIENT

python3 scripts/email_finder.py update --check

# MillionVerifier (선택사항)
python3 scripts/email_finder.py config
python3 scripts/email_finder.py verify-credits
python3 scripts/email_finder.py verify-bulk --workspace CLIENT --dry-run
python3 scripts/email_finder.py verify-bulk --workspace CLIENT --poll --yes

MILLIONVERIFIER_API_KEY가 로컬 .env에 있으면 ***로 표시될 수 있습니다. OM agent_secrets.env는 ensure_env_loaded()를 통해 재정의합니다.

중단된 배치는 동일한 batch-find 명령을 다시 실행하여 재개할 수 있습니다 (이미 완료된 API 행은 건너<0xEB><0x9B><0x84>). 네트워크/인증 오류로 실행이 실패한 경우, 체크포인트를 삭제하지 않고 오류가 발생한 행을 다시 시도하려면 **--retry-errors**를 사용하세요.

일반 워크플로

사용자 말당신이 할 일
"stripe.com에서 Patrick 찾아줘"find --name … --domain stripe.com (단독) 또는 --save --workspace W와 함께 (OM)
"내 CSV에서 이메일 찾아줘" (OM 사용)batch-find --dry-run → batch-find --yes
"내 CSV에서 이메일 찾아줘" (단독)batch-find --skip-om --dry-run → batch-find --skip-om --yes
"실패한 이메일 조회 다시 시도"동일한 batch-find 명령에 --retry-errors 추가

문제 해결

  • ModuleNotFoundError: data_freshness — outreachmagic에서 pipeline.py update 실행.
  • COMPLETE의 IMPORT 섹션에 ⚠ No import 표시 — 결과가 디스크에 있음; import-to-om --file {output-base}.csv --workspace W
  • CSV에는 이메일이 있는데 OM은 비어 있음 — 배치 저장 실패; import-to-om --file {output-base}.csv --workspace W
  • import-profiles 시간 초과 — 결과가 디스크에 있음; import-to-om을 사용하거나 더 작은 배치로 다시 실행.
  • IcyPeas ~10% 적중률 — 폴링 시간 초과; 설정에서 icypeas_poll_attempts 증가
  • 체크포인트가 오류 후 모든 항목을 건너<0xEB><0x9B><0x84> — --retry-errors로 다시 실행하거나 {output-base}.csv / .json을 삭제하고 새로 시작.
  • 키 없이 --provider icypeas 사용 — 즉시 실패; app.outreachmagic.io → 설정에서 키를 추가한 후 sync-secrets --check 실행

파이프라인

단독으로도 유용하게 사용할 수 있습니다: find / batch-find --skip-om. lead-enrich (연구 → 도메인) 및 Outreach Magic (크레딧 절약 중복 제거, 영구 SQLite, 세션 간 이용 가능)과 함께 사용하세요. 더 알아보기: outreachmagic.io. 두 동반 스킬 모두 이미 태그된 리드는 건너<0xEB><0x9B><0x84> ( serper_attempted / trykitt_attempted / icypeas_attempted).

관련 스킬