Agent skill

Comprehensive Enrichment

by gooseworks-ai in gooseworks-ai/goose-skills

Enrich any person or company from any identifier — email, name, LinkedIn URL, domain, company name, Twitter/X handle.

MITAuto-check passed

Install Comprehensive Enrichment

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill comprehensive-enrichment -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills comprehensive-enrichment --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/lead-generation/capabilities/comprehensive-enrichment .claude/skills/comprehensive-enrichment && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
comprehensive-enrichment
GitHub stars
1.2k
Used in
1 other repo
Token cost
~5.9k tokens
SKILL.md length
876 words
Files
2
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

Enrich any person or company from any identifier — email, name, LinkedIn URL, domain, company name, Twitter/X handle.

  • Works in 6 steps: Identifier Detection → Person Enrichment → Company Enrichment → …
  • Asked to enrich
  • SKILL.md covers Setup, 1. Identifier Detection, 2. Person Enrichment and 3. Company Enrichment, plus 3 more sections
  • Calls curl, python3 and npx; reaches linkedin.com and stripe.com; needs GOOSEWORKS_API_KEY

What it does

Comprehensive Enrichment is an agent skill from gooseworks-ai/goose-skills. Enrich any person or company from any identifier — email, name, LinkedIn URL, domain, company name, Twitter/X handle. Use when asked to enrich, look up, or research a lead, contact, person, or company.

Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).

It works with LinkedIn and X (Twitter). The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.

When your agent uses it

  • Asked to enrich
  • Research a lead

Example prompts

  • “/comprehensive-enrichment”

Requirements

  • Python 3
  • Node.js
  • A credential in GOOSEWORKS_API_KEY

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Identifier Detection
  2. Person Enrichment
  3. Company Enrichment
  4. Full Pipeline Example — enrich john@stripe.com
  5. Output Format
  6. Tips

What it can do on your machine

Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • python3
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • linkedin.com
    • stripe.com
    • x.com
    • api.gooseworks.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GOOSEWORKS_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Comprehensive Enrichment loads about 5.9k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 876 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~5.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 876 words, ~5,943 tokens.

Download SKILL.mdSave it as .claude/skills/comprehensive-enrichment/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
comprehensive-enrichment
description
Enrich any person or company from any identifier — email, name, LinkedIn URL, domain, company name, Twitter/X handle. Use when asked to enrich, look up, or research a lead, contact, person, or company.
source
orthogonal

Comprehensive Enrichment — Person & Company

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

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

Maximum data + correctness. Use ALL relevant APIs, cross-reference results, flag conflicts.

1. Identifier Detection

Detect input type, then route:

InputContainsRoute
Email@Person + Company (extract domain)
LinkedIn person URLlinkedin.com/in/Person + Company (from results)
LinkedIn company URLlinkedin.com/company/Company only
Domain*.com, *.io, etc.Company only
Company nameNo special patternCompany only
Name + company"John Doe at Stripe"Person + Company
Twitter/X handle@handle or x.com/Person + Company (from results)

Person always cascades to company. Once person enrichment reveals their employer (company name, domain, or LinkedIn company URL), automatically run full company enrichment too. The only time you skip company is if you truly can't identify one. If LinkedIn person URL provided: use full URL for Fiber calls, extract username/slug for other endpoints.

2. Person Enrichment

Run ALL of these in parallel where possible. Collect everything, then compile.

2a. Full Profile & Contact Info

Fiber kitchen-sink (accepts LinkedIn URL, email, or name+company):

bash
# By 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":"fiber","path":"/v1/kitchen-sink/person","body":{"profileIdentifier":"https://linkedin.com/in/johndoe"}}'

# By 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":"fiber","path":"/v1/kitchen-sink/person","body":{"emailAddress":"john@stripe.com"}}'

# By 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":"fiber","path":"/v1/kitchen-sink/person"}'
  "personName": {"fullName": "John Doe"},
  "companyName": {"name": "Stripe"},
  "companyDomain": {"domain": "stripe.com"}
}'

Nyne person search (async — deep work history, education, social):

bash
# Step 1: POST to start search
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"nyne","path":"/person/search","body":{"query":"John Doe Stripe"}}'
# Step 2: Poll with GET using request_id
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"nyne","path":"/person/search","query":{"request_id":"REQUEST_ID"}}'

