create-image-fal
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. image_urls…
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,
$ npx -y skills add gooseworks-ai/goose-skills --skill pain-language-engagers --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pain-language-engagersContext preview
The summary Claude sees to decide when to auto-load this skill.
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,
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]
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.
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.
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")
5. What industries/verticals are your target buyers in? 6. What job titles or roles are your ideal buyers? (e.g., "VP Operations", "Broker owner", "Head of Logistics") 7. What titles should be EXCLUDED? (e.g., "Software Engineer", "AI researcher") 8. Any specific competitors whose employees should be filtered out? 9. Geographic focus? (e.g., "United States only", "global")
10. Any LinkedIn company pages where your ICP is likely to engage? (Industry publications, communities, competitor pages) 11. Any specific LinkedIn posts or content creators your ICP follows?
Based on the intake answers, generate ~15-25 pain-language keywords in LinkedIn boolean search syntax. Organize into categories:
**Key principle:** Every keyword should be something a frustrated operator would actually type or say, not marketing language or solution framing.
Also generate:
**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}.jsonConfig 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
}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:**
**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:**
**Always run with `--test` first** to validate the config produces relevant r
Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.
Repo: 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. image_urls…
Generate a single photoreal or designed image with OpenAI gpt-image via fal.ai. Supports gpt-image-1 (default, fixed sizes — the FAL fallback for Higgsfield's…
Generate an instrumental music bed via ElevenLabs Music, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Trims any sparse intro, loudnorm, fades…
Image-to-video (or text-to-video) via any FAL video model (Kling, Seedance, Veo), ROUTED THROUGH THE GooseWorks fal-proxy so the call bills the Ads agent. The…
Generate a voiceover (VO) clip via ElevenLabs text-to-speech, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Voice id + script text come from…
Scrape competitor ads from Google Ads by domain. Returns ad creatives, formats, and campaign details. Use for competitive ad research and messaging analysis.