Customer discovery
Discover all customers of a given company by scanning websites, case studies, review sites, press, social media, job postings, and more.
How to use it
- Hit Copy SKILL.md — or use the Claude Code line below to get every file.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit gooseworks-ai/goose-skills/skills/research/capabilities/customer-discovery#main ~/.claude/skills/customer-discoveryFor one project only, change the path to .claude/skills/customer-discovery. This skill also uses scrape_website_logos.py, scrape_wayback_logos.py, package.json, requirements.txt, search_builtwith.py — copying SKILL.md alone won't be enough. See the folder on GitHub.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text265 lines
Customer Discovery
Find all customers of a company by scanning multiple public data sources. Produces a deduplicated report with confidence scoring.
Quick Start
Find all customers of Datadog
Who are Notion's customers? Use deep mode.
Inputs
| Input | Required | Default | Description |
|---|---|---|---|
| Company name | Yes | — | The company to research |
| Website URL | No | Auto-detected | The company's website URL |
| Depth | No | standard | quick, standard, or deep |
Procedure
Step 1: Gather Inputs
Ask the user for:
- Company name (required)
- Company website URL (optional — if not provided, WebSearch for it)
- Depth tier — present these options, default to Standard:
- Quick (~2-3 min): Website logos, case studies, G2 reviews, press search
- Standard (~5-8 min): Quick + blog posts, Wayback Machine, LinkedIn, Twitter, Reddit, HN, job postings, YouTube
- Deep (~10-15 min): Standard + SEC filings, podcasts, GitHub, integration directories, BuiltWith, Crunchbase
Step 2: Create Output Directory
mkdir -p customer-discovery-[company-slug]
Step 3: Run Sources for Selected Tier
Collect all results into a running list. For each customer found, record:
- name: Company name
- confidence: high / medium / low
- source_type: e.g., "logo_wall", "case_study", "g2_review", "press", "job_posting"
- evidence_url: URL where the evidence was found
- notes: Brief description of the evidence
Quick Sources
1. Website logo wall
Run the scrape_website_logos.py script:
python3 skills/capabilities/customer-discovery/scripts/scrape_website_logos.py \
--url "[company-url]" --output json
Parse the JSON output and add each result to the customer list.
2. Case studies page
Use WebFetch on the company's case studies page (try /case-studies, /customers, /resources/case-studies). Extract customer names from page headings and content.
3. G2/Capterra reviews
If the review-site-scraper skill is available, use it to find reviewer companies:
python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \
--platform g2 --url "[g2-product-url]" --max-reviews 50 --output json
First, WebSearch for the company's G2 page: site:g2.com "[company]". Extract reviewer company names from review author info.
4. Web search for press
WebSearch these queries and extract customer mentions from results:
"[company]" customer OR "case study" OR partnership"[company]" "we use" OR "switched to" OR "chose"
Standard Sources (in addition to Quick)
5. Company blog posts
WebSearch: site:[company-domain] customer OR "case study" OR partnership OR "customer story"
6. Wayback Machine logos
Run the scrape_wayback_logos.py script:
python3 skills/capabilities/customer-discovery/scripts/scrape_wayback_logos.py \
--url "[company-url]" --output json
Logos marked still_present: false are especially interesting — they indicate former customers.
7. Founder/exec LinkedIn posts
WebSearch: site:linkedin.com "[company]" customer OR "excited to announce" OR "welcome"
8. Twitter/X mentions
WebSearch: site:twitter.com "[company]" "we use" OR "just switched to" OR "loving"
9. Reddit/HN mentions
WebSearch these queries:
site:reddit.com "we use [company]" OR "[company] customer"site:news.ycombinator.com "[company]" customer OR user
10. Job postings
WebSearch: "experience with [company]" site:linkedin.com/jobs OR site:greenhouse.io OR site:lever.co
Companies requiring experience with the product are likely customers.
11. YouTube testimonials
WebSearch: site:youtube.com "[company]" customer OR testimonial OR review
Deep Sources (in addition to Standard)
12. SEC filings
WebSearch: site:sec.gov "[company]" — Look for mentions in 10-K and 10-Q filings.
13. Podcast transcripts
WebSearch: "[company]" podcast customer OR transcript OR interview
14. GitHub usage signals
WebSearch: site:github.com "[company-package-name]" in dependency files, package.json, requirements.txt, etc.
15. Integration directories
WebFetch marketplace pages where the company lists integrations:
- Salesforce AppExchange
- Zapier integrations page
- Slack App Directory
- Any marketplace relevant to the company
16. BuiltWith detection
python3 skills/capabilities/customer-discovery/scripts/search_builtwith.py \
--technology "[company-slug]" --max-results 50 --output json
17. Crunchbase
WebSearch: site:crunchbase.com "[company]" customers OR partners
Step 4: Deduplicate Results
Merge results by company name using fuzzy matching:
- Normalize: lowercase, strip suffixes (Inc, Corp, LLC, Ltd, Co., GmbH)
- Treat "Acme Inc" = "Acme" = "ACME Corp" = "acme.com" as the same company
- When merging, keep the highest confidence level and all evidence URLs
Step 5: Assign Confidence
Apply these rules:
High confidence:
- Logo on current website (from scrape_website_logos.py with confidence "high")
- Published case study or customer story
- Direct quote or testimonial on the company's site
- Official partnership page listing
Medium confidence:
- G2/Capterra review (reviewer's company)
- Press article mentioning customer relationship
- Job posting requiring experience with the product
- YouTube testimonial or video review
- Logo found only in Wayback Machine (was on site, now removed)
Low confidence:
- Single social media mention (tweet, Reddit post)
- Indirect reference ("heard good things about X")
- BuiltWith detection only (technology on site doesn't mean they're a paying customer)
- HN discussion mention
Step 6: Generate Report
Create two output files:
customer-discovery-[company]/report.md:
# Customer Discovery: [Company Name]
**Date:** YYYY-MM-DD
**Depth:** quick | standard | deep
**Total customers found:** N
## High Confidence (N)
| Customer | Source | Evidence |
|----------|--------|----------|
| Shopify | Case study | [link] |
| ... | ... | ... |
## Medium Confidence (N)
| Customer | Source | Evidence |
|----------|--------|----------|
| ... | ... | ... |
## Low Confidence (N)
| Customer | Source | Evidence |
|----------|--------|----------|
| ... | ... | ... |
## Sources Scanned
- Website logo wall: [url] — N customers found
- G2 reviews: N reviews analyzed — N companies identified
- Wayback Machine: N snapshots checked — N logos found (N removed)
- Web search: N queries — N mentions
- ...
## Methodology
This report was generated using the customer-discovery skill, which scans
public data sources to identify companies that use [Company Name]. Confidence
levels reflect the strength and directness of the evidence found.
customer-discovery-[company]/customers.csv:
CSV with columns: company_name,confidence,source_type,evidence_url,notes
Write the CSV using a code block or Python script.
Scripts Reference
| Script | Purpose | Key flags |
|---|---|---|
scrape_website_logos.py |
Extract logos from current website | --url, --output json|summary |
scrape_wayback_logos.py |
Find historical logos via Wayback Machine | --url, --paths, --output json|summary |
search_builtwith.py |
BuiltWith technology detection (deep mode) | --technology, --max-results, --output json|summary |
All scripts require requests: pip3 install requests
External skill scripts (use if available):
skills/capabilities/review-site-scraper/scripts/scrape_reviews.py— G2/Capterra/Trustpilot reviews (requires Apify token)skills/capabilities/linkedin-post-research/scripts/search_posts.py— LinkedIn post search (requires Apify token)
Cost
- Quick / Standard: Free (uses WebSearch + free APIs like Wayback Machine CDX)
- Deep: Mostly free. BuiltWith paid API is optional (
--api-keyflag); free scraping is used by default. - External skills (review-site-scraper, linkedin-post-research) may require paid API tokens.
| 1 | |
| 2 | name customer-discovery |
| 3 | description > |
| 4 | Discover all customers of a given company by scanning websites, case studies, review sites, |
| 5 | press, social media, job postings, and more. Use when you need competitive intelligence on |
| 6 | who a company sells to. |
| 7 | |
| 8 | |
| 9 | # Customer Discovery |
| 10 | |
| 11 | Find all customers of a company by scanning multiple public data sources. Produces a deduplicated report with confidence scoring. |
| 12 | |
| 13 | ## Quick Start |
| 14 | |
| 15 | |
| 16 | Find all customers of Datadog |
| 17 | |
| 18 | |
| 19 | |
| 20 | Who are Notion's customers? Use deep mode. |
| 21 | |
| 22 | |
| 23 | ## Inputs |
| 24 | |
| 25 | | Input | Required | Default | Description | |
| 26 | |-------|----------|---------|-------------| |
| 27 | | Company name | Yes | — | The company to research | |
| 28 | | Website URL | No | Auto-detected | The company's website URL | |
| 29 | | Depth | No | standard | `quick`, `standard`, or `deep` | |
| 30 | |
| 31 | ## Procedure |
| 32 | |
| 33 | ### Step 1: Gather Inputs |
| 34 | |
| 35 | Ask the user for: |
| 36 | **Company name** (required) |
| 37 | **Company website URL** (optional — if not provided, WebSearch for it) |
| 38 | **Depth tier** — present these options, default to Standard: |
| 39 | **Quick** (~2-3 min): Website logos, case studies, G2 reviews, press search |
| 40 | **Standard** (~5-8 min): Quick + blog posts, Wayback Machine, LinkedIn, Twitter, Reddit, HN, job postings, YouTube |
| 41 | **Deep** (~10-15 min): Standard + SEC filings, podcasts, GitHub, integration directories, BuiltWith, Crunchbase |
| 42 | |
| 43 | ### Step 2: Create Output Directory |
| 44 | |
| 45 | |
| 46 | mkdir -p customer-discovery-[company-slug] |
| 47 | |
| 48 | |
| 49 | ### Step 3: Run Sources for Selected Tier |
| 50 | |
| 51 | Collect all results into a running list. For each customer found, record: |
| 52 | **name**: Company name |
| 53 | **confidence**: high / medium / low |
| 54 | **source_type**: e.g., "logo_wall", "case_study", "g2_review", "press", "job_posting" |
| 55 | **evidence_url**: URL where the evidence was found |
| 56 | **notes**: Brief description of the evidence |
| 57 | |
| 58 | #### Quick Sources |
| 59 | |
| 60 | **1. Website logo wall** |
| 61 | |
| 62 | Run the scrape_website_logos.py script: |
| 63 | |
| 64 | python3 skills/capabilities/customer-discovery/scripts/scrape_website_logos.py \ |
| 65 | --url "[company-url]" --output json |
| 66 | |
| 67 | |
| 68 | Parse the JSON output and add each result to the customer list. |
| 69 | |
| 70 | **2. Case studies page** |
| 71 | |
| 72 | Use WebFetch on the company's case studies page (try `/case-studies`, `/customers`, `/resources/case-studies`). Extract customer names from page headings and content. |
| 73 | |
| 74 | **3. G2/Capterra reviews** |
| 75 | |
| 76 | If the `review-site-scraper` skill is available, use it to find reviewer companies: |
| 77 | |
| 78 | python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \ |
| 79 | --platform g2 --url "[g2-product-url]" --max-reviews 50 --output json |
| 80 | |
| 81 | |
| 82 | First, WebSearch for the company's G2 page: `site:g2.com "[company]"`. Extract reviewer company names from review author info. |
| 83 | |
| 84 | **4. Web search for press** |
| 85 | |
| 86 | WebSearch these queries and extract customer mentions from results: |
| 87 | `"[company]" customer OR "case study" OR partnership` |
| 88 | `"[company]" "we use" OR "switched to" OR "chose"` |
| 89 | |
| 90 | #### Standard Sources (in addition to Quick) |
| 91 | |
| 92 | **5. Company blog posts** |
| 93 | |
| 94 | WebSearch: `site:[company-domain] customer OR "case study" OR partnership OR "customer story"` |
| 95 | |
| 96 | **6. Wayback Machine logos** |
| 97 | |
| 98 | Run the scrape_wayback_logos.py script: |
| 99 | |
| 100 | python3 skills/capabilities/customer-discovery/scripts/scrape_wayback_logos.py \ |
| 101 | --url "[company-url]" --output json |
| 102 | |
| 103 | |
| 104 | Logos marked `still_present: false` are especially interesting — they indicate former customers. |
| 105 | |
| 106 | **7. Founder/exec LinkedIn posts** |
| 107 | |
| 108 | WebSearch: `site:linkedin.com "[company]" customer OR "excited to announce" OR "welcome"` |
| 109 | |
| 110 | **8. Twitter/X mentions** |
| 111 | |
| 112 | WebSearch: `site:twitter.com "[company]" "we use" OR "just switched to" OR "loving"` |
| 113 | |
| 114 | **9. Reddit/HN mentions** |
| 115 | |
| 116 | WebSearch these queries: |
| 117 | `site:reddit.com "we use [company]" OR "[company] customer"` |
| 118 | `site:news.ycombinator.com "[company]" customer OR user` |
| 119 | |
| 120 | **10. Job postings** |
| 121 | |
| 122 | WebSearch: `"experience with [company]" site:linkedin.com/jobs OR site:greenhouse.io OR site:lever.co` |
| 123 | |
| 124 | Companies requiring experience with the product are likely customers. |
| 125 | |
| 126 | **11. YouTube testimonials** |
| 127 | |
| 128 | WebSearch: `site:youtube.com "[company]" customer OR testimonial OR review` |
| 129 | |
| 130 | #### Deep Sources (in addition to Standard) |
| 131 | |
| 132 | **12. SEC filings** |
| 133 | |
| 134 | WebSearch: `site:sec.gov "[company]"` — Look for mentions in 10-K and 10-Q filings. |
| 135 | |
| 136 | **13. Podcast transcripts** |
| 137 | |
| 138 | WebSearch: `"[company]" podcast customer OR transcript OR interview` |
| 139 | |
| 140 | **14. GitHub usage signals** |
| 141 | |
| 142 | WebSearch: `site:github.com "[company-package-name]"` in dependency files, package.json, requirements.txt, etc. |
| 143 | |
| 144 | **15. Integration directories** |
| 145 | |
| 146 | WebFetch marketplace pages where the company lists integrations: |
| 147 | Salesforce AppExchange |
| 148 | Zapier integrations page |
| 149 | Slack App Directory |
| 150 | Any marketplace relevant to the company |
| 151 | |
| 152 | **16. BuiltWith detection** |
| 153 | |
| 154 | |
| 155 | python3 skills/capabilities/customer-discovery/scripts/search_builtwith.py \ |
| 156 | --technology "[company-slug]" --max-results 50 --output json |
| 157 | |
| 158 | |
| 159 | **17. Crunchbase** |
| 160 | |
| 161 | WebSearch: `site:crunchbase.com "[company]" customers OR partners` |
| 162 | |
| 163 | ### Step 4: Deduplicate Results |
| 164 | |
| 165 | Merge results by company name using fuzzy matching: |
| 166 | Normalize: lowercase, strip suffixes (Inc, Corp, LLC, Ltd, Co., GmbH) |
| 167 | Treat "Acme Inc" = "Acme" = "ACME Corp" = "acme.com" as the same company |
| 168 | When merging, keep the highest confidence level and all evidence URLs |
| 169 | |
| 170 | ### Step 5: Assign Confidence |
| 171 | |
| 172 | Apply these rules: |
| 173 | |
| 174 | **High confidence:** |
| 175 | Logo on current website (from scrape_website_logos.py with confidence "high") |
| 176 | Published case study or customer story |
| 177 | Direct quote or testimonial on the company's site |
| 178 | Official partnership page listing |
| 179 | |
| 180 | **Medium confidence:** |
| 181 | G2/Capterra review (reviewer's company) |
| 182 | Press article mentioning customer relationship |
| 183 | Job posting requiring experience with the product |
| 184 | YouTube testimonial or video review |
| 185 | Logo found only in Wayback Machine (was on site, now removed) |
| 186 | |
| 187 | **Low confidence:** |
| 188 | Single social media mention (tweet, Reddit post) |
| 189 | Indirect reference ("heard good things about X") |
| 190 | BuiltWith detection only (technology on site doesn't mean they're a paying customer) |
| 191 | HN discussion mention |
| 192 | |
| 193 | ### Step 6: Generate Report |
| 194 | |
| 195 | Create two output files: |
| 196 | |
| 197 | **`customer-discovery-[company]/report.md`:** |
| 198 | |
| 199 | |
| 200 | # Customer Discovery: [Company Name] |
| 201 | |
| 202 | **Date:** YYYY-MM-DD |
| 203 | **Depth:** quick | standard | deep |
| 204 | **Total customers found:** N |
| 205 | |
| 206 | ## High Confidence (N) |
| 207 | |
| 208 | | Customer | Source | Evidence | |
| 209 | |----------|--------|----------| |
| 210 | | Shopify | Case study | [link] | |
| 211 | | ... | ... | ... | |
| 212 | |
| 213 | ## Medium Confidence (N) |
| 214 | |
| 215 | | Customer | Source | Evidence | |
| 216 | |----------|--------|----------| |
| 217 | | ... | ... | ... | |
| 218 | |
| 219 | ## Low Confidence (N) |
| 220 | |
| 221 | | Customer | Source | Evidence | |
| 222 | |----------|--------|----------| |
| 223 | | ... | ... | ... | |
| 224 | |
| 225 | ## Sources Scanned |
| 226 | |
| 227 | - Website logo wall: [url] — N customers found |
| 228 | - G2 reviews: N reviews analyzed — N companies identified |
| 229 | - Wayback Machine: N snapshots checked — N logos found (N removed) |
| 230 | - Web search: N queries — N mentions |
| 231 | - ... |
| 232 | |
| 233 | ## Methodology |
| 234 | |
| 235 | This report was generated using the customer-discovery skill, which scans |
| 236 | public data sources to identify companies that use [Company Name]. Confidence |
| 237 | levels reflect the strength and directness of the evidence found. |
| 238 | |
| 239 | |
| 240 | **`customer-discovery-[company]/customers.csv`:** |
| 241 | |
| 242 | CSV with columns: `company_name,confidence,source_type,evidence_url,notes` |
| 243 | |
| 244 | Write the CSV using a code block or Python script. |
| 245 | |
| 246 | ## Scripts Reference |
| 247 | |
| 248 | | Script | Purpose | Key flags | |
| 249 | |--------|---------|-----------| |
| 250 | | `scrape_website_logos.py` | Extract logos from current website | `--url`, `--output json\|summary` | |
| 251 | | `scrape_wayback_logos.py` | Find historical logos via Wayback Machine | `--url`, `--paths`, `--output json\|summary` | |
| 252 | | `search_builtwith.py` | BuiltWith technology detection (deep mode) | `--technology`, `--max-results`, `--output json\|summary` | |
| 253 | |
| 254 | All scripts require `requests`: `pip3 install requests` |
| 255 | |
| 256 | External skill scripts (use if available): |
| 257 | `skills/capabilities/review-site-scraper/scripts/scrape_reviews.py` — G2/Capterra/Trustpilot reviews (requires Apify token) |
| 258 | `skills/capabilities/linkedin-post-research/scripts/search_posts.py` — LinkedIn post search (requires Apify token) |
| 259 | |
| 260 | ## Cost |
| 261 | |
| 262 | **Quick / Standard:** Free (uses WebSearch + free APIs like Wayback Machine CDX) |
| 263 | **Deep:** Mostly free. BuiltWith paid API is optional (`--api-key` flag); free scraping is used by default. |
| 264 | External skills (review-site-scraper, linkedin-post-research) may require paid API tokens. |
| 265 |