Agent skill

Company Contact Finder

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

Find decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP.

MITAuto-check passedBackend & APIs

Install Company Contact Finder

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill company-contact-finder -a claude-code

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

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills company-contact-finder --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/company-contact-finder .claude/skills/company-contact-finder && 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
company-contact-finder
GitHub stars
1.2k
Used in
1 other repo
Token cost
~2.7k tokens
SKILL.md length
1,060 words
Files
2
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

Find decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP.

  • Works in 7 steps: Understand the Request → Apollo Search (Primary — cheapest at… → Evaluate Results → …
  • Tasks that involve GraphQL
  • SKILL.md covers Inputs, Procedure, Gooseworks MCP Tools Reference and Examples, plus 2 more sections
  • Reaches linkedin.com

What it does

Company Contact Finder is an agent skill from gooseworks-ai/goose-skills. Find decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP. Given a company name and target titles, returns a list of contacts with name, title, LinkedIn URL, and location.

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

It sits in Backend & APIs, covering GraphQL, OSINT and MCP servers. It works with LinkedIn and Model Context Protocol. 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

  • Tasks that involve GraphQL
  • Tasks that involve OSINT
  • Tasks that involve MCP servers

Example prompts

  • “/company-contact-finder”

Workflow steps

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

  1. Understand the Request
  2. Apollo Search (Primary — cheapest at $0.01/call)
  3. Evaluate Results
  4. Fiber Search (Fallback 1 — $0.02/record)
  5. Crustdata Structured Search (Fallback 2 — $0.66/page)
  6. PDL Search (Fallback 3 — $0.30/record, most expensive)
  7. Output

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json and yaml).

    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

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Company Contact Finder loads about 2.7k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,060 words of instructions outside code blocks.

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

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). 1,060 words, ~2,669 tokens.

Download SKILL.mdSave it as .claude/skills/company-contact-finder/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
company-contact-finder
description
Find decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP. Given a company name and target titles, returns a list of contacts with name, title, LinkedIn URL, and location.
tags
lead-generation

company-contact-finder

Find decision-makers at a specific company by name and target titles. Uses Gooseworks MCP tools (Apollo, Crustdata, Fiber, PDL) with a layered fallback strategy to maximize results while minimizing cost.

Inputs

InputRequiredDefaultDescription
company_nameYes--The company to search (e.g., "EisnerAmper")
company_linkedin_urlNo--Company LinkedIn URL for disambiguation
target_titlesYes--List of titles to find (e.g., ["Partner", "Controller", "VP Finance"])
num_resultsNo10How many contacts to return

Procedure

Step 1: Understand the Request

Parse the user's request to extract:

  • company_name (required) -- the company to search at
  • company_linkedin_url (optional) -- helps disambiguate common names
  • target_titles (required) -- list of job titles or roles to find (e.g., ["Partner", "Controller", "VP Finance", "CFO"])
  • num_results (optional, default 10) -- how many contacts to return

If the user does not provide target titles, ask for them. Suggest common senior titles based on context:

  • For accounting/CPA firms: Partner, Managing Director, Controller, CFO, VP Finance
  • For tech companies: VP Engineering, CTO, Head of Product, Director of Engineering
  • For general B2B: VP, Director, C-Level, Head of
Step 2: Apollo Search (Primary — cheapest at $0.01/call)

Apollo is the cheapest search provider. Start here for all searches.

Call:

apollo_person_search(
  person_titles: ["Partner", "Controller", "VP Finance"],
  organization_domains: ["eisneramper.com"],
  per_page: 25
)

If you don't have the company domain, use q_keywords with the company name:

apollo_person_search(
  person_titles: ["Partner", "Controller", "VP Finance"],
  q_keywords: "EisnerAmper",
  per_page: 25
)

Parse the response: Each result contains: name, title, company, LinkedIn URL, location, email, and other profile fields. Extract and collect all results into a working list.

Step 3: Evaluate Results

Check how many results from Step 2 match the target titles at the target company.

Quality checks:

  1. Filter out results where the company name does not match (fuzzy match is fine -- "EisnerAmper LLP" matches "EisnerAmper")
  2. Filter out results where the title does not reasonably match any target title
  3. Count remaining high-quality matches

Decision:

  • If 3+ quality matches found: skip to Step 7 (Output)
  • If fewer than 3 quality matches: proceed to Step 4
Step 4: Fiber Search (Fallback 1 — $0.02/record)

Fiber supports natural-language queries and may have profiles Apollo does not.

Call:

fiber_person_search(
  query: "[title1] OR [title2] OR [title3] at [company_name]",
  page_size: 25
)

After results return:

  1. Parse results (extract name, title, company, LinkedIn URL, location)
  2. Merge with all previous results
  3. Deduplicate by LinkedIn URL

Decision:

  • If 3+ total unique quality matches: skip to Step 7 (Output)
  • If still fewer than 3: proceed to Step 5
Step 5: Crustdata Structured Search (Fallback 2 — $0.66/page)

Use Crustdata's structured filter search for more precise matching. Run one search per target title, then merge results.

For each target title, call:

