mcpbeat Sign in

Contact Finder Contactout Agent Skill

Find emails, phone numbers, and enrich profiles using ContactOut. LinkedIn enrichment, people search, company enrichment, and batch operations.

3k tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
1086
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/gooseworks-ai/goose-skills --skill contact-finder-contactout

What comes with it

306 bytes besides the instruction
skill.meta.json

The instruction itself

19 sections, as written by the author

ContactOut

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"

Sales and recruitment intelligence platform. Find anyone's email and phone number, enrich LinkedIn profiles, look up people from email or multiple signals, and get company info from domains.

When to Use

  • Find someone's email or phone from their LinkedIn profile
  • Enrich a person from name + company or email
  • Look up a profile from an email address
  • Get company information from a domain
  • Batch enrich multiple LinkedIn profiles
  • Estimate how many people match a search (free count)

Endpoints

1. LinkedIn Profile Enrichment

Get full profile details (email, phone, work history, education, skills) from a LinkedIn URL.

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/linkedin/enrich","query":{"profile":"https://www.linkedin.com/in/williamhgates"}}'

<details>

<summary>curl equivalent</summary>

curl -X POST "https://api.orth.sh/v1/run" \

  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/linkedin/enrich","query":{"profile":"https://www.linkedin.com/in/williamhgates"}}'

</details>

Parameters:

  • profile (required) - LinkedIn profile URL (must start with http and contain linkedin.com/in/)
  • profile_only (optional, boolean) - If true, returns profile without contact info (cheaper)

Returns: Full profile with emails, phones, work history, education, skills, company info, seniority, job function.


2. Contact Details from LinkedIn

Get just contact details (emails, phones) for a LinkedIn profile. Lighter than full 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":"contactout","path":"/v1/people/linkedin","query":{"profile":"https://www.linkedin.com/in/williamhgates","include_phone":"true"}}'

<details>

<summary>curl equivalent</summary>

curl -X POST "https://api.orth.sh/v1/run" \

  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/people/linkedin","query":{"profile":"https://www.linkedin.com/in/williamhgates","include_phone":"true"}}'

</details>

Parameters:

  • profile (required) - LinkedIn profile URL
  • include_phone (optional, boolean, default: false) - Include phone numbers
  • email_type (optional) - Filter emails: personal, work, personal,work, or none

3. Batch LinkedIn Enrichment (sync, up to 30)

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/people/linkedin/batch","body":{"profiles":["https://linkedin.com/in/person1","https://linkedin.com/in/person2"]}}'

Parameters:

  • profiles (required, array, max 30) - Array of LinkedIn profile URLs

4. Enrich from Email

Get profile details from an email address. Personal emails have higher match rates.

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

Parameters:

  • email (required) - Email address
  • include (optional) - Set to work_email to include work email in response

5. People Enrich (multi-signal)

Enrich a person using multiple data points. Needs at least one primary identifier (linkedin_url, email, or phone) or name + 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":"contactout","path":"/v1/people/enrich"}'
  "full_name": "Patrick Collison",
  "company": ["Stripe"],
  "company_domain": ["stripe.com"],
  "include": ["work_email", "personal_email", "phone"]
}'

Parameters:

  • linkedin_url (optional) - LinkedIn profile URL
  • email (optional) - Email address
  • phone (optional) - Phone number
  • full_name (optional) - Full name (or use first_name + last_name)
  • first_name / last_name (optional) - Used together
  • company (optional, array, max 10) - Company names
  • company_domain (optional, array, max 10) - Company domains
  • job_title (optional) - Job title
  • location (optional) - Location
  • education (optional, array, max 10) - Educational institutions
  • include (optional, array) - Data to include: work_email, personal_email, phone

Note: Name-only searches need at least one secondary param (company, domain, education, location, or job_title).


6. Domain Enrichment

Get company information from domain names.

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/domain/enrich","body":{"domains":["stripe.com","google.com"]}}'

