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 warm leads by searching LinkedIn for pain-language

Pain language engagers

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

Pain language engagers cover

Find warm leads by searching LinkedIn for pain-language posts — the frustrations, complaints, and operational struggles your ICP talks about publicly. Asks clarifying questions to understand your product, ICP, and their pain points,…

---
name: pain-language-engagers
description: >
  Find warm leads by searching LinkedIn for pain-language posts — the frustrations, complaints,
  and operational struggles your ICP talks about publicly. Asks clarifying questions to understand
  your product, ICP, and their pain points, then generates pain-language search keywords,
  scrapes LinkedIn for posts and engagers, enriches profiles, and ICP-filters the results.
  Use when someone wants to "find leads who are complaining about X" or "find people
  discussing problems we solve" or "LinkedIn pain-based prospecting."
tags: [lead-generation]
---

# Pain-Language Engagers

Find warm leads by scraping LinkedIn for pain-language posts and their engagers. People who write about, react to, or comment on posts expressing operational frustrations are signaling they live with a problem your product solves. This skill turns those signals into a qualified lead list.

**Core principle:** Search for **pain-language**, not solution-language. Solution keywords ("AI automation", "workflow optimization") attract builders and VCs. Pain keywords ("can't find drivers", "check calls are killing us") attract operators living with the problem.

Overview

Find warm leads by scraping LinkedIn for pain-language posts and their engagers. People who write about, react to, or comment on posts expressing operational frustrations are signaling they live with a problem your product solves. This skill turns those signals into a qualified lead list.

Manual install (npx, ZIP)
Claude Codenpx skills add gooseworks-ai/goose-skills --skill pain-language-engagers -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/pain-language-engagers
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/3793c7e4b2d5d89fb841/pain-language-engagers.zip" -OutFile "$env:TEMP\pain-language-engagers.zip"; Expand-Archive "$env:TEMP\pain-language-engagers.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.md8.4 KB
  • skill.meta.json311 B
  • configs/3 files · 13.7 KB
  • output/6 files · 1.6 MB
  • scripts/1 file · 36.3 KB
Read the files here
gooseworks-ai/615c68512 files
SKILL.md
Show the full text189 lines

Pain-Language Engagers

Find warm leads by scraping LinkedIn for pain-language posts and their engagers. People who write about, react to, or comment on posts expressing operational frustrations are signaling they live with a problem your product solves. This skill turns those signals into a qualified lead list.

Core principle: Search for pain-language, not solution-language. Solution keywords ("AI automation", "workflow optimization") attract builders and VCs. Pain keywords ("can't find drivers", "check calls are killing us") attract operators living with the problem.

Phase 0: Intake

Before generating keywords or running anything, ask the user these questions. Present them as a numbered list and tell the user to answer what's relevant and skip what's not.

Product & Pain Context
  1. What does your product/service do in one sentence?
  2. What specific problem does it solve? Who feels this pain most acutely?
  3. What does your ICP's day-to-day look like WITHOUT your product? (The frustrations, workarounds, manual processes)
  4. What phrases would someone use when complaining about this problem on LinkedIn? (e.g., "check calls are killing us", "can't find drivers", "spending hours on manual data entry")
ICP Definition
  1. What industries/verticals are your target buyers in?
  2. What job titles or roles are your ideal buyers? (e.g., "VP Operations", "Broker owner", "Head of Logistics")
  3. What titles should be EXCLUDED? (e.g., "Software Engineer", "AI researcher")
  4. Any specific competitors whose employees should be filtered out?
  5. Geographic focus? (e.g., "United States only", "global")
LinkedIn Signal Sources
  1. Any LinkedIn company pages where your ICP is likely to engage? (Industry publications, communities, competitor pages)
  2. Any specific LinkedIn posts or content creators your ICP follows?

Phase 1: Generate Pain-Language Keywords

Based on the intake answers, generate ~15-25 pain-language keywords in LinkedIn boolean search syntax. Organize into categories:

  • Staffing/Resource Pain — hiring difficulties, turnover, burnout
  • Operational Friction — manual processes, missed SLAs, communication breakdowns
  • Margin/Growth Pain — cost pressure, scaling challenges
  • Process Complaints — specific workflow frustrations

Key principle: Every keyword should be something a frustrated operator would actually type or say, not marketing language or solution framing.