crustdata_person_search(
  conditions: [
    {"column": "current_employers.name", "type": "in", "value": "[company_name]"},
    {"column": "current_employers.title", "type": "(.)", "value": "[target_title]"}
  ],
  filter_op: "and",
  limit: 25
)

Example for "Partner" at EisnerAmper:

crustdata_person_search(
  conditions: [
    {"column": "current_employers.name", "type": "=", "value": "EisnerAmper"},
    {"column": "current_employers.title", "type": "(.)", "value": "Partner"}
  ],
  filter_op: "and",
  limit: 25
)

Optional seniority filter: If the user requests senior decision-makers broadly (rather than specific titles), add:

{"column": "current_employers.seniority_level", "type": "in", "value": "VP,C-Level,Director"}

TIP: Use preview: true first to check result count for free before fetching full data.

After all title searches complete:

  1. Merge all results into one list
  2. Deduplicate by LinkedIn URL (keep the first occurrence)
  3. Combine with results from previous steps

Decision:

  • If 3+ total unique quality matches: skip to Step 7 (Output)
  • If still fewer than 3: proceed to Step 6
Step 6: PDL Search (Fallback 3 — $0.30/record, most expensive)

PeopleDataLabs is the most expensive search provider. Only use as a last resort when other sources have insufficient results.

Call:

pdl_person_search(
  job_titles: ["Partner", "Controller", "VP Finance"],
  company_names: ["EisnerAmper"],
  num_results: 10
)

After results return:

  1. Parse results (extract name, title, company, LinkedIn URL, location)
  2. Merge with all previous results
  3. Deduplicate by LinkedIn URL
Step 7: Output

Present the final deduplicated contact list.

Table format (for the user):

#NameTitleCompanyLinkedIn URLLocation
1Jane SmithPartnerEisnerAmperhttps://linkedin.com/in/janesmithNew York, NY
2John DoeControllerEisnerAmperhttps://linkedin.com/in/johndoeChicago, IL
...

JSON format (for downstream skills):

json
{
  "company": "EisnerAmper",
  "search_titles": ["Partner", "Controller", "VP Finance"],
  "contacts": [
    {
      "name": "Jane Smith",
      "title": "Partner",
      "company": "EisnerAmper",
      "linkedin_url": "https://linkedin.com/in/janesmith",
      "location": "New York, NY"
    }
  ],
  "total_found": 10,
  "sources": ["apollo", "fiber", "crustdata", "pdl"]
}

Summary line:

Found X contacts matching [titles] at [company]. Sources used: [list of sources that returned results].

If fewer than 3 contacts were found after all fallbacks, tell the user:

Only found X contacts. The company may be small, the titles may be uncommon, or the databases may have limited coverage for this company. Consider broadening the target titles or trying alternate company name spellings.


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

Gooseworks MCP Tools Reference

Cost Comparison (25 results)
ProviderCostTool
Apollo$0.01 flatapollo_person_search
Fiber$0.50fiber_person_search
Crustdata$0.66/pagecrustdata_person_search
PDL$7.50pdl_person_search

Always start with Apollo. Escalate through Fiber → Crustdata → PDL only as fallbacks.

Tool Details
ToolPurposeKey Params
apollo_person_searchPeople search by title, location, company ($0.01/call)person_titles, person_locations, organization_domains, q_keywords, per_page
fiber_person_searchNL or structured people search ($0.02/record)query (NL), search_params (structured), page_size
crustdata_person_searchStructured filter search ($0.66/page of 100)conditions, filter_op, limit, preview
pdl_person_searchPDL people search ($0.30/record — last resort)job_titles, company_names, location_country, num_results
fetch_linkedin_profileEnrich a single person by LinkedIn URLlinkedin_url
Crustdata Filter Columns
ColumnOperatorsExample Values
current_employers.name= (exact), (.) (contains)"EisnerAmper"
current_employers.title(.) (fuzzy), = (exact)"Partner"
current_employers.seniority_level=, (.)"VP", "C-Level"
region="San Francisco"
skills(.)"python"

Examples

Basic: Find Partners and Controllers at EisnerAmper
Find Partners and Controllers at EisnerAmper

Agent calls apollo_person_search with person_titles: ["Partner", "Controller"], q_keywords: "EisnerAmper", per_page: 25.

With more titles: Find VP Finance and CFO at Sage Intacct users
Find VP Finance and CFO at companies using Sage Intacct

Agent builds query: "VP Finance OR CFO at Sage Intacct".

Senior leaders at a specific firm
Find Managing Directors at CPA firms in San Francisco

Agent builds query: "Managing Director at CPA firm San Francisco".

