$npx -y skills add Affitor/affiliate-skills --skill affiliate-program-searchResearch and evaluate affiliate programs to find the best ones to promote. Use this skill when the user asks anything about finding affiliate programs, comparing commission rates, evaluating affiliate opportunities, searching for products to promote, picking a niche, or mentions
| 1 | # Affiliate Program Search |
| 2 | |
| 3 | Help affiliate marketers research, evaluate, and pick winning programs to promote. |
| 4 | Data source: [openaffiliate.dev](https://openaffiliate.dev) — open affiliate program directory. Public API, no key required. |
| 5 | |
| 6 | ## Stage |
| 7 | |
| 8 | This skill belongs to Stage S1: Research |
| 9 | |
| 10 | ## When to Use |
| 11 | |
| 12 | - User wants to find affiliate programs to promote |
| 13 | - User wants to compare two or more affiliate programs |
| 14 | - User asks about commission rates, cookie duration, or earning potential |
| 15 | - User mentions openaffiliate.dev |
| 16 | - User is new to affiliate marketing and needs a starting point |
| 17 | |
| 18 | ## Input Schema |
| 19 | |
| 20 | ``` |
| 21 | { |
| 22 | niche: string # (optional, default: "AI/SaaS tools") Category or niche interest |
| 23 | commission_pref: string # (optional, default: "recurring, 20%+") Commission preference |
| 24 | audience: string # (optional, default: "content creators") Target audience type |
| 25 | platform: string # (optional, default: "any") Platform they'll promote on |
| 26 | compare: string[] # (optional) Specific programs to compare head-to-head |
| 27 | } |
| 28 | ``` |
| 29 | |
| 30 | ## Workflow |
| 31 | |
| 32 | ### Step 1: Understand What the User Wants |
| 33 | |
| 34 | Ask (if not clear from context): |
| 35 | - Niche/category interest? (AI tools, SEO, video, writing, automation...) |
| 36 | - Commission preference? (recurring vs one-time, minimum %) |
| 37 | - Audience type? (developers, marketers, beginners, enterprise...) |
| 38 | - Platform they'll promote on? (blog, LinkedIn, YouTube, X...) |
| 39 | |
| 40 | If user says "just find me something good" → default to: AI/SaaS tools, recurring commission, 20%+, content creator audience. |
| 41 | |
| 42 | ### Step 2: Search openaffiliate.dev |
| 43 | |
| 44 | See `references/openaffiliate-api.md` for integration methods. |
| 45 | |
| 46 | Two methods available: |
| 47 | - **API (preferred):** `GET https://openaffiliate.dev/api/programs?q=<term>` — public, no auth needed, structured data |
| 48 | - **Web fetch (fallback):** `web_search "site:openaffiliate.dev [category]"` then `web_fetch` the page |
| 49 | |
| 50 | Extract for each program: `name`, `reward_value`, `reward_type`, `cookie_days`, `stars_count`, `tags`, `description`. |
| 51 | |
| 52 | ### Step 3: Score Programs |
| 53 | |
| 54 | Apply the scoring framework from `references/scoring-criteria.md`. |
| 55 | |
| 56 | Score each program on 5 dimensions (1-10 scale): |
| 57 | 1. **Earning Potential** (30%) — commission %, recurring vs one-time, product price |
| 58 | 2. **Content Potential** (25%) — visual demo, free tier, content angles |
| 59 | 3. **Market Demand** (20%) — search volume, trend direction, market size |
| 60 | 4. **Competition Level** (15%) — fewer affiliates promoting = higher score |
| 61 | 5. **Trust Factor** (10%) — product quality, reputation, stars on openaffiliate.dev |
| 62 | |
| 63 | Overall = weighted average. Verdict: 7.5+ "Strong Pick" / 5.5-7.4 "Worth Testing" / <5.5 "Skip". |
| 64 | |
| 65 | For dimensions that require external data (Market Demand, Competition Level), use `web_search` to check Google results count for "[product] review" and "[product] affiliate" queries. |
| 66 | |
| 67 | ### Step 4: Present Recommendation |
| 68 | |
| 69 | ### Step 5: Self-Validation |
| 70 | |
| 71 | Before presenting output, verify: |
| 72 | |
| 73 | - [ ] All scored programs have `reward_value` from API data, not hallucinated |
| 74 | - [ ] `cookie_days` is numeric and from API response |
| 75 | - [ ] Top Pick verdict matches score threshold (≥7.5 = Strong Pick, ≥6 = Worth Considering) |
| 76 | - [ ] Market Demand and Competition scores cite the search query used |
| 77 | - [ ] Stale data (>6 months) is flagged with warning |
| 78 | |
| 79 | If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes. |
| 80 | |
| 81 | ## Output Schema |
| 82 | |
| 83 | Other skills (viral-post-writer, affiliate-blog-builder, etc.) consume these fields from conversation context: |
| 84 | |
| 85 | ``` |
| 86 | { |
| 87 | output_schema_version: "1.0.0" # Semver — bump major on breaking changes |
| 88 | recommended_program: { |
| 89 | name: string # "HeyGen" |
| 90 | slug: string # "heygen" |
| 91 | reward_value: string # "30%" |
| 92 | reward_type: string # "cps_recurring" |
| 93 | reward_duration: string # "12 months" |
| 94 | cookie_days: number # 60 |
| 95 | description: string # Short product description |
| 96 | tags: string[] # ["ai", "video"] |
| 97 | url: string # Prod |