Enrich leads with email, phone
Lead Enrichment - Complete Contact Data

Enrich leads with email, phone, company data using multiple data sources
---
name: lead-enrichment
description: Enrich leads with email, phone, company data using multiple data sources
source: orthogonal
---
# Lead Enrichment - Complete Contact Data
## Setup
Read your credentials from ~/.gooseworks/credentials.json:
```bash
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`Overview
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
Manual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill lead-enrichment -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/lead-generation/capabilities/lead-enrichmentNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/dc4aef09a65789562366/lead-enrichment.zip" -OutFile "$env:TEMP\lead-enrichment.zip"; Expand-Archive "$env:TEMP\lead-enrichment.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md5.5 KBskill.meta.json286 B
Read the files here
gooseworks-ai/
Show the full text165 lines
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 | |
| 2 | name lead-enrichment |
| 3 | description Enrich leads with email, phone, company data using multiple data sources |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # Lead Enrichment - Complete Contact Data |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Enrich partial lead data with emails, phone numbers, and company information using multiple APIs. |
| 24 | |
| 25 | ## Workflow |
| 26 | |
| 27 | ### Step 1: Find Email Address |
| 28 | Use Hunter to find email: |
| 29 | |
| 30 | |
| 31 | curl -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 |
| 38 | Verify the email is deliverable: |
| 39 | |
| 40 | |
| 41 | curl -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 |
| 48 | Use Sixtyfour for additional enrichment: |
| 49 | |
| 50 | |
| 51 | curl -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 |
| 66 | Use Sixtyfour to find phone: |
| 67 | |
| 68 | |
| 69 | curl -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 |
| 82 | Get detailed company information: |
| 83 | |
| 84 | |
| 85 | curl -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 |
| 92 | Fetch real-time LinkedIn profile: |
| 93 | |
| 94 | |
| 95 | curl -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 | |
| 104 | # 1. Start with name + company |
| 105 | export NAME="John Doe" |
| 106 | export COMPANY="Stripe" |
| 107 | export DOMAIN="stripe.com" |
| 108 | |
| 109 | # 2. Find email (Hunter) |
| 110 | curl -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 |
| 116 | curl -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) |
| 122 | curl -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 |
| 128 | curl -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 |
| 134 | curl -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 | |
| 149 | List all endpoints, or add a path for parameter details: |
| 150 | |
| 151 | |
| 152 | curl -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 |
| 156 | curl -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 | |
| 161 | Example: `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 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 206 listings
Made with lead-enrichment

Similar skills
See all →
SkillAct as the company research engine for /sales research <urlCompany Research & Firmographic Analysis
SkillEthical people-finding and identity verificationPrivateinvestigator
SkillFree People Search to discover ICP-matching leadsApollo lead finder
SkillFind decision-makers at a specific company using ApolloCompany contact finder
SkillFind company funding history, investorsCompany funding search
SkillFull company intelligence reportCompany Intelligence - Comprehensive Company ReportsMore from gooseworks-ai
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze ad campaign performance data to identify what'sAd campaign analyzer
SkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzer
SkillAnalyze the message match between your ads and landing pagesAd to landing page auditor
SkillCheck and improve your brand's visibility across AI searchAeo
SkillSearch Amazon products - find items, compare pricesAmazon Product Search