Email Campaign - Build Verified Email Lists

Build email campaigns - find emails, verify them, and prepare outreach

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/outreach/capabilities/email-campaign#main ~/.claude/skills/email-campaign

For one project only, change the path to .claude/skills/email-campaign.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text154 lines
email-campaign/SKILL.md154 lines5.0 KBpushed 96d agoRawView on GitHub

Email Campaign - Build Verified Email Lists

Setup

Read your credentials from ~/.gooseworks/credentials.json:

export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")

If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login

All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"

Build targeted email campaigns with verified email addresses and personalized outreach.

Workflow

Step 1: Find Emails by Domain

Get all emails for target companies:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/domain-search","query":{"domain":"stripe.com"}}'

Step 2: Find Specific Person's Email

Find email for specific contacts:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/email-finder","query":{"domain":"stripe.com","first_name":"John","last_name":"Doe"}}'

Step 3: Verify Emails

Check deliverability before sending:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'

Step 4: Batch Verification with Fiber

Validate multiple emails:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/validate-email/single","body":{"email":"[email protected]"}}'

Step 5: Enrich for Personalization

Get info for personalized outreach:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"sixtyfour","path":"/enrich-lead"}'
  "lead_info": {
    "first_name": "John",
    "last_name": "Doe",
    "company": "Stripe"
  },
  "struct": {"email": "Work email", "phone": "Phone number"}
}'

Step 6: Get Company Context

Research company for personalization:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"brand-dev","path":"/v1/brand/retrieve","query":{"domain":"stripe.com"}}'

Campaign Building Pipeline

# 1. Find target companies
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/company-search"}'
  "searchParams": {
    "industries": ["SaaS"],
    "employee_count_min": 50,
    "employee_count_max": 500
  }
}'

# 2. Get emails for each company
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/domain-search","query":{"domain":"company.com"}}'

# 3. Verify each email
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'

# 4. Enrich for personalization
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"sixtyfour","path":"/enrich-lead","body":{"lead_info":{"first_name":"John","last_name":"Doe","company":"Company"},"struct":{"email":"Work email"}}}'

Tips

  • Always verify emails before sending
  • Personalize using enrichment data
  • Segment by role, industry, or company size
  • Track bounces and clean your list

Discover More

List all endpoints, or add a path for parameter details:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"brand-dev API endpoints"}' api show fiber
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"hunter API endpoints"}' api show sixtyfour 

Example: curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \ -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"api":"olostep","path":"/v1/scrapes"}' for endpoint parameters.

1---
2name: email-campaign
3description: Build email campaigns - find emails, verify them, and prepare outreach
4source: orthogonal
5---
6 
7 
8# Email Campaign - Build Verified Email Lists
9 
10## Setup
11 
12Read your credentials from ~/.gooseworks/credentials.json:
13```bash
14export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
15export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
16```
17 
18If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`
19 
20All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`
21 
22 
23Build targeted email campaigns with verified email addresses and personalized outreach.
24 
25## Workflow
26 
27### Step 1: Find Emails by Domain
28Get all emails for target companies:
29 
30```bash
31curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
32 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
33 -H "Content-Type: application/json" \
34 -d '{"api":"hunter","path":"/v2/domain-search","query":{"domain":"stripe.com"}}'
35```
36 
37### Step 2: Find Specific Person's Email
38Find email for specific contacts:
39 
40```bash
41curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
42 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
43 -H "Content-Type: application/json" \
44 -d '{"api":"hunter","path":"/v2/email-finder","query":{"domain":"stripe.com","first_name":"John","last_name":"Doe"}}'
45```
46 
47### Step 3: Verify Emails
48Check deliverability before sending:
49 
50```bash
51curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
52 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
53 -H "Content-Type: application/json" \
54 -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'
55```
56 
57### Step 4: Batch Verification with Fiber
58Validate multiple emails:
59 
60```bash
61curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
62 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
63 -H "Content-Type: application/json" \
64 -d '{"api":"fiber","path":"/v1/validate-email/single","body":{"email":"[email protected]"}}'
65```
66 
67### Step 5: Enrich for Personalization
68Get info for personalized outreach:
69 
70```bash
71curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
72 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
73 -H "Content-Type: application/json" \
74 -d '{"api":"sixtyfour","path":"/enrich-lead"}'
75 "lead_info": {
76 "first_name": "John",
77 "last_name": "Doe",
78 "company": "Stripe"
79 },
80 "struct": {"email": "Work email", "phone": "Phone number"}
81}'
82```
83 
84### Step 6: Get Company Context
85Research company for personalization:
86 
87```bash
88curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
89 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
90 -H "Content-Type: application/json" \
91 -d '{"api":"brand-dev","path":"/v1/brand/retrieve","query":{"domain":"stripe.com"}}'
92```
93 
94## Campaign Building Pipeline
95 
96```bash
97# 1. Find target companies
98curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
99 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
100 -H "Content-Type: application/json" \
101 -d '{"api":"fiber","path":"/v1/company-search"}'
102 "searchParams": {
103 "industries": ["SaaS"],
104 "employee_count_min": 50,
105 "employee_count_max": 500
106 }
107}'
108 
109# 2. Get emails for each company
110curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
111 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
112 -H "Content-Type: application/json" \
113 -d '{"api":"hunter","path":"/v2/domain-search","query":{"domain":"company.com"}}'
114 
115# 3. Verify each email
116curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
117 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
118 -H "Content-Type: application/json" \
119 -d '{"api":"hunter","path":"/v2/email-verifier","query":{"email":"[email protected]"}}'
120 
121# 4. Enrich for personalization
122curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
123 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
124 -H "Content-Type: application/json" \
125 -d '{"api":"sixtyfour","path":"/enrich-lead","body":{"lead_info":{"first_name":"John","last_name":"Doe","company":"Company"},"struct":{"email":"Work email"}}}'
126```
127 
128## Tips
129 
130- Always verify emails before sending
131- Personalize using enrichment data
132- Segment by role, industry, or company size
133- Track bounces and clean your list
134 
135## Discover More
136 
137List all endpoints, or add a path for parameter details:
138 
139```bash
140curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
141 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
142 -H "Content-Type: application/json" \
143 -d '{"prompt":"brand-dev API endpoints"}' api show fiber
144curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
145 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
146 -H "Content-Type: application/json" \
147 -d '{"prompt":"hunter API endpoints"}' api show sixtyfour
148```
149 
150Example: `curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
151 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
152 -H "Content-Type: application/json" \
153 -d '{"api":"olostep","path":"/v1/scrapes`"}' for endpoint parameters.
154 

Discussion