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…
Mine 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
$ npx -y skills add gooseworks-ai/goose-skills --skill ad-angle-miner --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ad-angle-minerContext preview
The summary Claude sees to decide when to auto-load this skill.
Mine 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
name: ad-angle-miner description: > Mine 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. tags: [ads]
Dig through customer voice data — reviews, Reddit, support tickets, competitor ads — to extract the specific language, pain points, and outcome desires that make ads convert. The output is an angle bank your team can pull from for any campaign.
**Core principle:** The best ad angles aren't invented in a brainstorm. They're extracted from what real people are already saying. This skill finds those angles and ranks them by strength of evidence.
1. **Your product** — Name + what it does in one sentence 2. **Competitors** — 2-5 competitor names (for review mining) 3. **ICP** — Who are you targeting? (role, company stage, pain) 4. **Data sources to mine** (pick all that apply):
5. **Any angles you've already tested?** — So we can skip those
Use the Apify Amazon Reviews Scraper (or web_search for G2/Capterra/TrustRadius reviews).
**Option 1: Amazon product reviews via Apify**
Start a run of the `web_wanderer/amazon-reviews-extractor` actor:
POST https://api.apify.com/v2/acts/web_wanderer~amazon-reviews-extractor/runs?token=$APIFY_API_TOKEN
Content-Type: application/json
{
"products": [
"https://www.amazon.com/dp/PRODUCT_ASIN"
],
"maxReviews": 100
}Poll until the run finishes:
GET https://api.apify.com/v2/acts/web_wanderer~amazon-reviews-extractor/runs/{RUN_ID}?token=$APIFY_API_TOKENWhen `status` is `SUCCEEDED`, fetch results:
GET https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN**Output fields:** Each review has `rating` (1-5), `reviewTitle`, `reviewText`, `reviewDate`, `verifiedPurchase` (bool), `productAsin`, `productTitle`, `helpfulVoteCount`.
**Option 2: G2/Capterra/TrustRadius reviews via web_search**
For B2B products, run web searches to find review content:
web_search: "<product_name> reviews site:g2.com" web_search: "<product_name> reviews site:capterra.com" web_search: "<product_name> reviews site:trustradius.com" web_search: "<competitor_name> reviews site:g2.com"
Focus on:
Use the `trudax/reddit-scraper-lite` actor to search Reddit for relevant threads:
**Search by keyword:**
POST https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs?token=$APIFY_API_TOKEN
Content-Type: application/json
{
"searches": [
"<product category> OR <competitor> OR <pain keyword>"
],
"maxItems": 50
}**Browse a specific subreddit:**
POST https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs?token=$APIFY_API_TOKEN
Content-Type: application/json
{
"startUrls": [
{"url": "https://www.reddit.com/r/SUBREDDIT_NAME/hot/"}
],
"maxItems": 50
}Poll until complete:
GET https://api.apify.com/v2/acts/trudax~reddit-scraper-lite/runs/{RUN_ID}?token=$APIFY_API_TOKENFetch results when `status` is `SUCCEEDED`:
GET https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN**Output fields:** Each item has `dataType` ("post" or "comment"), `title` (posts only), `body`, `communityName`, `upVotes`, `numberOfComments` (posts), `url`, `createdAt`.
Extract:
Use `scrapecreators-api` to collect relevant X posts plus Instagram, TikTok, YouTube, or Facebook posts where the audience is discussing the problem. Run `comment-mining` on the highest-signal threads. Use web search only as a fallback:
web_search: "<competitor> (frustrating OR broken OR hate) site:x.com" web_search: "<competitor> (love OR switched to OR replaced) site:x.com" web_search: "<product category> (recommendation OR alternative OR looking for) site:twitter.com" web_search: "<competitor> site:x.com" (for general sentiment)
Run 3-5 queries covering:
Use `competitor-ad-intelligence` for structured Meta and Google ad-library collection. Use web search only to verify an advertiser or fill a documented gap:
web_search: "<competitor_name> site:facebook.com/ads/library" web_search: "<competitor_name> facebook ads library" web_search: "<competitor_name> ad creative examples"
This reveals:
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.