Lead Enrichment - Complete Contact Data

Enrich leads with email, phone, company data using multiple data sources

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/lead-generation/capabilities/lead-enrichment#main ~/.claude/skills/lead-enrichment

For one project only, change the path to .claude/skills/lead-enrichment.

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 text165 lines
lead-enrichment/SKILL.md165 lines5.5 KBpushed 96d agoRawView on GitHub

Lead Enrichment - Complete Contact Data

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"

Enrich partial lead data with emails, phone numbers, and company information using multiple APIs.

Workflow

Step 1: Find Email Address

Use Hunter to find 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-finder","query":{"domain":"stripe.com","first_name":"John","last_name":"Doe"}}'

Step 2: Verify Email

Verify the email is deliverable:

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 3: Get More Contact Info

Use Sixtyfour for additional enrichment:

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",
    "linkedin_url": "https://linkedin.com/in/johndoe"
  },
  "struct": {"email": "Work email", "phone": "Phone number"}
}'

Step 4: Find Phone Number

Use Sixtyfour to find phone:

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":"/find-phone"}'
  "lead": {
    "first_name": "John",
    "last_name": "Doe",
    "company": "Stripe"
  }
}'

Step 5: Enrich Company Data

Get detailed company information:

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/companies/find","query":{"domain":"stripe.com"}}'

Step 6: Get LinkedIn Data

Fetch real-time LinkedIn profile:

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/linkedin-live-fetch/profile/single","body":{"identifier":"https://linkedin.com/in/johndoe"}}'

Full Enrichment Pipeline

# 1. Start with name + company
export NAME="John Doe"
export COMPANY="Stripe"
export DOMAIN="stripe.com"

# 2. Find email (Hunter)
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":"$DOMAIN","first_name":"John","last_name":"Doe"}}'

# 3. Verify 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. Get full lead profile (Sixtyfour)
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":"Stripe"},"struct":{"email":"Work email"}}}'

# 5. Find phone
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":"/find-phone","body":{"lead":{"first_name":"John","last_name":"Doe","company":"Stripe"}}}'

# 6. Get company details
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/companies/find","query":{"domain":"stripe.com"}}'

Tips

  • Always verify emails before outreach
  • Use multiple sources for better coverage
  • LinkedIn URLs dramatically improve match rates
  • Cache results to avoid duplicate lookups

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":"fiber API endpoints"}' api show hunter
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"sixtyfour API endpoints"}'

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: lead-enrichment
3description: Enrich leads with email, phone, company data using multiple data sources
4source: orthogonal
5---
6 
7 
8# Lead Enrichment - Complete Contact Data
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 
23Enrich partial lead data with emails, phone numbers, and company information using multiple APIs.
24 
25## Workflow
26 
27### Step 1: Find Email Address
28Use Hunter to find email:
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/email-finder","query":{"domain":"stripe.com","first_name":"John","last_name":"Doe"}}'
35```
36 
37### Step 2: Verify Email
38Verify the email is deliverable:
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-verifier","query":{"email":"[email protected]"}}'
45```
46 
47### Step 3: Get More Contact Info
48Use Sixtyfour for additional enrichment:
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":"sixtyfour","path":"/enrich-lead"}'
55 "lead_info": {
56 "first_name": "John",
57 "last_name": "Doe",
58 "company": "Stripe",
59 "linkedin_url": "https://linkedin.com/in/johndoe"
60 },
61 "struct": {"email": "Work email", "phone": "Phone number"}
62}'
63```
64 
65### Step 4: Find Phone Number
66Use Sixtyfour to find phone:
67 
68```bash
69curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
70 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
71 -H "Content-Type: application/json" \
72 -d '{"api":"sixtyfour","path":"/find-phone"}'
73 "lead": {
74 "first_name": "John",
75 "last_name": "Doe",
76 "company": "Stripe"
77 }
78}'
79```
80 
81### Step 5: Enrich Company Data
82Get detailed company information:
83 
84```bash
85curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
86 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
87 -H "Content-Type: application/json" \
88 -d '{"api":"hunter","path":"/v2/companies/find","query":{"domain":"stripe.com"}}'
89```
90 
91### Step 6: Get LinkedIn Data
92Fetch real-time LinkedIn profile:
93 
94```bash
95curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
96 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
97 -H "Content-Type: application/json" \
98 -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/profile/single","body":{"identifier":"https://linkedin.com/in/johndoe"}}'
99```
100 
101## Full Enrichment Pipeline
102 
103```bash
104# 1. Start with name + company
105export NAME="John Doe"
106export COMPANY="Stripe"
107export DOMAIN="stripe.com"
108 
109# 2. Find email (Hunter)
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/email-finder","query":{"domain":"$DOMAIN","first_name":"John","last_name":"Doe"}}'
114 
115# 3. Verify 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. Get full lead profile (Sixtyfour)
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":"Stripe"},"struct":{"email":"Work email"}}}'
126 
127# 5. Find phone
128curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
129 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
130 -H "Content-Type: application/json" \
131 -d '{"api":"sixtyfour","path":"/find-phone","body":{"lead":{"first_name":"John","last_name":"Doe","company":"Stripe"}}}'
132 
133# 6. Get company details
134curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
135 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
136 -H "Content-Type: application/json" \
137 -d '{"api":"hunter","path":"/v2/companies/find","query":{"domain":"stripe.com"}}'
138```
139 
140## Tips
141 
142- Always verify emails before outreach
143- Use multiple sources for better coverage
144- LinkedIn URLs dramatically improve match rates
145- Cache results to avoid duplicate lookups
146 
147## Discover More
148 
149List all endpoints, or add a path for parameter details:
150 
151```bash
152curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
153 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
154 -H "Content-Type: application/json" \
155 -d '{"prompt":"fiber API endpoints"}' api show hunter
156curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
157 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
158 -H "Content-Type: application/json" \
159 -d '{"prompt":"sixtyfour API endpoints"}'
160 
161Example: `curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
162 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
163 -H "Content-Type: application/json" \
164 -d '{"api":"olostep","path":"/v1/scrapes`"}' for endpoint parameters.
165 

Discussion

Alternatives

Also in Company & contact data