getback-recruit-mail
SkillCommunicationGuides your agent through sending bulk recruitment and encouragement emails to a subscriber list.
Use getback-recruit-mail in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add getback-recruit-mail and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the getback-recruit-mail skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; ahel provides instructions and does not run this skill.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Read this when sending GETBACK (GET100) cohort recruitment or encouragement emails to the subscriber list. Covers triple-exclusion comparison of targets, passing the send_bulk quality gate, ad labeling requirements, and send history logging procedures. Handles requests like "let's send a recruitment
What this skill tells your AI
The instructions your AI receives, as published by bam-bam-2/solo-skills in skills/getback-recruit-mail/SKILL.md and read by ahel’s review.
이 스킬이 시스템에 하는 일 (설치 전 확인)
- 여러 명에게 메일을 실제로 발송합니다. 되돌릴 수 없습니다.
- 발송 전에 수신 대상을 3중으로 대조해 제외하는 절차가 들어 있습니다. 그 단계를 건너뛰지 마세요.
- SMTP 계정 정보가 필요합니다. 환경변수로만 읽고 저장하지 않습니다.
- 광고성 메일 표기 의무는 발송자 본인 책임입니다.
겟백 모집 메일 발송
기수마다 반복된다. 2026-09-02에 사전알림 10명 + 광고동의 43명을 보내며 실측한 절차다.
절대 규칙 — 추적을 끄고 보내지 않는다
모든 발송에 --volume 을 반드시 준다. 밤밤 지시(2026-09-02): "다음부터 이메일 보낼따 무조건 추적을 켜".
send_bulk.py --volume <호수> 를 주면 오픈 픽셀과 클릭 추적 링크가 자동 주입된다. 안 주면 추적 없이 나가고, 한 번 나간 메일은 소급해서 측정할 방법이 없다. 실제로 2026-09-02에 --volume 을 빼고 53명에게 보내 오픈·클릭을 영영 못 재게 됐다.
호수 값 규칙:
- 기수 모집·독려 메일 → 기수 라벨 (
7gi,8gi). 자동 리마인드get100_7gi_notify.py가 쓰는 값과 맞춘다 - 뉴스레터 →
vol12형태 - 같은 기수에서 세그먼트를 나눠 보내면 뒤에 붙여 구분한다 (
7gi-nudge,7gi-d3)
기록되는 곳은 구독자 DB의 오픈 횟수 · 최근 오픈일 · 최근 오픈 호수 · 클릭 횟수 · 최근 클릭일 · 최근 클릭 호수 다. 같은 사람이 같은 날 같은 호를 여러 번 열어도 중복 집계되지 않는다.
오픈율은 항상 과소집계된다. 지메일·네이버가 이미지를 기본 차단하면 픽셀이 안 불린다. 성과 판단은 클릭 수를 기준으로 하고, 최종 지표는 기수 신청 DB의 신규 행이다.
1. 대상 추출 — 반드시 3중 제외 대조
구독자 DB 하나만 보고 거르면 샌다. 실제로 그렇게 해서 6월 신청자에게 오발송했다.
| DB | ID | 용도 |
|---|---|---|
| 구독자 | <NOTION_DB_ID> (ds <NOTION_DB_ID>) | 후보 풀 |
| 기수 신청 | <NOTION_ID> (ds <NOTION_DB_ID>) | 전량 제외 |
| 멤버 | ds <NOTION_DB_ID> | 이메일 + 이름 제외 |
후보 조건: 광고성 수신 동의 = '__YES__' AND 구독 상태 NOT IN ('수신 거부','반송').
세그먼트는 명단 구분 (사전알림 / 뉴스레터 구독 / 행사 신청)으로 나눈다.
제외 규칙
- 기수 신청 DB는 기수 필드가 비어 있는 과거 행까지 전량 제외. 날짜로 필터하면 놓친다(오승혜님 7기 결제완료를 그렇게 놓쳤다).
- 멤버 DB 이메일은 절반만 채워져 있다(2026-09 기준 20/42). 이메일 대조만으로 부족하니 이름으로도 대조한다. 이걸로 B 원장(5기·자문 클라이언트)·서진욱(1기)·김미란(1기)이 걸러졌다.
연결된 멤버관계 필드는 전 행이 null이라 신뢰하지 않는다.- 이름 부분 일치(소민 vs 백소민)는 일단 제외하고 사용자에게 알린다.
- 발송 전 최종 인원과 제외 사유별 명단을 보고하고 승인받는다.
맥미니 자동 리마인드 ~/Projects/getback/scripts/get100_7gi_notify.py가 이미 같은 제외를 한다. 수동 발송 전에 그 로직을 먼저 읽으면 빠르다.
2. 메일 작성
빌더: ~/Projects/getback/운영/emails/build_email.py + brand-template.html
(플레이스홀더 HERO_LABEL HERO_HEADLINE NOTICE_BAR_BLOCK INTRO_BLOCK INFO_CARD_ROWS CUSTOM_SECTIONS CTA_* CLOSING_TEXT SIGNATURE_LINE* FOOTER_TEXT, 헬퍼 info_row() notice_bar())
세그먼트마다 인트로와 푸터를 같이 바꾼다. 사전알림용 문구를 광고동의 명단에 그대로 보내면 "사전알림 신청한 적 없는데"가 된다. 한 문장을 고치면 같은 내용이 반복되는 자리를 전부 grep할 것 (푸터·제목·동의 경로).
톤은 decisions.md 기준: 짧은 사실 확인 + 다음 단계. 과한 정성 연출 금지. "이런 분께는 권하지 않습니다" 같은 필터 블록은 밤밤 선발 기준과 맞아 유효하다.
3. 품질 게이트 (우회 금지)
send_bulk.py가 H1~H11을 강제하고 --test에도 걸린다. 자주 걸리는 둘:
- H3 형광펜 8개 이상 —
<span style="background:#d4f000;padding:1px 5px;font-weight:700;">…</span>. 숫자·핵심 사실에 건다. - H4 이미지 2장 이상 —
src="cid:이름"으로 넣고emails/img/이름.jpg에 파일을 둔다. get100.co.kr 실사진 재사용이 자연스럽다 (마케팅/get100-website-personal/dist/assets/의community-networking-party-*,home-proof-operation-*).
나머지 게이트(em-dash·부정대조·최상급·금칙어)는 밤밤 카피 규칙을 그대로 지키면 통과한다.
수신자 CSV 파일명에 opt-in 표시가 없으면 차단된다. -optin -ad-recipients -consent -agreed 중 하나 필수. 형식은 헤더 없이 이름,이메일, 이름이 없으면 안녕하세요.
4. 발송
cd ~/Projects/getback/운영/emails
# 1) 본인 테스트 — 실제 받는 모습 확인
python3 send_bulk.py --html <절대경로>.html --subject "[미리보기] (광고) …" \
--volume 7gi-nudge --test you@example.com
# 2) 승인 후 실발송 (--volume 절대 빼지 말 것)
python3 send_bulk.py --html <절대경로>.html --subject "(광고) …" \
--volume 7gi-nudge --recipients <이름>-optin.csv
발송 명령을 만들었으면 실행 전에 --volume 이 들어갔는지 눈으로 확인한다.
- 광고성 메일은 제목에
(광고)표기 (정보통신망법 제50조, 기존 관행과 일치). - 푸터에 수신거부 안내:
수신거부·문의는 본 메일에 회신해 주세요. · GET100 - 발송 간격 1.2초, 인라인 CID는 multipart/related로 나간다.
- 네이버메일은 발송취소가 안 된다. 문구를 고쳤으면 발송 전에 전문을 덤프해 눈으로 읽고 승인받는다.
전문 확인용 덤프:
python3 -c "import re;h=open('파일.html').read();h=re.sub(r'<br\s*/?>','\n',h);h=re.sub(r'</(p|div|tr|li|h1)>','\n',h);print('\n'.join([l.strip() for l in re.sub(r'<[^>]+>','',h).split('\n') if l.strip()]))"
5. 발송 후
- 다음 날 오픈·클릭을 집계한다. 구독자 DB에서
최근 오픈 호수또는최근 클릭 호수가 이번 호수와 같은 행을 세면 된다. 클릭 수를 먼저 보고, 오픈 수는 참고로만 읽는다. - 반송은 SMTP 250만 믿지 말고 IMAP 보낸편지함 통수 대조 + 받은편지함 반송 스캔까지 한다 (
naver-mail-imap스킬). 맥미니com.get100.bounce-watch로그는 멈춰 있을 수 있으니 상태를 먼저 확인한다. - 구독자 DB
메모에[YYYY-MM-DD] <발송명> 발송마커를 남긴다. 단 rich_text는 1,900자 상한이라 긴 메모는 append가 조용히 실패한다. 마커 개수와 IMAPSent Messages통수를 대조해 누락을 잡는다. - 자동 리마인드 잡과 겹치는지 확인한다. plist는 맥미니
~/Library/LaunchAgents/com.get100.7gi-notify-*. 꺼져 있어도.disabled-<타임스탬프>로 남아 있으니 파일명으로 상태를 확인하고, 기억이 아니라 plist의StartCalendarInterval로 실제 예정일을 읽는다.
함정 모음
- 기수 전환 시
api/lead.js의CURRENT_COHORT와apply.html의 hidden cohort 필드를 둘 다 올린다. 신청 확인 메일 템플릿도 같이 본다. - 참가비는 소비자 노출을 **총액(부가세 포함)**으로 통일한다. 한 기수만 표기를 바꾸면 인상이 인하로 읽힌다.
- 커뮤니티 페이지의 누적 멤버 수와 멤버 DB 행 수가 다를 수 있다(45 vs 42). 확정 못 하면 숫자를 빼고 쓴다.
Signals
- GitHub stars
- 368
- Forks
- 88
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
getback-recruit-mail- Source
- github.com/bam-bam-2/solo-skills
github.com/bam-bam-2/solo-skills
Related picks
Skill · googleworkspace
The pick for Gmailopenakita/skills@gmail-automation
Skill · openakita
The pick for Gmailads
Skill · coreyhaines31
The pick for Adsnewsletter-monetization-planner
Skill · aaron-he-zhu
The pick for Newsletternewsletter-writer
Skill · cbrock84
The pick for Newsletterslack-gif-creator
Skill · anthropics
More in Communication