agentsclimarketplace

Email broadcasts

Skill adamjali/claude-skills/plugins/email-broadcasts

Practical Claude Code skills as installable plugins β€” research & teardowns, web build/deploy, image search, repo audit, disk cleanup, outreach, email broadcasts, and a skill generator.

Install
npx -y skills add adamjali/claude-skills --skill email-broadcasts

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Draft, test, and send marketing / product-update email broadcasts to an audience via Resend. Use when the user asks to "send a broadcast", "email blast", "newsletter", "product update email", "announce something to users", "marketing email", "review request", "how many contacts", "email history", or "what have we sent". Config-driven brand + sender; mandatory test send and explicit confirmation before any real send; CAN-SPAM compliant; bounded history.

SKILL.md

6.1 KB, as published. Nobody here has run it

Email Broadcasts

<objective> Manage product-update and marketing email broadcasts via Resend Broadcasts. Covers the full workflow: audience sync/count, drafting (per design rules), a **mandatory test-send preview**, an explicit user confirmation gate, sending to your audience, and history tracking with rolling-window pruning. CAN-SPAM compliant. You set your brand, sender, addresses, and segment IDs in `references/config.md`. NEVER sends to the full audience without an explicit confirmation phrase ("yes send it"). </objective> <context> @references/config.md @history.md </context>

<execution_context>

  • 🟒 Auto: contact/audience counts, history reads, knowledge lookups
  • 🟑 ASK on: draft generation (preview required), test-segment send (still asks before the real send)
  • πŸ”΄ NEVER: send to the general audience without an explicit "yes send it" (or "schedule it for X")
  • Mandatory self-preview: ALWAYS send a test broadcast to the test segment first, wait for "looks good"
  • History: keep the last 5 broadcasts full, archive older to one-line at the bottom of history.md </execution_context>

Setup (one time)

Fill in references/config.md (brand, from/reply-to, physical address for CAN-SPAM, audience

  • test segment IDs, test recipients). Set:
export RESEND_API_KEY="your-key"   # free key at https://resend.com

Manage contacts in your Resend Audience (import a CSV, or sync from your own source). This skill treats the Resend audience as the source of truth β€” no specific backend is assumed.

Routing β€” what does the user want?

User saysRoute to
"send/draft a broadcast", "announce", "newsletter"β†’ Draft & Send workflow
"how many contacts/subscribers"β†’ Resend: list contacts / audience count
"what have we sent", "email history"β†’ History
"open rate", "stats"β†’ Resend: list/get broadcast
"how does unsubscribe / CAN-SPAM work"β†’ Knowledge lookup (below)

Draft & Send Workflow

Phase 1 β€” Prepare

  1. Confirm the audience + count (Resend list-contacts / audience).
  2. Ask: purpose (product update, announcement, review request, custom)? What to highlight? CTA?

Phase 2 β€” Draft

Compose the email (HTML + plain text). Proven structure:

Short, warm intro (2-3 sentences)
WHAT'S NEW β€” section header + one card per item
A SMALL ASK β€” the CTA + a short line of context
Sign-off + footer + unsubscribe

Subject lines: short (<40 chars), friendly, no "review/survey", no ALL CAPS, no emoji.

HTML rules: table-based layout; all styles inline (no <style> tag); 600px max width; bgcolor alongside CSS for Outlook; no JS, no background images; keep it text-heavy on early sends for deliverability; always include a plain-text version.

Phase 3 β€” Test (MANDATORY)

Never skip. Never send without explicit confirmation.

  1. Create a broadcast on the test segment (id from config).
  2. Send the test (only goes to your test recipients).
  3. Ask the user to check: inbox placement (not Promotions/Spam), rendering, CTA target, the unsubscribe link, mobile, and the from-name.
  4. Wait for explicit approval: "yes send it" or "schedule it for X".

Phase 4 β€” Send

Only after explicit confirmation:

  1. Create the broadcast on the general audience/segment (id from config).
  2. Send or schedule via Resend.
  3. Record it in history.md.

Phase 5 β€” Clean up

Update history.md (keep last 5 full, older β†’ one-line). Verify delivery via Resend list-broadcasts / get-broadcast.

CAN-SPAM Compliance

Every marketing email MUST include:

  • A physical mailing address (from config).
  • A working unsubscribe link (Resend Broadcasts auto-manage this; it injects a List-Unsubscribe header and skips unsubscribed contacts on future sends).
  • An honest subject line, no deception.
  • A real reply-to / support contact (from config).

Tools β€” when to use what

TaskTool
List/manage contactsResend MCP/API (list-contacts, create-contact, update-contact)
Create/send broadcastResend MCP/API (create-broadcast, send-broadcast)
One-off transactional emailResend MCP/API (send-email)
Check broadcast statsResend MCP/API (list-broadcasts, get-broadcast)

History

history.md format per entry:

## [Date] β€” [Subject]
- Recipients: [N]
- Segment: General / Test
- Status: sent / scheduled [date]
- Key content: [1-line summary]

Keep the last 5 full entries; older β†’ one-line archive at the bottom.

<saved_rules_format> Stored in history.md "Saved Rules" section, surfaced each run as:

"Previous rule found: '<rule>'. Apply? (Yes / No / Delete)" Common topics: subject-line preferences, CTA copy, do-not-send-to-X rules. </saved_rules_format>

<recovery_protocol> If history.md shows status: scheduled for a broadcast that should have sent β†’ verify in the Resend dashboard. If a draft was interrupted mid-workflow β†’ offer Resume from last phase / Start fresh / Review. </recovery_protocol>

<error_handling>

  • Resend rate limit β†’ sleep and retry; respect the free-tier limit.
  • Test send doesn't arrive β†’ wait, then check; if still missing, stop (don't proceed to the general send).
  • Ambiguous approval phrase β†’ re-ask explicitly: "Confirm: send to [N] contacts? Reply 'yes send it'." </error_handling>

<success_criteria>

  • Audience count verified before the broadcast
  • Test broadcast sent to the test segment FIRST
  • User confirmed the test looked good
  • Explicit "yes send it" (or "schedule it for X") before the general send
  • history.md updated; last 5 full, older compacted
  • Delivery verified after send

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.