Parameters:

  • domains (required, array, max 30) - Domain names

Returns: Company details including name, industry, size, revenue, funding, headquarters, LinkedIn URL, specialties.


7. People Count (free)

Count matching profiles without returning data. Use to estimate results before searching.

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/people/count","body":{"domain":["stripe.com"],"seniority":["VP","CXO","Director"]}}'

Parameters: Same search filters as People Search (name, job_title, company, domain, location, industry, seniority). Returns only total_results.

Cost: Free, no credits consumed.

Accepted Values (for People Count)

Seniority Levels

Owner / Founder, CXO, Partner, VP, Head, Director, Manager, Senior, Entry, Intern

Job Functions

Operations, Business Development, Sales, Education, Engineering, Healthcare Services, Information Technology, Administrative, Arts and Design, Customer Success and Support, Finance, Community and Social Services, Media and Communication, Accounting, Marketing, Human Resources, Research, Program and Project Management, Legal, Military and Protective Services, Consulting, Entrepreneurship, Real Estate, Quality Assurance, Purchasing, Product Management, Leadership

Company Size

1_10, 11_50, 51_200, 201_500, 501_1000, 1001_5000, 5001_10000, 10001

Industries

Computer Software, Internet, Financial Services, Hospital & Health Care, Marketing and Advertising, Information Technology and Services, Telecommunications, Management Consulting, Real Estate, Retail, and many more. Full list: https://docs.google.com/spreadsheets/d/14drLUuDLgxPflIsPNgV_w05N6guY4GtCCCd36zT4vg0

Examples

"Get Bill Gates' 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":"contactout","path":"/v1/linkedin/enrich","query":{"profile":"https://www.linkedin.com/in/williamhgates"}}'

"Look up who this email belongs to"

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

"Find Patrick Collison's contact info"

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/people/enrich","body":{"full_name":"Patrick Collison","company":["Stripe"],"include":["work_email","personal_email","phone"]}}'

"Get company info for stripe.com"

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/domain/enrich","body":{"domains":["stripe.com"]}}'

"How many CTOs are there at fintech companies in SF?"

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/people/count","body":{"job_title":["CTO"],"industry":["Financial Services"],"location":["San Francisco"]}}'

"Get contact details for these 3 LinkedIn profiles"

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"contactout","path":"/v1/people/linkedin/batch","body":{"profiles":["https://linkedin.com/in/person1","https://linkedin.com/in/person2","https://linkedin.com/in/person3"]}}'

Error Handling

  • 400 - Invalid parameter values. Check accepted values lists above (especially seniority and industry).
  • 404 - Person/company not found. Try different identifiers or broader search.
  • 429 - Rate limited. People Search: 60/min, Email Verify: 150/min, Others: 1000/min.

Tips

  • Use /v1/people/count first (free) to estimate results before committing to paid calls
  • Personal emails have higher match rates than work emails for email enrichment
  • For batch operations, v1 batch supports up to 30 profiles synchronously
  • People enrich works best with a LinkedIn URL as the primary identifier

Other skills for the same job

different authors, same section of the catalogue
Meeting Insights Analyzer
by frostant
×8

Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.

3k tokens
Slack Gif Creator
by JayZeeDesign
×7

Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".

53k tokens scripts
Developer Growth Analysis
by frostant
×6

Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.

4k tokens
Slack Gif Creator
by anthropics
vendor ×5

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.

11k tokens scripts
Skill Share
by frostant
×4

A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.

728 tokens
Electron
by vercel-labs
vendor ×2

Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.

2k tokens
Notion Meeting Intelligence
by openai
vendor ×2

Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.

18k tokens
Daily Meeting Update
by softaworks
×2

Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.

8k tokens scripts

How to use it

Copy the folder

Take gooseworks-ai/contact-finder-contactout from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference npx. Without those the skill loads but fails at the first command.