Connect Gmail once in Settings (paste a Google OAuth Client ID). Then "Draft in Gmail" puts a real, personalized draft straight in your Drafts. Nothing ever sends on its own.
Fill each target's why / coach / region before drafting. The opener is built from those, so the richer the card, the less the email reads like a template.
Run the Tabroom puller to add active programs + coach names: python3 pull_tabroom.py --ids <completed ids>
League coach pages publish real emails. Match them to the program list with the EMAILS map.
Drafts go to Gmail first. You review and send one at a time.