Sixtyfour enrich-lead (AI-powered — slow, ~30-60s, but finds rich context):

bash
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": {"work_email": "Work email", "personal_email": "Personal email (Gmail, etc.)", "phone": "Phone number", "title": "Job title", "bio": "Short bio"}
}'
2b. Email — Find & Verify

Collect ALL emails — work AND personal. Many use cases (recruiting, etc.) need personal emails. Present each email with its type (work/personal) and verification status.

Find work email (cross-reference Hunter + Tomba):

bash
# Hunter (returns work 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"}}'

# Tomba (returns work email + sometimes personal)
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":"stripe.com","company":"Stripe","first_name":"John","last_name":"Doe"}}'

Find personal email — these sources often return personal (Gmail, etc.):

bash
# Tomba from LinkedIn (often returns personal 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":"tomba","path":"/v1/linkedin","query":{"url":"https://linkedin.com/in/johndoe"}}'

# Tomba enrich (returns all known emails for a person)
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/enrich","query":{"email":"john@stripe.com"}}'

Nyne person/search and Sixtyfour enrich-lead (Section 2a) also return personal emails — check their results.

Verify ALL found emails (run all three verifiers per email):

bash
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":"john@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":"tomba","path":"/v1/email-verifier","query":{"email":"john@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":"fiber","path":"/v1/validate-email/single","body":{"email":"john@stripe.com"}}'

Verify every email found — work and personal. Run verifiers in parallel across all emails.

2c. Phone
bash
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"}
}'
2d. Social Profiles & Activity

LinkedIn profile (Fiber):

bash
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"}}'

LinkedIn recent posts (Fiber):

bash
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-posts","body":{"identifier":"https://linkedin.com/in/johndoe"}}'

Twitter/X activity (Nyne — async, returns tweets + engagement metrics):

bash
# Step 1: POST with Twitter 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":"","path":"","body":{"social_media_url":"https://x.com/HANDLE"}}'
# Step 2: Poll with GET
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"nyne","path":"/person/newsfeed","query":{"request_id":"REQUEST_ID"}}'
2e. Open-Ended Research
bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/search"}'
  "q": "John Doe Stripe VP Engineering recent news interviews talks",
  "depth": "deep",
  "outputType": "sourcedAnswer"
}'
2f. Compile Person Data

Cross-reference all API results. Merge name, title, emails (work + personal with verification status), phone, LinkedIn, Twitter, work history, education, and recent activity. When APIs disagree, keep both values with source labels. Once employer is identified, run full company enrichment (Section 3). See Section 5 for output formatting.

3. Company Enrichment

Run ALL of these in parallel where possible.

3a. Overview

Brand.dev (industry, size, description, logo):

bash
# By domain (primary):
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"}}'

# By company name (if no domain):
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-by-name","query":{"name":"Stripe"}}'

# By email (extracts domain):
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-by-email","query":{"email":"john@stripe.com"}}'

Hunter company data:

bash
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"}}'

Fiber company data (LinkedIn-enriched):

bash
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/kitchen-sink/company","body":{"companyDomain":{"domain":"stripe.com"}}}'
3b. Leadership & Employees

Key people by title:

bash
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/natural-language-search/profiles","body":{"query":"CEO, CTO, CFO, COO, VP at Stripe","pageSize":10}}'
3c. Funding

Nyne funding history (async):

bash
# Step 1: POST
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"","path":"","body":{"company_name":"Stripe"}}'
# Step 2: Poll with GET
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"nyne","path":"/company/funding","query":{"request_id":"REQUEST_ID"}}'

Nyne investors:

bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"","path":"","body":{"company_domain":"stripe.com"}}'
3d. Products & Web Presence

Products from website:

bash
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/ai/products","body":{"domain":"stripe.com"}}'

Scrape for pricing/features:

bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"scrapegraph","path":"/v1/smartscraper"}'
  "website_url": "https://stripe.com/pricing",
  "user_prompt": "Extract all products, pricing tiers, and features"
}'

Find competitors/similar companies:

bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"exa","path":"/findSimilar"}'
  "url": "https://stripe.com",
  "numResults": 10,
  "contents": {"text": true}
}'
3e. Open-Ended Research
bash
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/search"}'
  "q": "Stripe recent news funding announcements partnerships press releases",
  "depth": "deep",
  "outputType": "sourcedAnswer"
}'
3f. Compile Company Data

Cross-reference all API results. Merge overview, leadership, funding, products, competitors, news, and social presence. When APIs disagree, keep both values with source labels. See Section 5 for output formatting.

4. Full Pipeline Example — enrich john@stripe.com

Step 1: Detect — Email → person enrichment + extract domain stripe.com for company.

Step 2: Person enrichment (run in parallel):

bash
# Profile (3 sources)
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/kitchen-sink/person","body":{"emailAddress":"john@stripe.com","companyDomain":{"domain":"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":"nyne","path":"/person/search","body":{"query":"john 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":"sixtyfour","path":"/enrich-lead","body":{"lead_info":{"email":"john@stripe.com","company":"Stripe"},"struct":{"work_email":"Work email","personal_email":"Personal email","phone":"Phone","title":"Title","bio":"Bio"}}}'

# Find personal 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":"tomba","path":"/v1/enrich","query":{"email":"john@stripe.com"}}'

# Verify work email (3 sources)
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":"john@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":"tomba","path":"/v1/email-verifier","query":{"email":"john@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":"fiber","path":"/v1/validate-email/single","body":{"email":"john@stripe.com"}}'
# Also verify any personal emails found with the same 3 verifiers

# 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":{"email":"john@stripe.com","company":"Stripe"}}}'

# Research
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/search","body":{"q":"john stripe.com","depth":"deep","outputType":"sourcedAnswer"}}'

Once you have the person's full name + LinkedIn from Step 2, fire off:

bash
# LinkedIn profile + posts
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":"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":"fiber","path":"/v1/linkedin-live-fetch/profile-posts","body":{"identifier":"LINKEDIN_URL"}}'

# Twitter (if discovered)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"","path":"","body":{"social_media_url":"https://x.com/TWITTER_HANDLE"}}'

Step 3: Company enrichment (run in parallel with person):

bash
# Overview
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"}}'
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"}}'
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/kitchen-sink/company","body":{"companyDomain":{"domain":"stripe.com"}}}'

# Leadership
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/natural-language-search/profiles","body":{"query":"CEO, CTO, CFO, COO, VP at Stripe","pageSize":10}}'

# Funding
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"","path":"","body":{"company_name":"Stripe"}}'
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"","path":"","body":{"company_domain":"stripe.com"}}'

# Products & competitors
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/ai/products","body":{"domain":"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":"scrapegraph","path":"/v1/smartscraper","body":{"website_url":"https://stripe.com/pricing","user_prompt":"Extract all products, pricing tiers, and features"}}'
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"exa","path":"/findSimilar","body":{"url":"https://stripe.com","numResults":10}}'

# News
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"linkup","path":"/search","body":{"q":"Stripe recent news funding announcements","depth":"deep","outputType":"sourcedAnswer"}}'

Step 4: Compile & Format — Merge all results, cross-reference, flag conflicts, then present using the two-tier output format (Section 5): summary card first, full details below.

Show full SKILL.md (357 more words)Show less

5. Output Format

Always present results in two tiers: a scannable summary card on top, then full details below.

Tier 1: Summary Card

Lead with this. A sales rep should be able to scan it in 30 seconds.

For a Person (+ their company):

## 🔍 {Full Name} — {Title} at {Company}

**Contact**
- ✉️ Work: {email} ({verification status})
- ✉️ Personal: {email} ({verification status})
- 📱 {phone}
- 🔗 LinkedIn: {url}
- 𝕏 Twitter: {url}

**Bio**: {One-liner from best available source}

**Personalization Angles**
1. {Recent activity, talk, post, or news mention — with date}
2. {Another angle}
3. {Another angle}

**Company Snapshot**: {Company} · {industry} · {employee count} employees · HQ: {location}
Latest funding: {round type} — ${amount} ({date}) · Total raised: ${total} · Valuation: ${valuation}

For a Company (standalone):

## 🏢 {Company Name}

