Find email by name

Find someone's email address given their name and company

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/find-email-by-name#main ~/.claude/skills/find-email-by-name

For one project only, change the path to .claude/skills/find-email-by-name.

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 text132 lines
find-email-by-name/SKILL.md132 lines4.9 KBpushed 96d agoRawView on GitHub

Find Email by Name

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"

Find a person's email address when you know their name and company/domain. Essential for sales outreach, recruiting, and professional networking.

When to Use

  • User needs to contact someone at a company
  • User asks "what's [person]'s email at [company]?"
  • User wants to reach out to a specific person
  • Sales prospecting or lead generation
  • Recruiting outreach

How It Works

Uses Hunter or Tomba APIs to find the most likely email address for a person based on their name and company domain.

Usage

Find Email with 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":"stripe.com","first_name":"Patrick","last_name":"Collison"}}'

Find Email with Tomba

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"tomba","path":"/v1/email-finder","query":{"domain":"intercom.com","company":"Intercom","first_name":"Eoghan","last_name":"McCabe"}}'

Find from 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":"tomba","path":"/v1/linkedin","query":{"url":"https://linkedin.com/in/johndoe"}}'

Parameters

Hunter

  • domain (required) - Company domain (e.g., stripe.com)
  • first_name (required) - Person's first name
  • last_name (required) - Person's last name
  • company (optional) - Company name (alternative to domain)

Tomba

  • domain (required) - Company domain
  • company (required) - Company name (3-75 chars)
  • first_name / last_name or full_name - Person's name
  • enrich_mobile (optional) - Set to true to include phone number

Response

Hunter Response

Returns data object:

  • email (string) - The found email address
  • score (integer) - Confidence 0-100 (higher = more likely correct)
  • domain (string) - Company domain searched
  • accept_all (boolean) - Whether server accepts any address
  • company (string) - Company name
  • position (string|null) - Job title if known
  • twitter (string|null) - Twitter handle if known
  • linkedin_url (string|null) - LinkedIn profile URL if known
  • phone_number (string|null) - Phone if known
  • sources (array) - Web pages where this email appeared
  • verification (object) - date and status (valid/invalid/unknown)

Tomba Response

Returns data.email object with email address and confidence data. Also includes web sources where the email was found.

Examples

User: "Find the email for Sarah Chen at Notion"

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":"notion.so","first_name":"Sarah","last_name":"Chen"}}'

User: "I need to contact John Smith who works at Google"

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

Error Handling

  • 400 - Missing required parameters (Hunter needs domain + first_name + last_name)
  • 422 - Tomba validation error — ensure both domain and company are provided
  • 429 - Rate limit exceeded — wait and retry
  • Score of 0 means no match found — try alternate name spellings or a different API
  • If Hunter returns accept_all: true, the email format may be correct but the specific mailbox can't be confirmed

Tips

  • Use the company's main domain (not subdomains)
  • Try both Hunter and Tomba if one doesn't find results
  • Check confidence scores - high confidence means the email is likely correct
  • Always verify important emails before sending cold outreach
  • For LinkedIn profiles, Tomba's LinkedIn finder is very effective
1---
2name: find-email-by-name
3description: Find someone's email address given their name and company
4source: orthogonal
5---
6 
7 
8# Find Email by Name
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 
23Find a person's email address when you know their name and company/domain. Essential for sales outreach, recruiting, and professional networking.
24 
25## When to Use
26 
27- User needs to contact someone at a company
28- User asks "what's [person]'s email at [company]?"
29- User wants to reach out to a specific person
30- Sales prospecting or lead generation
31- Recruiting outreach
32 
33## How It Works
34 
35Uses Hunter or Tomba APIs to find the most likely email address for a person based on their name and company domain.
36 
37## Usage
38 
39### Find Email with Hunter
40 
41```bash
42curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
43 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
44 -H "Content-Type: application/json" \
45 -d '{"api":"hunter","path":"/v2/email-finder","query":{"domain":"stripe.com","first_name":"Patrick","last_name":"Collison"}}'
46```
47 
48### Find Email with Tomba
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":"tomba","path":"/v1/email-finder","query":{"domain":"intercom.com","company":"Intercom","first_name":"Eoghan","last_name":"McCabe"}}'
55```
56 
57### Find from LinkedIn Profile
58 
59```bash
60curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
61 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
62 -H "Content-Type: application/json" \
63 -d '{"api":"tomba","path":"/v1/linkedin","query":{"url":"https://linkedin.com/in/johndoe"}}'
64```
65 
66## Parameters
67 
68### Hunter
69- **domain** (required) - Company domain (e.g., stripe.com)
70- **first_name** (required) - Person's first name
71- **last_name** (required) - Person's last name
72- **company** (optional) - Company name (alternative to domain)
73 
74### Tomba
75- **domain** (required) - Company domain
76- **company** (required) - Company name (3-75 chars)
77- **first_name** / **last_name** or **full_name** - Person's name
78- **enrich_mobile** (optional) - Set to `true` to include phone number
79 
80## Response
81 
82### Hunter Response
83Returns `data` object:
84- **email** (string) - The found email address
85- **score** (integer) - Confidence 0-100 (higher = more likely correct)
86- **domain** (string) - Company domain searched
87- **accept_all** (boolean) - Whether server accepts any address
88- **company** (string) - Company name
89- **position** (string|null) - Job title if known
90- **twitter** (string|null) - Twitter handle if known
91- **linkedin_url** (string|null) - LinkedIn profile URL if known
92- **phone_number** (string|null) - Phone if known
93- **sources** (array) - Web pages where this email appeared
94- **verification** (object) - `date` and `status` (`valid`/`invalid`/`unknown`)
95 
96### Tomba Response
97Returns `data.email` object with email address and confidence data. Also includes web sources where the email was found.
98 
99## Examples
100 
101**User:** "Find the email for Sarah Chen at Notion"
102```bash
103curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
104 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
105 -H "Content-Type: application/json" \
106 -d '{"api":"hunter","path":"/v2/email-finder","query":{"domain":"notion.so","first_name":"Sarah","last_name":"Chen"}}'
107```
108 
109**User:** "I need to contact John Smith who works at Google"
110```bash
111curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
112 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
113 -H "Content-Type: application/json" \
114 -d '{"api":"tomba","path":"/v1/email-finder","query":{"domain":"google.com","company":"Google","first_name":"John","last_name":"Smith"}}'
115```
116 
117## Error Handling
118 
119- **400** - Missing required parameters (Hunter needs `domain` + `first_name` + `last_name`)
120- **422** - Tomba validation error — ensure both `domain` and `company` are provided
121- **429** - Rate limit exceeded — wait and retry
122- Score of 0 means no match found — try alternate name spellings or a different API
123- If Hunter returns `accept_all: true`, the email format may be correct but the specific mailbox can't be confirmed
124 
125## Tips
126 
127- Use the company's main domain (not subdomains)
128- Try both Hunter and Tomba if one doesn't find results
129- Check confidence scores - high confidence means the email is likely correct
130- Always verify important emails before sending cold outreach
131- For LinkedIn profiles, Tomba's LinkedIn finder is very effective
132 

Discussion

Alternatives

Also in Company & contact data