Generate cold email variants for a researched lead
Generate 2-3 personalized cold email variants for a lead, using their research dossier from Supabase.
When the user invokes /draft-email "Business Name" "optional angle", follow these steps:
node -e "
const { createClient } = require('@supabase/supabase-js');
const fs = require('fs');
const env = Object.fromEntries(fs.readFileSync('.env','utf8').split('\n').filter(l=>l&&!l.startsWith('#')).map(l=>{const i=l.indexOf('=');return[l.slice(0,i).trim(),l.slice(i+1).trim()]}));
const sb = createClient(env.SUPABASE_URL, env.SUPABASE_SERVICE_ROLE_KEY);
sb.from('accounts').select('*').ilike('name','%BUSINESS_NAME%').then(({data,error})=>{
console.log(JSON.stringify(data?.[0]||null,null,2));
});
"
Also fetch contacts:
node -e "
const { createClient } = require('@supabase/supabase-js');
const fs = require('fs');
const env = Object.fromEntries(fs.readFileSync('.env','utf8').split('\n').filter(l=>l&&!l.startsWith('#')).map(l=>{const i=l.indexOf('=');return[l.slice(0,i).trim(),l.slice(i+1).trim()]}));
const sb = createClient(env.SUPABASE_URL, env.SUPABASE_SERVICE_ROLE_KEY);
sb.from('contacts').select('*').eq('account_id','ACCOUNT_ID').then(({data,error})=>{
console.log(JSON.stringify(data||[],null,2));
});
"
If no research data exists (research_status !== 'done'), tell Carson:
"No research on file for {name}. Run
/research-lead "{name}"first, or I can draft a generic email."
Using the account's ai_summary, sales_angle, food_gap, current_food_notes, contacts, and volume_estimate, generate 3 email variants:
Variant A: Direct Pitch
Variant B: Value-First
Variant C: Social Proof
Voice guidelines for all variants:
If Carson provided an angle/tone in the arguments, weight all variants toward that angle.
## Cold Emails for {Business Name}
**To:** {contact_name} ({contact_email or "no email on file"})
**Research:** {priority_score} priority | {volume_estimate.min}-{volume_estimate.max}/week potential
---
### Variant A: Direct Pitch
Subject: {subject line}
{email body}
---
### Variant B: Value-First
Subject: {subject line}
{email body}
---
### Variant C: Social Proof
Subject: {subject line}
{email body}
---
Which one do you want to save? (A/B/C/none/edit)
If Carson picks one (or edits one), save it to the account:
node -e "
const { createClient } = require('@supabase/supabase-js');
const fs = require('fs');
const env = Object.fromEntries(fs.readFileSync('.env','utf8').split('\n').filter(l=>l&&!l.startsWith('#')).map(l=>{const i=l.indexOf('=');return[l.slice(0,i).trim(),l.slice(i+1).trim()]}));
const sb = createClient(env.SUPABASE_URL, env.SUPABASE_SERVICE_ROLE_KEY);
sb.from('accounts').update({cold_email_draft:'EMAIL_TEXT_HERE'}).eq('id','ACCOUNT_ID').then(({error})=>{
console.log(JSON.stringify({saved:!error,error}));
});
"