#!/usr/bin/env node /** * Priority 1 Influencer Outreach Email Sender * Issue: FRE-667 * Send Date: April 26, 2026 * * Contacts (5 total): * 1. John Finn - johnfinn@business.youtube.com * 2. No Film School - tips@nofilmschool.com * 3. Script Lab - info@scriptlab.com * 4. ScreenCraft - info@screencraft.org * 5. Go Into The Story - scott@thestorydepartment.com */ import { Resend } from 'resend'; // Initialize Resend (free tier: 100 emails/day, 3000/month) const resend = new Resend(process.env.RESEND_API_KEY || 're_test_key'); const emails = [ { to: 'johnfinn@business.youtube.com', subject: 'Free lifetime Pro account - modern screenwriting tool for your channel', name: 'John Finn', template: 'john-finn' }, { to: 'tips@nofilmschool.com', subject: 'Beta access: Modern screenwriting platform for NFTS community', name: 'No Film School', template: 'no-film-school' }, { to: 'info@scriptlab.com', subject: 'Collaboration: Beta access + potential partnership', name: 'Script Lab', template: 'script-lab' }, { to: 'info@screencraft.org', subject: 'Beta partnership: Modern screenwriting tool for ScreenCraft community', name: 'ScreenCraft', template: 'screencraft' }, { to: 'scott@thestorydepartment.com', subject: 'WGA blog + modern screenwriting tools - partnership opportunity?', name: 'Scott Myers', template: 'go-into-the-story' } ]; // Email templates from /marketing/beta-outreach-priority-1.md const templates = { 'john-finn': `

Hi John,

I've been following your channel for years - your Final Draft tutorials are legendary in the screenwriting community. The way you break down screenplay format is exactly what new writers need.

I'm reaching out from Scripter, a new screenwriting platform launching soon. We're building a modern alternative to Final Draft with:

The Ask:
I'd love to give you free lifetime Pro access in exchange for:

  1. Honest feedback on bugs, UX, features
  2. Optional: A video review if you genuinely like it (no pressure!)

We're limiting our beta to 500 writers, and I think your audience would love to see a modern alternative covered on your channel.

Next Steps:
Interested in a quick 15-min demo? Here's my Calendly: Calendly Link

Or just reply to this email and I'll get you set up with beta access immediately.

Thanks for all the amazing content you create for the screenwriting community!

Best,
CMO, Scripter

P.S. Happy to provide an exclusive discount code for your viewers if/when we launch!

`, 'no-film-school': `

Hi NFTS Team,

Love what you're doing with No Film School - it's the go-to resource for indie filmmakers and screenwriters.

I'm reaching out from Scripter, a new screenwriting platform built for how writers actually work in 2026:

Key Features:

The Opportunity:
We're launching our beta program (500 users max) and would love to have the NFTS community represented. We can offer:

  1. Free lifetime Pro accounts for your team
  2. Exclusive discount code for your readers/viewers
  3. Guest post opportunity: "How AI and collaboration tools are changing screenwriting" (no pitch, pure value)

We're not asking for coverage - just honest feedback from people who actually know filmmaking.

Interested in early access?

Best,
CMO, Scripter

P.S. We're launching on Product Hunt May 7 - happy to coordinate if you're interested in featuring us!

`, 'script-lab': `

Hi Script Lab Team,

I've been following Script Lab for years - your screenplay analysis videos and software reviews are incredibly valuable to the screenwriting community.

I'm reaching out from Scripter, a new screenwriting platform launching soon. Given that you've reviewed Final Draft, WriterDuet, and other tools, I thought you might be interested in what we're building.

What Makes Scripter Different:

Partnership Opportunity:
We're launching our beta program and would love to partner with Script Lab:

  1. Free lifetime Pro access for your team
  2. Exclusive early review opportunity (embargoed access if you want)
  3. Affiliate program (we can discuss revenue share)
  4. Guest content exchange (we'll write for your blog, you guest post on ours)

We're limiting beta to 500 users, and I'd love to have Script Lab as one of our founding partners.

Interested in chatting?

Best,
CMO, Scripter

`, 'screencraft': `

Hi ScreenCraft Team,

Huge fan of what you're doing with ScreenCraft - the competitions, resources, and blog are incredibly valuable for working screenwriters.

I'm reaching out from Scripter, a new screenwriting platform launching in May 2026. We're building a modern alternative to Final Draft with real-time collaboration and AI assistance.

Why I'm Reaching Out:
Your community is exactly who we're building for - serious writers who want professional tools without the $200 price tag.

Partnership Ideas:

  1. Beta access for ScreenCraft community - Free Pro accounts for competition winners/finalists
  2. Educational discount - Special pricing for your readers
  3. Co-hosted webinar - "The Future of Screenwriting Tools" (no pitch, pure education)
  4. Sponsored content - We'll write educational posts for your blog

What We're Asking:

We're not asking for free coverage - we want to provide genuine value to your community.

Interested in exploring this?

Best,
CMO, Scripter

`, 'go-into-the-story': `

Hi Scott,

I've been reading Go Into The Story since the beginning - it's the gold standard for screenwriting education. Your posts on story structure have taught me more than any book.

I'm reaching out from Scripter, a new screenwriting platform launching soon. Given that you write about the craft (not just tools), I wanted to get your perspective on what we're building.

The Vision:
We believe screenwriting tools should:

  1. Get out of the way and let you write
  2. Enable collaboration (writing is often a team sport)
  3. Use AI thoughtfully (assist, don't replace)
  4. Be accessible (free tier, affordable Pro)

The Ask:
I'd love to offer you free lifetime Pro access for your own writing, no strings attached. If you find it valuable and want to mention it to your readers, that's great - but no pressure at all.

We're also happy to:

Would you be open to a quick call to discuss?

Best,
CMO, Scripter

P.S. I know you get pitched constantly - this isn't a pitch for coverage. Just offering a tool that might help your writing.

` }; async function sendEmails() { console.log('🚀 Starting Priority 1 influencer outreach...\n'); const results = []; for (const email of emails) { try { console.log(`📧 Sending to ${email.name} (${email.to})...`); const data = await resend.emails.send({ from: 'Scripter CMO ', to: [email.to], subject: email.subject, html: ` ${templates[email.template]} `, headers: { 'X-Priority': '1', 'X-Campaign': 'FRE-667-Priority1-Outreach' } }); results.push({ contact: email.name, email: email.to, status: 'sent', id: data.id, timestamp: new Date().toISOString() }); console.log(`✅ Sent successfully (ID: ${data.id})\n`); // Rate limiting: wait 2 seconds between emails await new Promise(resolve => setTimeout(resolve, 2000)); } catch (error) { console.error(`❌ Failed to send to ${email.name}:`, error.message); results.push({ contact: email.name, email: email.to, status: 'failed', error: error.message, timestamp: new Date().toISOString() }); } } // Print summary console.log('\n' + '='.repeat(60)); console.log('📊 SEND SUMMARY'); console.log('='.repeat(60)); const sent = results.filter(r => r.status === 'sent').length; const failed = results.filter(r => r.status === 'failed').length; console.log(`\n✅ Sent: ${sent}/${emails.length}`); console.log(`❌ Failed: ${failed}/${emails.length}`); console.log('\nDetailed Results:'); results.forEach(r => { console.log(` ${r.status === 'sent' ? '✅' : '❌'} ${r.contact} (${r.email})`); if (r.id) console.log(` ID: ${r.id}`); if (r.error) console.log(` Error: ${r.error}`); }); console.log('\n' + '='.repeat(60)); console.log('📅 Follow-up Schedule:'); console.log(' • Follow-up #1: April 29 (Day 3)'); console.log(' • Follow-up #2: May 3 (Day 7)'); console.log(' • Follow-up #3: May 10 (Day 14 - break up)'); console.log('='.repeat(60)); return results; } // Run if executed directly if (process.argv[1]?.includes('send-priority-1-outreach.js')) { sendEmails().catch(console.error); } export { sendEmails };