New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Find decision-makers at a specific company using Apollo

Company contact finder

by gooseworks-ai · MIT license · ★ 1,220 on GitHub · updated Sep 21

Company contact finder cover

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.

---
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

| Input | Required | Default | Description |
|-------|----------|---------|-------------|
| company_name | Yes | -- | The company to search (e.g., "EisnerAmper") |

Overview

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.

Manual install (npx, ZIP)
Claude Codenpx skills add gooseworks-ai/goose-skills --skill company-contact-finder -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \ | tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/lead-generation/capabilities/company-contact-finder
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/30ac2256442c8866dfa4/company-contact-finder.zip" -OutFile "$env:TEMP\company-contact-finder.zip"; Expand-Archive "$env:TEMP\company-contact-finder.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md10.4 KB
  • skill.meta.json274 B
Read the files here
gooseworks-ai/615c6852 files
SKILL.md
Show the full text299 lines

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

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

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):

# 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": ["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.


Gooseworks MCP Tools Reference

Cost Comparison (25 results)
Provider Cost Tool
Apollo $0.01 flat apollo_person_search
Fiber $0.50 fiber_person_search
Crustdata $0.66/page crustdata_person_search
PDL $7.50 pdl_person_search

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

Tool Details
Tool Purpose Key Params
apollo_person_search People search by title, location, company ($0.01/call) person_titles, person_locations, organization_domains, q_keywords, per_page
fiber_person_search NL or structured people search ($0.02/record) query (NL), search_params (structured), page_size
crustdata_person_search Structured filter search ($0.66/page of 100) conditions, filter_op, limit, preview
pdl_person_search PDL people search ($0.30/record — last resort) job_titles, company_names, location_country, num_results
fetch_linkedin_profile Enrich a single person by LinkedIn URL linkedin_url
Crustdata Filter Columns
Column Operators Example 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

metadata:
  requires:
    mcp_servers: ["gooseworks"]
  cost: "From $0.01 (Apollo) to $7.50 (PDL) depending on provider and result count"