**Overview**
- 🌐 {domain}
- 🏷️ {industry}
- 👥 {employee count} employees
- 📍 HQ: {location}

**Funding**: {latest round} — ${amount} ({date}) · Total raised: ${total} · Valuation: ${valuation}

**Key Decision Makers**
| Name | Title | Email |
|------|-------|-------|
| {name} | {title} | {email} |
| ... | ... | ... |

**Recent News & Icebreakers**
1. {headline — date — source}
2. {headline — date — source}
3. {headline — date — source}
Tier 2: Full Details

Below a clear separator (---), include the complete deep-dive for those who want to dig in:

  • Person: Full work history, education, all social profiles, all LinkedIn posts, all tweets + engagement, publications, full Linkup research, all email sources + verification breakdown
  • Company: Full description, all funding rounds with dates/amounts/investors, complete leadership list, products + pricing tiers, competitor analysis, full news results, social presence stats

Present Tier 2 with clear section headers. Include source labels on every data point. Flag all conflicts between APIs.

6. Tips

  • Parallelize: Run all independent API calls concurrently — person and company enrichment can run simultaneously
  • Nyne is async: POST returns request_id, poll with GET until status is complete (5-20 seconds)
  • Conflicts: When APIs disagree, show both values with source labels — never silently pick one
  • LinkedIn URLs: Dramatically improve match rates for Fiber and Tomba — extract from any source that returns them
  • All emails matter: Always collect both work AND personal emails — recruiting and hiring use cases need personal emails. Label each as work/personal
  • Email verification: Verify every email (work + personal) with all 3 verifiers (Hunter, Tomba, Fiber) and take consensus
  • Person → Company: Person enrichment always cascades — once you identify their employer, run full company enrichment automatically
  • Linkup deep search: Best for personalization angles — recent talks, interviews, blog posts, news mentions
  • Sixtyfour enrich-lead is slow: Takes 30-60 seconds (AI web research). Fire it early, don't block on it — continue processing other API results and merge Sixtyfour data when it arrives
  • Nyne newsfeed for Twitter/X: Pass the Twitter URL to get recent tweets + engagement. Async like other Nyne endpoints
  • Adaptive: Skip APIs that don't apply (e.g., don't run email-finder if email is already known, don't run funding search for public megacorps)
  • Tomba linkedin: If you have a LinkedIn URL but no email, Tomba's LinkedIn finder is very effective
  • Company from email: Brand.dev's retrieve-by-email endpoint handles domain extraction automatically

© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/lead-generation/capabilities/comprehensive-enrichment of gooseworks-ai/goose-skills.

  • SKILL.md
  • skill.meta.json

Open the folder on GitHubat commit c650c6d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 9, 2026.

Compare with similar skills

Comprehensive Enrichment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Comprehensive Enrichment compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Comprehensive Enrichment this skillgooseworks-ai/goose-skills1.2k1 repos~5.9kAutomated safety check: PassMIT
Socialcoreyhaines31/marketingskills54k4 repos~4.5kAutomated safety check: PassMIT
Banner Design Systemnextlevelbuilder/ui-ux-pro-max-skill135k1 repos~1.8kAutomated safety check: PassMIT
Agent ReachPanniantong/Agent-Reach95k—~1.4kAutomated safety check: PassMIT
Social Contentfreekmurze/dotfiles1k23 repos~2.1kAutomated safety check: PassNone
Browser Automation Edge Casesaden-hive/hive11k—~1.8kAutomated safety check: PassMIT

