Find decision-makers at a specific company using Crustdata and SixtyFour people search via Gooseworks MCP. Given a company name and target titles, returns a list of contacts with name, title, LinkedIn URL, and location.
npx gooseworks install --claude # Then in your agent: /gooseworks <prompt> --skill company-contact-finder
Find decision-makers at a specific company by name and target titles. Uses Gooseworks MCP tools (Crustdata + SixtyFour databases) with a layered fallback strategy to maximize results.
| Input | Required | Default | Description |
|---|---|---|---|
| company_name | Yes | -- | The company to search (e.g., "EisnerAmper") |
| company_linkedin_url | No | -- | Company LinkedIn URL for disambiguation |
| target_titles | Yes | -- | List of titles to find (e.g., ["Partner", "Controller", "VP Finance"]) |
| num_results | No | 10 | How many contacts to return |
Parse the user's request to extract:
If the user does not provide target titles, ask for them. Suggest common senior titles based on context:
This is the fastest and most flexible search method. Build a natural-language query and call the Crustdata NL search.
Build the query string: Join target titles with " OR " and append the company name:
"[title1] OR [title2] OR [title3] at [company_name]"Example:
"Partner OR Controller OR VP Finance at EisnerAmper"Call:
mcp__gooseworks__crustdata_nl_search(
query: "Partner OR Controller OR VP Finance at EisnerAmper",
num_results: 10
)Parse the response: Each result contains: name, title, company, LinkedIn URL, location, and other profile fields. Extract and collect all results into a working list.
Check how many results from Step 2 match the target titles at the target company.
Quality checks:
Decision:
Use Crustdata's structured filter search for more precise matching. Run one search per target title, then merge results.
For each target title, call:
mcp__gooseworks__crustdata_search(
filters: {
"op": "and",
"conditions": [
{"column": "current_employers.name", "type": "in", "value": ["[company_name]"]},
{"column": "current_employers.title", "type": "(.)", "value": "[target_title]"}
]
},
limit: 25
)Example for "Partner" at EisnerAmper:
mcp__gooseworks__crustdata_search(
filters: {
"op": "and",
"conditions": [
{"column": "current_employers.name", "type": "in", "value": ["EisnerAmper"]},
{"column": "current_employers.title", "type": "(.)", "value": "Partner"}
]
},
limit: 25
)Optional seniority filter: If the user requests senior decision-makers broadly (rather than specific titles), use the seniority_level filter:
{"column": "current_employers.seniority_level", "type": "in", "value": ["VP", "C-Level", "Director"]}After all title searches complete:
Decision:
SixtyFour is an alternative people database that may have profiles Crustdata does not.
Call:
mcp__gooseworks__sixtyfour_nl_search(
query: "[title1] OR [title2] OR [title3] at [company_name]",
num_results: 10,
timeout_ms: 30000
)After results return:
Present the final deduplicated contact list.
Table format (for the user):
| # | Name | Title | Company | LinkedIn URL | Location |
|---|---|---|---|---|---|
| 1 | Jane Smith | Partner | EisnerAmper | https://linkedin.com/in/janesmith | New York, NY |
| 2 | John Doe | Controller | EisnerAmper | https://linkedin.com/in/johndoe | Chicago, IL |
| ... |
JSON format (for downstream skills):
{
"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": ["crustdata_nl", "crustdata_structured", "sixtyfour"]
}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.
| Tool | Purpose | Key Params |
|---|---|---|
mcp__gooseworks__crustdata_nl_search | Natural-language people search | query (string), num_results (int, max 5000), exclude_profiles (LinkedIn URLs to skip) |
mcp__gooseworks__crustdata_search | Structured filter search | filters (JSON), limit (max 1000), offset (pagination) |
mcp__gooseworks__crustdata_preview | Preview result count before full search | query or filters |
mcp__gooseworks__crustdata_enrich | Enrich a single person by LinkedIn URL | linkedin_url |
mcp__gooseworks__sixtyfour_nl_search | Alternative NL people search | query, num_results (max 5000), timeout_ms (max 600000) |
| Column | Operators | Example Values |
|---|---|---|
current_employers.name | in (exact list) | ["EisnerAmper", "EisnerAmper LLP"] |
current_employers.title | (.) (fuzzy), in (exact) | "Partner", ["Partner", "Managing Partner"] |
current_employers.seniority_level | in | ["VP", "C-Level", "Director", "Manager"] |
current_employers.company_headcount_latest | =>, <= | 50, 1000 |
Find Partners and Controllers at EisnerAmperAgent builds query: "Partner OR Controller at EisnerAmper", calls crustdata_nl_search with num_results=10.
Find VP Finance and CFO at companies using Sage IntacctAgent builds query: "VP Finance OR CFO at Sage Intacct".
Find Managing Directors at CPA firms in San FranciscoAgent builds query: "Managing Director at CPA firm San Francisco".
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.
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:
claude_desktop_config.json or equivalent).(.) operatorin operator for exact title matching instead of fuzzy (.)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:
requires:
mcp_servers: ["gooseworks"]
cost: "Free (Gooseworks MCP usage)"Check and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Set up tracking, run visibility analyses, audit your website for AI readability, and get actionable recommendations. Uses the npx goose-aeo@latest CLI.
Extract competitor and customer intelligence from any company's landing page HTML. Discovers tech stack, analytics tools, ad pixels, customer logos, SEO metadata, CTAs, hidden elements, and more. No API keys required.
Discover all customers of a given company by scanning websites, case studies, review sites, press, social media, job postings, and more. Use when you need competitive intelligence on who a company sells to.