1---
2name: company-contact-finder
3description: >
4 Find decision-makers at a specific company using Apollo, Crustdata, Fiber,
5 and PDL people search via Gooseworks MCP. Given a company name and target
6 titles, returns a list of contacts with name, title, LinkedIn URL, and location.
7tags: [lead-generation]
8---
9 
10# company-contact-finder
11 
12Find 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.
13 
14## Inputs
15 
16| Input | Required | Default | Description |
17|-------|----------|---------|-------------|
18| company_name | Yes | -- | The company to search (e.g., "EisnerAmper") |
19| company_linkedin_url | No | -- | Company LinkedIn URL for disambiguation |
20| target_titles | Yes | -- | List of titles to find (e.g., ["Partner", "Controller", "VP Finance"]) |
21| num_results | No | 10 | How many contacts to return |
22 
23## Procedure
24 
25### Step 1: Understand the Request
26 
27Parse the user's request to extract:
28- **company_name** (required) -- the company to search at
29- **company_linkedin_url** (optional) -- helps disambiguate common names
30- **target_titles** (required) -- list of job titles or roles to find (e.g., ["Partner", "Controller", "VP Finance", "CFO"])
31- **num_results** (optional, default 10) -- how many contacts to return
32 
33If the user does not provide target titles, ask for them. Suggest common senior titles based on context:
34- For accounting/CPA firms: Partner, Managing Director, Controller, CFO, VP Finance
35- For tech companies: VP Engineering, CTO, Head of Product, Director of Engineering
36- For general B2B: VP, Director, C-Level, Head of
37 
38### Step 2: Apollo Search (Primary — cheapest at $0.01/call)
39 
40Apollo is the cheapest search provider. Start here for all searches.
41 
42**Call:**
43```
44apollo_person_search(
45 person_titles: ["Partner", "Controller", "VP Finance"],
46 organization_domains: ["eisneramper.com"],
47 per_page: 25
48)
49```
50 
51If you don't have the company domain, use `q_keywords` with the company name:
52```
53apollo_person_search(
54 person_titles: ["Partner", "Controller", "VP Finance"],
55 q_keywords: "EisnerAmper",
56 per_page: 25
57)
58```
59 
60**Parse the response:**
61Each result contains: name, title, company, LinkedIn URL, location, email, and other profile fields. Extract and collect all results into a working list.
62 
63### Step 3: Evaluate Results
64 
65Check how many results from Step 2 match the target titles at the target company.
66 
67**Quality checks:**
681. Filter out results where the company name does not match (fuzzy match is fine -- "EisnerAmper LLP" matches "EisnerAmper")
692. Filter out results where the title does not reasonably match any target title
703. Count remaining high-quality matches
71 
72**Decision:**
73- If 3+ quality matches found: skip to Step 7 (Output)
74- If fewer than 3 quality matches: proceed to Step 4
75 
76### Step 4: Fiber Search (Fallback 1 — $0.02/record)
77 
78Fiber supports natural-language queries and may have profiles Apollo does not.
79 
80**Call:**
81```
82fiber_person_search(
83 query: "[title1] OR [title2] OR [title3] at [company_name]",
84 page_size: 25
85)
86```
87 
88**After results return:**
891. Parse results (extract name, title, company, LinkedIn URL, location)
902. Merge with all previous results
913. Deduplicate by LinkedIn URL
92 
93**Decision:**
94- If 3+ total unique quality matches: skip to Step 7 (Output)
95- If still fewer than 3: proceed to Step 5
96 
97### Step 5: Crustdata Structured Search (Fallback 2 — $0.66/page)
98 
99Use Crustdata's structured filter search for more precise matching. Run one search per target title, then merge results.
100 
101**For each target title, call:**
102```
103crustdata_person_search(
104 conditions: [
105 {"column": "current_employers.name", "type": "in", "value": "[company_name]"},
106 {"column": "current_employers.title", "type": "(.)", "value": "[target_title]"}
107 ],
108 filter_op: "and",
109 limit: 25
110)
111```
112 
113**Example for "Partner" at EisnerAmper:**
114```
115crustdata_person_search(
116 conditions: [
117 {"column": "current_employers.name", "type": "=", "value": "EisnerAmper"},
118 {"column": "current_employers.title", "type": "(.)", "value": "Partner"}
119 ],
120 filter_op: "and",
121 limit: 25
122)
123```
124 
125**Optional seniority filter:** If the user requests senior decision-makers broadly (rather than specific titles), add:
126```
127{"column": "current_employers.seniority_level", "type": "in", "value": "VP,C-Level,Director"}
128```
129 
130**TIP:** Use `preview: true` first to check result count for free before fetching full data.
131 
132**After all title searches complete:**
1331. Merge all results into one list
1342. Deduplicate by LinkedIn URL (keep the first occurrence)
1353. Combine with results from previous steps
136 
137**Decision:**
138- If 3+ total unique quality matches: skip to Step 7 (Output)
139- If still fewer than 3: proceed to Step 6
140 
141### Step 6: PDL Search (Fallback 3 — $0.30/record, most expensive)
142 
143PeopleDataLabs is the most expensive search provider. Only use as a last resort when other sources have insufficient results.
144 
145**Call:**
146```
147pdl_person_search(
148 job_titles: ["Partner", "Controller", "VP Finance"],
149 company_names: ["EisnerAmper"],
150 num_results: 10
151)
152```
153 
154**After results return:**
1551. Parse results (extract name, title, company, LinkedIn URL, location)
1562. Merge with all previous results
1573. Deduplicate by LinkedIn URL
158 
159### Step 7: Output
160 
161Present the final deduplicated contact list.
162 
163**Table format (for the user):**
164 
165| # | Name | Title | Company | LinkedIn URL | Location |
166|---|------|-------|---------|--------------|----------|
167| 1 | Jane Smith | Partner | EisnerAmper | https://linkedin.com/in/janesmith | New York, NY |
168| 2 | John Doe | Controller | EisnerAmper | https://linkedin.com/in/johndoe | Chicago, IL |
169| ... | | | | | |
170 
171**JSON format (for downstream skills):**
172 
173```json
174{
175 "company": "EisnerAmper",
176 "search_titles": ["Partner", "Controller", "VP Finance"],
177 "contacts": [
178 {
179 "name": "Jane Smith",
180 "title": "Partner",
181 "company": "EisnerAmper",
182 "linkedin_url": "https://linkedin.com/in/janesmith",
183 "location": "New York, NY"
184 }
185 ],
186 "total_found": 10,
187 "sources": ["apollo", "fiber", "crustdata", "pdl"]
188}
189```
190 
191**Summary line:**
192> Found X contacts matching [titles] at [company]. Sources used: [list of sources that returned results].
193 
194If fewer than 3 contacts were found after all fallbacks, tell the user:
195> 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.
196 
197---
198 
199## Gooseworks MCP Tools Reference
200 
201### Cost Comparison (25 results)
202 
203| Provider | Cost | Tool |
204|----------|------|------|
205| Apollo | **$0.01** flat | `apollo_person_search` |
206| Fiber | $0.50 | `fiber_person_search` |
207| Crustdata | $0.66/page | `crustdata_person_search` |
208| PDL | $7.50 | `pdl_person_search` |
209 
210Always start with Apollo. Escalate through Fiber → Crustdata → PDL only as fallbacks.
211 
212### Tool Details
213 
214| Tool | Purpose | Key Params |
215|------|---------|------------|
216| `apollo_person_search` | People search by title, location, company ($0.01/call) | `person_titles`, `person_locations`, `organization_domains`, `q_keywords`, `per_page` |
217| `fiber_person_search` | NL or structured people search ($0.02/record) | `query` (NL), `search_params` (structured), `page_size` |
218| `crustdata_person_search` | Structured filter search ($0.66/page of 100) | `conditions`, `filter_op`, `limit`, `preview` |
219| `pdl_person_search` | PDL people search ($0.30/record — last resort) | `job_titles`, `company_names`, `location_country`, `num_results` |
220| `fetch_linkedin_profile` | Enrich a single person by LinkedIn URL | `linkedin_url` |
221 
222### Crustdata Filter Columns
223 
224| Column | Operators | Example Values |
225|--------|-----------|----------------|
226| `current_employers.name` | `=` (exact), `(.)` (contains) | `"EisnerAmper"` |
227| `current_employers.title` | `(.)` (fuzzy), `=` (exact) | `"Partner"` |
228| `current_employers.seniority_level` | `=`, `(.)` | `"VP"`, `"C-Level"` |
229| `region` | `=` | `"San Francisco"` |
230| `skills` | `(.)` | `"python"` |
231 
232---
233 
234## Examples
235 
236### Basic: Find Partners and Controllers at EisnerAmper
237```
238Find Partners and Controllers at EisnerAmper
239```
240Agent calls `apollo_person_search` with `person_titles: ["Partner", "Controller"], q_keywords: "EisnerAmper", per_page: 25`.
241 
242### With more titles: Find VP Finance and CFO at Sage Intacct users
243```
244Find VP Finance and CFO at companies using Sage Intacct
245```
246Agent builds query: `"VP Finance OR CFO at Sage Intacct"`.
247 
248### Senior leaders at a specific firm
249```
250Find Managing Directors at CPA firms in San Francisco
251```
252Agent builds query: `"Managing Director at CPA firm San Francisco"`.
253 
254### With a LinkedIn URL for disambiguation
255```
256Find Partners at EisnerAmper (https://linkedin.com/company/eisneramper)
257```
258Agent uses the company name "EisnerAmper" and can use the LinkedIn URL for enrichment if needed.
259 
260---
261 
262## Troubleshooting
263 
264### MCP tools not available / connection errors
265 
266The 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:
267 
2681. **Check MCP server configuration:** Ensure the Gooseworks MCP server is listed in your MCP configuration (e.g., `claude_desktop_config.json` or equivalent).
2692. **Server URL:** The Gooseworks server must be running and accessible. Check with your workspace admin for the correct server endpoint.
2703. **Authentication:** Gooseworks may require an API key or auth token. Ensure credentials are configured in your MCP server settings.
271 
272### No results returned
273 
274- Try alternate spellings of the company name (e.g., "EisnerAmper" vs "Eisner Amper" vs "EisnerAmper LLP")
275- Broaden target titles (e.g., add "Managing Director" alongside "Partner")
276- Use the structured search (Step 4) with fuzzy title matching `(.)` operator
277- Try Fiber, Crustdata, or PDL as fallback databases (Steps 4-6)
278 
279### Too many irrelevant results
280 
281- Add more specific title terms rather than broad ones
282- Use the structured search with the `in` operator for exact title matching instead of fuzzy `(.)`
283- Filter results by seniority_level to restrict to senior roles
284 
285### Duplicate contacts across sources
286 
287The 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.
288 
289---
290 
291## Metadata
292 
293```yaml
294metadata:
295 requires:
296 mcp_servers: ["gooseworks"]
297 cost: "From $0.01 (Apollo) to $7.50 (PDL) depending on provider and result count"
298```
299 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 1,220
Checked
Source
gooseworks-ai/goose-skills ↗
Creator
gooseworks-ai · 206 listings
View creator