Similar skills

  • Social

    coreyhaines31/marketingskills

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, or Facebook, or wants to do social listening and engagement triage.

    54k GitHub starsUsed in 4 repos~4.5k tokens
    Writing & ContentAuto-check passed
  • Banner Design System

    nextlevelbuilder/ui-ux-pro-max-skill

    Walks through designing a banner for social media, ads, a website hero or print, from gathering requirements to building 2 or 3 art-direction options in HTML and CSS.

    135k GitHub starsUsed in 1 repo~1.8k tokens
    Frontend & DesignAuto-check passed
  • Agent Reach

    Panniantong/Agent-Reach

    Routes web research and platform lookups across 16 sites, including Twitter, Reddit, YouTube, Bilibili, Xiaohongshu and GitHub, through one command-line tool.

    95k GitHub stars~1.4k tokensUpdated 3 days ago
    Productivity & AutomationAuto-check passed
  • Social Content

    freekmurze/dotfiles

    When the user wants help creating, scheduling, or optimizing social media content for LinkedIn, Twitter/X, Instagram, TikTok, Facebook, or other platforms.

    1k GitHub starsUsed in 23 repos~2.1k tokens
    Writing & ContentAuto-check passed
  • Step-by-step procedure for debugging browser automation failures on complex sites such as LinkedIn, Twitter/X, single-page apps and Shadow DOM pages.

    11k GitHub stars~1.8k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Web Asset Generator

    alonw0/web-asset-generator

    Generate web assets including favicons, app icons (PWA), and social media meta images (Open Graph) for Facebook, Twitter, WhatsApp, and LinkedIn.

    514 GitHub starsUsed in 1 repo~6.6k tokens
    Media & CreativeAuto-check passed

More from gooseworks-ai/goose-skills

All 273 skills in this repo
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Create Image Fal

    gooseworks-ai/goose-skills

    Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.

    1.2k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Render Hook Replacement

    gooseworks-ai/goose-skills

    Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Blog Feed Monitor

    gooseworks-ai/goose-skills

    Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.

    1.2k GitHub starsUsed in 1 repo~578 tokens
    Auto-check passed
  • Competitor Post Engagers

    gooseworks-ai/goose-skills

    Find leads by scraping engagers from a competitor's top LinkedIn posts.

    1.2k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes
  • Render Chatgpt Chat

    gooseworks-ai/goose-skills

    Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Questions about Comprehensive Enrichment

What does Comprehensive Enrichment do?

Enrich any person or company from any identifier — email, name, LinkedIn URL, domain, company name, Twitter/X handle. Comprehensive Enrichment is an agent skill from gooseworks-ai/goose-skills. Enrich any person or company from any identifier — email, name, LinkedIn URL, domain, company name, Twitter/X handle.

When should I use Comprehensive Enrichment?

Comprehensive Enrichment fits situations like: asked to enrich; research a lead.

How do I install Comprehensive Enrichment in Claude Code?

Run `npx skills add gooseworks-ai/goose-skills --skill comprehensive-enrichment -a claude-code`. Or copy the skill folder (skills/lead-generation/capabilities/comprehensive-enrichment in gooseworks-ai/goose-skills) into .claude/skills/comprehensive-enrichment in your project. Claude Code loads it when a task matches its description.

How do I install Comprehensive Enrichment in Codex?

Run `npx skills add gooseworks-ai/goose-skills --skill comprehensive-enrichment -a codex`. Or copy the skill folder (skills/lead-generation/capabilities/comprehensive-enrichment in gooseworks-ai/goose-skills) into .agents/skills/comprehensive-enrichment in your project. Codex loads it when a task matches its description.

Can I use Comprehensive Enrichment in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill comprehensive-enrichment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/comprehensive-enrichment, .gemini/skills/comprehensive-enrichment, .github/skills/comprehensive-enrichment and .opencode/skills/comprehensive-enrichment in your project.

What does Comprehensive Enrichment need to run?

Going by SKILL.md and its folder, Comprehensive Enrichment needs the command-line tools its instructions call (curl, python3 and npx) and credentials named GOOSEWORKS_API_KEY. Our summary lists: Python 3; Node.js; A credential in GOOSEWORKS_API_KEY.

Does Comprehensive Enrichment access the network?

SKILL.md names 4 domains. In commands or code: linkedin.com, stripe.com, x.com and api.gooseworks.ai; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Comprehensive Enrichment safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Comprehensive Enrichment use?

Comprehensive Enrichment is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Comprehensive Enrichment use?

About 5.9k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Comprehensive Enrichment?

Skills that share tags, products or a category with Comprehensive Enrichment: Social (coreyhaines31/marketingskills, 54k stars), Banner Design System (nextlevelbuilder/ui-ux-pro-max-skill, 135k stars), Agent Reach (Panniantong/Agent-Reach, 95k stars) and Social Content (freekmurze/dotfiles, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Comprehensive Enrichment?

gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.

Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.