With a LinkedIn URL for disambiguation
Find Partners at EisnerAmper (https://linkedin.com/company/eisneramper)

Agent uses the company name "EisnerAmper" and can use the LinkedIn URL for enrichment if needed.


Troubleshooting

MCP tools not available / connection errors

The Gooseworks MCP tools require the Gooseworks MCP server to be configured in your environment. If you get errors like "tool not found" or connection failures:

  1. Check MCP server configuration: Ensure the Gooseworks MCP server is listed in your MCP configuration (e.g., claude_desktop_config.json or equivalent).
  2. Server URL: The Gooseworks server must be running and accessible. Check with your workspace admin for the correct server endpoint.
  3. Authentication: Gooseworks may require an API key or auth token. Ensure credentials are configured in your MCP server settings.
No results returned
  • Try alternate spellings of the company name (e.g., "EisnerAmper" vs "Eisner Amper" vs "EisnerAmper LLP")
  • Broaden target titles (e.g., add "Managing Director" alongside "Partner")
  • Use the structured search (Step 4) with fuzzy title matching (.) operator
  • Try Fiber, Crustdata, or PDL as fallback databases (Steps 4-6)
Too many irrelevant results
  • Add more specific title terms rather than broad ones
  • Use the structured search with the in operator for exact title matching instead of fuzzy (.)
  • Filter results by seniority_level to restrict to senior roles
Duplicate contacts across sources

The skill deduplicates by LinkedIn URL automatically. If you see near-duplicates with slightly different URLs (e.g., trailing slashes), normalize URLs before deduplication by stripping trailing slashes and query parameters.


Metadata

yaml
metadata:
  requires:
    mcp_servers: ["gooseworks"]
  cost: "From $0.01 (Apollo) to $7.50 (PDL) depending on provider and result count"

© 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/company-contact-finder 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

Company Contact Finder 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.

Company Contact Finder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Company Contact Finder this skillgooseworks-ai/goose-skills1.2k1 repos~2.7kAutomated safety check: PassMIT
SpikardGoldziher/spikard124—~799Automated safety check: PassMIT
QA Find Bugs MCPbex-co/beancount-io297—~3.1kAutomated safety check: PassMIT
Shopifyasgeirtj/system_prompts_leaks69k—~2kAutomated safety check: PassCC0-1.0
Thegraph MCP Skillholon-run/uxc116—~1.1kAutomated safety check: PassMIT
MondayLeoYeAI/openclaw-master-skills2.2k—~4.3kAutomated safety check: PassMIT

Similar skills

  • Spikard

    Goldziher/spikard

    Scaffold Spikard projects and generate code from OpenAPI, AsyncAPI, OpenRPC, GraphQL, and Protobuf schemas using the Spikard CLI or its MCP server.

    124 GitHub stars~799 tokensUpdated today
    Backend & APIsAuto-check passed
  • QA Find Bugs MCP

    bex-co/beancount-io

    Hunt bugs in the Beancount.io remote MCP server by driving the real POST /api-gateway/mcp endpoint with JSON-RPC and real MCP clients, checking transport, discovery, credential boundaries, tool and…

    297 GitHub stars~3.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Shopify

    asgeirtj/system_prompts_leaks

    Set up and operate a Shopify store with Shopify's official MCP server (the installed shopify command, NOT the npm Shopify CLI).

    69k GitHub stars~2k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Thegraph MCP Skill

    holon-run/uxc

    Use The Graph Subgraph MCP through UXC via native SSE with a fixed linked command for subgraph discovery, schema retrieval, deployment selection, and GraphQL query execution with help-first…

    116 GitHub stars~1.1k tokensUpdated 26 days ago
    Backend & APIsAuto-check passed
  • Monday

    LeoYeAI/openclaw-master-skills

    Manage monday.com boards, items, columns, groups, updates, and workflows via MCP server (preferred) and GraphQL API (fallback).

    2.2k GitHub stars~4.3k tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • Shopify AI Toolkit Wrapper

    jeremylongshore/tons-of-skills-marketplace

    Integrate Shopify's AI Toolkit MCP server with Claude Code for GraphQL validation, Liquid linting, and documentation search.

    2.8k GitHub stars~1.5k tokensUpdated yesterday
    Backend & APIsAuto-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 Company Contact Finder

What does Company Contact Finder do?

Find decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP. Company Contact Finder is an agent skill from gooseworks-ai/goose-skills. Find decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP.

When should I use Company Contact Finder?

Company Contact Finder fits situations like: tasks that involve GraphQL; tasks that involve OSINT; tasks that involve MCP servers.

How do I install Company Contact Finder in Claude Code?

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

How do I install Company Contact Finder in Codex?

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

Can I use Company Contact Finder 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 company-contact-finder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/company-contact-finder, .gemini/skills/company-contact-finder, .github/skills/company-contact-finder and .opencode/skills/company-contact-finder in your project.

What does Company Contact Finder need to run?

SKILL.md names no scripts, command-line tools or credentials: Company Contact Finder is instructions for the agent only.

Does Company Contact Finder access the network?

SKILL.md names 1 domain. In commands or code: linkedin.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Company Contact Finder 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 Company Contact Finder use?

Company Contact Finder 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 Company Contact Finder use?

About 2.7k tokens (SKILL.md is roughly 11k 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 Company Contact Finder?

Skills that share tags, products or a category with Company Contact Finder: Spikard (Goldziher/spikard, 124 stars), QA Find Bugs MCP (bex-co/beancount-io, 297 stars), Shopify (asgeirtj/system_prompts_leaks, 69k stars) and Thegraph MCP Skill (holon-run/uxc, 116 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Company Contact Finder?

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.