Also generate:

  • ICP keyword list — industry terms for ICP classification (from answer #5)
  • Tech vendor exclusion list — competitor names + generic tech titles (from answers #7, #8)
  • Pain-pattern regexes — for filtering company page posts (derived from the keywords)
  • Broad topic patterns — industry terms for known industry page filtering
  • Hardcoded company pages — from answer #10, plus any the agent suggests based on the industry

Present the full keyword list to the user for approval/refinement before running. This is the most critical step — bad keywords = bad leads.

Once approved, save the complete config as JSON:

# Save config
skills/pain-language-engagers/configs/{client-name}.json

Config JSON structure:

{
  "client_name": "example-client",
  "pain_keywords": ["\"can't find X\"", "\"hiring Y\" problems"],
  "pain_patterns": ["can.t find X", "hiring Y", "manual.*process"],
  "icp_keywords": ["industry-term-1", "industry-term-2"],
  "tech_vendor_keywords": ["software engineer", "competitor-name"],
  "hardcoded_companies": ["https://www.linkedin.com/company/example/"],
  "industry_pages": ["https://www.linkedin.com/company/example/"],
  "broad_topic_patterns": ["industry", "sector", "niche-term"],
  "country_filter": "United States",
  "days_back": 60,
  "max_posts_per_keyword": 50,
  "max_posts_per_company": 100
}

Phase 2: Run LinkedIn Scraping Pipeline

Execute the pipeline script with the saved config:

python3 skills/pain-language-engagers/scripts/pain_language_engagers.py \
  --config skills/pain-language-engagers/configs/{client-name}.json \
  [--test] [--companies "url1,url2"]

Flags:

  • --config (required) — path to the client config JSON
  • --test — limit to 3 keywords, 5 posts per company (for validation)
  • --skip-discovery — skip keyword search, only scrape hardcoded/extra companies
  • --companies "url1,url2" — add extra company URLs to scrape

What the script does:

  1. Keyword search — apimaestro/linkedin-posts-search-scraper-no-cookies for each pain keyword
  2. Post author extraction — People who wrote pain posts = direct leads (free, no API call)
  3. Company page discovery — Extract company pages from keyword results
  4. Company page engager scraping — harvestapi/linkedin-company-posts for each company page, pain-filtered
  5. Profile enrichment — harvestapi/linkedin-profile-scraper for all profiles (gets headline + location)
  6. ICP classification — Using the client-specific ICP/vendor keyword lists from config
  7. Dedup + CSV export

Cost estimate:

  • Keyword search: $0.10 per keyword ($2 for 20 keywords)
  • Company page scraping: $0.002 per post per company ($0.20 per company)
  • Profile enrichment: ~$0.003 per profile
  • Full run with 20 keywords + 10 companies: ~$5-10

Always run with --test first to validate the config produces relevant results before a full run.

Phase 3: Review & Refine

After the script completes, present results to the user:

  • ICP breakdown — counts by tier (Likely / Possible / Unknown / Tech Vendor)
  • Top 15 Likely ICP leads — name, role, company, engagement type
  • Sample of filtered-out leads — so user can catch false negatives
  • Keyword performance — which keywords produced the most leads, which were duds

If the user wants adjustments:

  1. Update the config JSON (add/remove keywords, adjust ICP lists)
  2. Re-run the script
  3. Repeat until the user is satisfied

Common adjustments:

  • Too many Tech Vendor results — add more vendor names to tech_vendor_keywords
  • Missing obvious ICP leads — add more industry terms to icp_keywords
  • Irrelevant posts — refine pain_patterns to be more specific
  • Not enough results — add more keywords or reduce days_back constraint

Phase 4: Output

CSV exported to the current working directory as {client-name}-{date}.csv with columns:

Column Description
Name Full name
LinkedIn Profile URL Profile link
Role Parsed from headline
Company Name Parsed from headline
Location From profile enrichment
Source Page Which company page(s) they engaged on
Post URL(s) Links to the post(s) they engaged with
Engagement Type Post Author, Comment, or Reaction
Comment Text Their comment (if applicable — personalization gold)
ICP Tier Likely ICP, Possible ICP, Unknown, or Tech Vendor
Niche Keyword Which pain keyword matched

Tools Required

  • Apify API token — set as APIFY_API_TOKEN in .env
  • Apify actors used:
    • apimaestro/linkedin-posts-search-scraper-no-cookies (keyword search)
    • harvestapi/linkedin-company-posts (company page scraping)
    • harvestapi/linkedin-profile-scraper (profile enrichment)

Example Usage

Trigger phrases:

  • "Find people complaining about [problem] on LinkedIn"
  • "LinkedIn pain-based prospecting for [product]"
  • "Find leads who are discussing [pain point]"
  • "Scrape LinkedIn for [industry] pain posts"
  • "Run the pain-language engagers pipeline for [client]"

With existing config:

python3 skills/pain-language-engagers/scripts/pain_language_engagers.py \
  --config skills/pain-language-engagers/configs/happy-robot.json

Test mode:

python3 skills/pain-language-engagers/scripts/pain_language_engagers.py \
  --config skills/pain-language-engagers/configs/happy-robot.json --test
1---
2name: pain-language-engagers
3description: >
4 Find warm leads by searching LinkedIn for pain-language posts — the frustrations, complaints,
5 and operational struggles your ICP talks about publicly. Asks clarifying questions to understand
6 your product, ICP, and their pain points, then generates pain-language search keywords,
7 scrapes LinkedIn for posts and engagers, enriches profiles, and ICP-filters the results.
8 Use when someone wants to "find leads who are complaining about X" or "find people
9 discussing problems we solve" or "LinkedIn pain-based prospecting."
10tags: [lead-generation]
11---
12 
13# Pain-Language Engagers
14 
15Find warm leads by scraping LinkedIn for pain-language posts and their engagers. People who write about, react to, or comment on posts expressing operational frustrations are signaling they live with a problem your product solves. This skill turns those signals into a qualified lead list.
16 
17**Core principle:** Search for **pain-language**, not solution-language. Solution keywords ("AI automation", "workflow optimization") attract builders and VCs. Pain keywords ("can't find drivers", "check calls are killing us") attract operators living with the problem.
18 
19## Phase 0: Intake
20 
21Before generating keywords or running anything, ask the user these questions. Present them as a numbered list and tell the user to answer what's relevant and skip what's not.
22 
23### Product & Pain Context
24 
251. What does your product/service do in one sentence?
262. What specific problem does it solve? Who feels this pain most acutely?
273. What does your ICP's day-to-day look like WITHOUT your product? (The frustrations, workarounds, manual processes)
284. What phrases would someone use when **complaining** about this problem on LinkedIn? (e.g., "check calls are killing us", "can't find drivers", "spending hours on manual data entry")
29 
30### ICP Definition
31 
325. What industries/verticals are your target buyers in?
336. What job titles or roles are your ideal buyers? (e.g., "VP Operations", "Broker owner", "Head of Logistics")
347. What titles should be EXCLUDED? (e.g., "Software Engineer", "AI researcher")
358. Any specific competitors whose employees should be filtered out?
369. Geographic focus? (e.g., "United States only", "global")
37 
38### LinkedIn Signal Sources
39 
4010. Any LinkedIn company pages where your ICP is likely to engage? (Industry publications, communities, competitor pages)
4111. Any specific LinkedIn posts or content creators your ICP follows?
42 
43## Phase 1: Generate Pain-Language Keywords
44 
45Based on the intake answers, generate ~15-25 pain-language keywords in LinkedIn boolean search syntax. Organize into categories:
46 
47- **Staffing/Resource Pain** — hiring difficulties, turnover, burnout
48- **Operational Friction** — manual processes, missed SLAs, communication breakdowns
49- **Margin/Growth Pain** — cost pressure, scaling challenges
50- **Process Complaints** — specific workflow frustrations
51 
52**Key principle:** Every keyword should be something a frustrated operator would actually type or say, not marketing language or solution framing.
53 
54Also generate:
55- **ICP keyword list** — industry terms for ICP classification (from answer #5)
56- **Tech vendor exclusion list** — competitor names + generic tech titles (from answers #7, #8)
57- **Pain-pattern regexes** — for filtering company page posts (derived from the keywords)
58- **Broad topic patterns** — industry terms for known industry page filtering
59- **Hardcoded company pages** — from answer #10, plus any the agent suggests based on the industry
60 
61**Present the full keyword list to the user for approval/refinement before running.** This is the most critical step — bad keywords = bad leads.
62 
63Once approved, save the complete config as JSON:
64 
65```bash
66# Save config
67skills/pain-language-engagers/configs/{client-name}.json
68```
69 
70Config JSON structure:
71 
72```json
73{
74 "client_name": "example-client",
75 "pain_keywords": ["\"can't find X\"", "\"hiring Y\" problems"],
76 "pain_patterns": ["can.t find X", "hiring Y", "manual.*process"],
77 "icp_keywords": ["industry-term-1", "industry-term-2"],
78 "tech_vendor_keywords": ["software engineer", "competitor-name"],
79 "hardcoded_companies": ["https://www.linkedin.com/company/example/"],
80 "industry_pages": ["https://www.linkedin.com/company/example/"],
81 "broad_topic_patterns": ["industry", "sector", "niche-term"],
82 "country_filter": "United States",
83 "days_back": 60,
84 "max_posts_per_keyword": 50,
85 "max_posts_per_company": 100
86}
87```
88 
89## Phase 2: Run LinkedIn Scraping Pipeline
90 
91Execute the pipeline script with the saved config:
92 
93```bash
94python3 skills/pain-language-engagers/scripts/pain_language_engagers.py \
95 --config skills/pain-language-engagers/configs/{client-name}.json \
96 [--test] [--companies "url1,url2"]
97```
98 
99**Flags:**
100- `--config` (required) — path to the client config JSON
101- `--test` — limit to 3 keywords, 5 posts per company (for validation)
102- `--skip-discovery` — skip keyword search, only scrape hardcoded/extra companies
103- `--companies "url1,url2"` — add extra company URLs to scrape
104 
105**What the script does:**
106 
1071. **Keyword search** — `apimaestro/linkedin-posts-search-scraper-no-cookies` for each pain keyword
1082. **Post author extraction** — People who wrote pain posts = direct leads (free, no API call)
1093. **Company page discovery** — Extract company pages from keyword results
1104. **Company page engager scraping** — `harvestapi/linkedin-company-posts` for each company page, pain-filtered
1115. **Profile enrichment** — `harvestapi/linkedin-profile-scraper` for all profiles (gets headline + location)
1126. **ICP classification** — Using the client-specific ICP/vendor keyword lists from config
1137. **Dedup + CSV export**
114 
115**Cost estimate:**
116- Keyword search: ~$0.10 per keyword (~$2 for 20 keywords)
117- Company page scraping: ~$0.002 per post per company (~$0.20 per company)
118- Profile enrichment: ~$0.003 per profile
119- Full run with 20 keywords + 10 companies: ~$5-10
120 
121**Always run with `--test` first** to validate the config produces relevant results before a full run.
122 
123## Phase 3: Review & Refine
124 
125After the script completes, present results to the user:
126 
127- **ICP breakdown** — counts by tier (Likely / Possible / Unknown / Tech Vendor)
128- **Top 15 Likely ICP leads** — name, role, company, engagement type
129- **Sample of filtered-out leads** — so user can catch false negatives
130- **Keyword performance** — which keywords produced the most leads, which were duds
131 
132If the user wants adjustments:
1331. Update the config JSON (add/remove keywords, adjust ICP lists)
1342. Re-run the script
1353. Repeat until the user is satisfied
136 
137Common adjustments:
138- **Too many Tech Vendor results** — add more vendor names to `tech_vendor_keywords`
139- **Missing obvious ICP leads** — add more industry terms to `icp_keywords`
140- **Irrelevant posts** — refine `pain_patterns` to be more specific
141- **Not enough results** — add more keywords or reduce `days_back` constraint
142 
143## Phase 4: Output
144 
145CSV exported to the current working directory as `{client-name}-{date}.csv` with columns:
146 
147| Column | Description |
148|--------|-------------|
149| Name | Full name |
150| LinkedIn Profile URL | Profile link |
151| Role | Parsed from headline |
152| Company Name | Parsed from headline |
153| Location | From profile enrichment |
154| Source Page | Which company page(s) they engaged on |
155| Post URL(s) | Links to the post(s) they engaged with |
156| Engagement Type | Post Author, Comment, or Reaction |
157| Comment Text | Their comment (if applicable — personalization gold) |
158| ICP Tier | Likely ICP, Possible ICP, Unknown, or Tech Vendor |
159| Niche Keyword | Which pain keyword matched |
160 
161## Tools Required
162 
163- **Apify API token** — set as `APIFY_API_TOKEN` in `.env`
164- **Apify actors used:**
165 - `apimaestro/linkedin-posts-search-scraper-no-cookies` (keyword search)
166 - `harvestapi/linkedin-company-posts` (company page scraping)
167 - `harvestapi/linkedin-profile-scraper` (profile enrichment)
168 
169## Example Usage
170 
171**Trigger phrases:**
172- "Find people complaining about [problem] on LinkedIn"
173- "LinkedIn pain-based prospecting for [product]"
174- "Find leads who are discussing [pain point]"
175- "Scrape LinkedIn for [industry] pain posts"
176- "Run the pain-language engagers pipeline for [client]"
177 
178**With existing config:**
179```bash
180python3 skills/pain-language-engagers/scripts/pain_language_engagers.py \
181 --config skills/pain-language-engagers/configs/happy-robot.json
182```
183 
184**Test mode:**
185```bash
186python3 skills/pain-language-engagers/scripts/pain_language_engagers.py \
187 --config skills/pain-language-engagers/configs/happy-robot.json --test
188```
189 
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 pain-language-engagers

Pain language engagers — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)
Pain language engagers — 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 a comprehensive AI sales intelligenceAI Sales Team — Main Orchestratorzubair-trabzada/ai-sales-team-claude · by zubair-trabzadaYou are a comprehensive AI sales intelligence and outreach system for Claude Code. You help founders, sales teams, agency owners, and…★ 1.4k GitHub starsSkillAutonomous cold email campaign launcherAuto research publicgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiAutonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial `client-profile.yaml` from /icp-onboarding. Triggers on "auto-research", "launch an automated campaign", "daily campaign", "run the research loop".★ 736 GitHub starsSkillRun a full Account-Based Marketing campaign end-to-endABM Campaign — DIY Playbookexplorium-ai/gtm-skills · by explorium-aiABM campaign skill for Claude Code: run a full Account-Based Marketing campaign end-to-end — from ICP definition to live LinkedIn Ads. Builds targeted account lists with Vibe Prospecting, enriches and scores companies with real-time B2B data, generates personalized ad creatives with Claude Code and Figma, pushes matched audiences to LinkedIn Ads, and monitors campaigns daily at scale. The complete GTM skill for AI-driven account-based marketing in Claude Code, Codex, Hermes-Agent, and OpenClaw. No agency needed.★ 197 GitHub starsSkillContact data skill for Claude Code and Codex: build a rankedAccount contact shortlistexplorium-ai/gtm-skills · by explorium-aiContact data skill for Claude Code and Codex: build a ranked shortlist of decision-makers and contacts at a target company for outbound prospecting, deal acceleration, or renewal/expansion plays. Returns verified contact data including email, phone, LinkedIn profile, title, seniority, and department. Provide a company name or domain plus optional seniority focus or use case. Use for contact data enrichment, LinkedIn profile lookup, and building outbound contact lists. Works in Claude Code, Codex, Hermes-Agent, and OpenClaw.★ 197 GitHub starsSkillLead scoring and buying signals skill for Claude CodeAccount fit rankexplorium-ai/gtm-skills · by explorium-aiLead scoring and buying signals skill for Claude Code and Codex: rank a list of accounts by ICP fit, buying intent, real-time trigger events, and workforce momentum. Returns composite score (0-100), tier (A/B/C), and a 'why now' signal per account. Use for account-based selling, ABM list prioritization, territory planning, signal-based selling, and buyer-intent ranking. Triggers on 'score these accounts', 'rank by ICP fit and intent', 'prioritize this account list', 'which accounts have the strongest buying signals', 'ICP scoring', 'account prioritization'. Works in Claude Code, Codex, Hermes-Agent, OpenClaw, and Claude Cowork.★ 197 GitHub starsSkillRun end-to-end B2B cold-email outreach through the Hyper MCPhyperfx-ai/marketing-skills · by hyperfx-aiRun end-to-end B2B cold-email outreach through the Hyper MCP — enrich prospects with Apollo, scrape per-prospect signals from company sites and LinkedIn, draft personalized emails using proven hook frameworks, send via Gmail with safe defaults, and route replies into labeled folders. Use when the user wants to write cold emails, run an outbound sequence, prospect a list, build a follow-up cadence, "reach out to leads," or asks why nobody is replying to their cold emails.★ 90 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