Made with company-contact-finder

Company contact finder — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)
Company contact finder — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)

by gooseworks-ai

Similar skills

See all →
SkillAct as the company research engine for /sales research <urlCompany Research & Firmographic Analysiszubair-trabzada/ai-sales-team-claude · by zubair-trabzadaYou are the company research engine for /sales research <url>. You produce deep, structured intelligence on a prospect company covering 8…★ 1.4k GitHub starsSkillEthical people-finding and identity verificationPrivateinvestigatordanielmiessler/LifeOS · by danielmiesslerEthical people-finding and identity verification via parallel research agents across people-search sites, social media, public records, and reverse phone/email/image/username lookups, with confidence-scored results requiring 3+ matching identifiers. USE WHEN find person, locate person, reconnect, lost contact, old friend, reverse phone lookup, who owns this email, reverse image search, find by username, verify identity, people search, public-data background check, who is this caller. NOT FOR structured due-diligence or company/entity intelligence investigations, or general web research synthesis (use Research).★ 19.3k GitHub starsSkillFree People Search to discover ICP-matching leadsApollo lead findergooseworks-ai/goose-skills · by gooseworks-aiTwo-phase Apollo.io prospecting: free People Search to discover ICP-matching leads, then selective enrichment to reveal emails/phones (credits per contact). Creates Apollo lists. Deduplicates against existing contacts by LinkedIn URL.★ 1.2k GitHub starsSkillFind company funding history, investorsCompany funding searchgooseworks-ai/goose-skills · by gooseworks-aiFind company funding history, investors, and investment details★ 1.2k GitHub starsSkillFull company intelligence reportCompany Intelligence - Comprehensive Company Reportsgooseworks-ai/goose-skills · by gooseworks-aiFull company intelligence report - overview, team, funding, products, news★ 1.2k GitHub starsSkillExtract speaker names, titles, companiesConference speaker scrapergooseworks-ai/goose-skills · by gooseworks-aiExtract speaker names, titles, companies, and bios from conference websites. Supports direct HTML scraping and Apify web scraper fallback for JS-heavy sites. Use for pre-event research and outreach targeting.★ 1.2k GitHub stars

More from gooseworks-ai

SkillMine the highest-converting ad angles from customer reviewsAd angle minergooseworks-ai/goose-skills · by gooseworks-aiMine the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads. Extracts actual pain language, competitor weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank with proof quotes and recommended ad formats per angle.★ 1.2k GitHub starsSkillAnalyze ad campaign performance data to identify what'sAd campaign analyzergooseworks-ai/goose-skills · by gooseworks-aiAnalyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.★ 1.2k GitHub starsSkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzergooseworks-ai/goose-skills · by gooseworks-aiFor paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.★ 1.2k GitHub starsSkillAnalyze the message match between your ads and landing pagesAd to landing page auditorgooseworks-ai/goose-skills · by gooseworks-aiAnalyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.★ 1.2k GitHub starsSkillCheck and improve your brand's visibility across AI searchAeogooseworks-ai/goose-skills · by gooseworks-aiCheck 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.★ 1.2k GitHub starsSkillSearch Amazon products - find items, compare pricesAmazon Product Searchgooseworks-ai/goose-skills · by gooseworks-aiSearch Amazon products - find items, compare prices, read reviews★ 1.2k GitHub stars