Research an affiliate program and create a verified listing
Affiliate Program Lister

Research an affiliate program and create a verified listing for openaffiliate.dev. Use this skill when the user asks anything about listing a program, adding an affiliate program to the directory, submitting a program to list, creating…
--- name: submit-program description: > Research an affiliate program and create a verified listing for openaffiliate.dev. Use this skill when the user asks anything about listing a program, adding an affiliate program to the directory, submitting a program to list, creating a listing, documenting an affiliate program, sharing an affiliate program, writing a program profile, posting a program to openaffiliate.dev, or contributing a new program. Also trigger for: "list a program", "add affiliate program", "submit program to list", "create listing for X", "document affiliate program", "share affiliate program", "write a listing", "post to openaffiliate.dev", "add X to the directory", "register an affiliate program", "publish affiliate program", "new program listing", "profile this affiliate program", "catalog this program". license: MIT version: "1.0.0" tags: ["affiliate-marketing", "research", "listing", "directory", "commission", "program-profile"] compatibility: "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent" metadata:
Overview
Research an affiliate program from official sources and produce a verified, publish-ready listing for openaffiliate.dev. Every number comes from the program's official affiliate page, network page, or pricing page. No guessing.
Manual install (npx, ZIP)
npx skills add Affitor/affiliate-skills --skill submit-program -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/Affitor/affiliate-skills/tar.gz/e43bfaecd6a7 \
| tar -xz -C ~/.claude/skills --strip-components=3 affiliate-skills-e43bfaecd6a7/skills/research/submit-programNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/8e982ba978f4357b4667/submit-program.zip" -OutFile "$env:TEMP\submit-program.zip"; Expand-Archive "$env:TEMP\submit-program.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md15.9 KB
Read the files here
Affitor/
Shared references3SKILL.md reads these from elsewhere in the repo. Not in the ZIP.
- affiliate-glossary.mdshared/references/3.0 KB
- flywheel-connections.mdshared/references/9.3 KB
- openaffiliate-api.mdskills/research/affiliate-program-search/references/3.7 KB
Show the full text403 lines
Affiliate Program Lister
Research an affiliate program from official sources and produce a verified, publish-ready listing for openaffiliate.dev. Every number comes from the program's official affiliate page, network page, or pricing page. No guessing.
Stage
This skill belongs to Stage S1: Research
When to Use
- User wants to add an affiliate program to openaffiliate.dev
- User wants to document a program's commission structure in a standard format
- User found a program and wants to create a shareable profile for other affiliates
- User is contributing to the community directory
- User says "list this program" or "add X to the directory"
Input Schema
{
program_name: string # (required) Name of the affiliate program, e.g., "HeyGen"
affiliate_link: string # (optional) User's affiliate link to include in the listing
niche: string # (optional) Category hint, e.g., "AI video", "email marketing"
}
Workflow
Step 1: Confirm Program and Context
Confirm the program name with the user. Ask:
- Do you have an affiliate link for this program? (optional — used for verification only)
- What niche or category does it fall under? (helps with tagging)
If the user says "just list it" or provides enough context, skip questions and proceed.
Step 2: Research from Official Sources
Research the program using only official, verifiable sources. Search in this order:
Official affiliate/partner page —
web_search "[program name] affiliate program"orweb_search "[program name] partner program". This is the primary source for commission structure, cookie duration, payment terms, and signup link.Affiliate network page — If the program runs through a network (ShareASale, CJ, Impact, PartnerStack, Rewardful, etc.), find the network listing for additional details.
Official pricing page —
web_search "[program name] pricing". Needed to calculate realistic earnings (commission % means nothing without knowing the price).Credibility signals — Look for: number of customers, notable clients, funding raised, year founded, G2/Capterra rating, social proof. These go in the description.
For each data point, note the source. If a value cannot be verified from official sources, mark it as "unverified" in the output.
Step 3: Extract Listing Fields
Fill in the structured listing fields from the research:
| Field | Source | Notes |
|---|---|---|
name |
Official product name | Exact capitalization from their website |
url |
Product homepage | Main website, not affiliate signup page |
reward_type |
Affiliate page | One of: cpc, cpl, cps_one_time, cps_recurring, cps_lifetime, other |
reward_value |
Affiliate page | e.g., "30%", "$50", "$0.10 per click" |
reward_duration |
Affiliate page | For recurring: "12 months", "lifetime", etc. Omit for one-time |
cookie_days |
Affiliate page | Number only. If not stated, mark "unverified" and estimate from network norms |
tags |
Niche + features | 3-6 lowercase tags, e.g., ["ai", "video", "saas"] |
Reward type mapping:
- "X% of each sale" (one purchase) →
cps_one_time - "X% recurring" or "X% for Y months" →
cps_recurring - "X% for life of customer" →
cps_lifetime - "Pay per lead / free trial signup" →
cpl - "Pay per click" →
cpc - Anything else →
other(explain in description)
Step 4: Write the Description
The description is structured markdown that helps affiliates decide if the program is worth promoting. Write these sections in order:
Opening (2-3 sentences) What the product does, who it serves, and why affiliates should care. Lead with the value proposition, not the company history.
Why Promote This Program 3-5 bullet points covering: commission rate highlights, cookie duration, payment reliability, product-market fit, conversion-friendly features (free trial, demo, low friction signup).
Commission Structure A markdown table with all commission tiers if multiple exist:
| Plan | Price | Commission | Per Sale | Type |
|------|-------|-----------|----------|------|
| Starter | $29/mo | 30% | $8.70/mo | Recurring |
| Pro | $89/mo | 30% | $26.70/mo | Recurring |
| Enterprise | Custom | 30% | Varies | Recurring |
Include: minimum payout threshold, payment methods (PayPal, wire, etc.), payment frequency (monthly, net-30, etc.) if found.
Target Audiences Who can promote this product effectively. List 3-5 specific audience types with brief reasoning, e.g., "YouTube creators making tutorial content — visual product, easy to demo."
Earning Potential Realistic earnings at three traffic levels using conservative conversion assumptions (2% CTR, 2% conversion rate):
| Monthly Traffic | Est. Sales | Monthly Earnings | Annual Earnings |
|----------------|-----------|-----------------|----------------|
| 5,000 visitors | 2 | $X | $X |
| 20,000 visitors | 8 | $X | $X |
| 100,000 visitors | 40 | $X | $X |
For recurring programs, show month-12 compounded earnings, not just month-1.
Why It Converts 2-3 sentences on what makes this product easy to sell: free tier, strong brand recognition, low-commitment entry point, visual demo potential, etc.
Honest Limitations 2-3 bullet points on real drawbacks. Every program has them. Examples: short cookie window, high competition from other affiliates, niche audience only, high price point limits conversions, payout threshold too high for beginners.
Step 5: Verify Affiliate Link (If Provided)
If the user provided an affiliate link:
- Check that the domain matches the program's known affiliate tracking domain
- Check for expected URL parameters (ref=, aff=, via=, etc.)
- Flag if the link looks malformed or suspicious
- Do NOT click the link or test it — just validate the format
Step 6: Assemble Output
Present the output in two clearly separated parts:
- Listing Fields — structured data ready for API submission
- Description — the full markdown content
Step 7: Optional API Submission
If the user wants to submit the listing directly, note that openaffiliate.dev is a community-curated directory. Submissions are made via GitHub pull request to the Affitor/affiliate-skills repository. Format the listing fields below so the user can include them in a PR or share via the community.
{
"name": "...",
"url": "...",
"description": "...",
"reward_type": "...",
"reward_value": "...",
"reward_duration": "...",
"cookie_days": 30,
"tags": ["...", "..."]
}
Step 8: Self-Validation
Before presenting output, verify:
-
namematches official product name (exact capitalization) -
reward_valuecomes from the official affiliate page, not estimated -
reward_typeuses one of the allowed enum values -
cookie_daysis a number from official source or explicitly marked "unverified" - Commission table math is correct (price x percentage = per-sale amount)
- Earning potential uses conservative assumptions (2% CTR, 2% CR) not optimistic ones
- Honest Limitations section contains real drawbacks, not filler
- No data was hallucinated — every number traces to a source
If any check fails, fix the output before delivering. Do not flag the checklist to the user — just ensure the output passes.
Output Schema
Other skills consume these fields from conversation context:
{
output_schema_version: "1.0.0" # Semver — bump major on breaking changes
listing: {
name: string # "HeyGen"
url: string # "https://heygen.com"
description: string # Full markdown description (all sections)
reward_type: string # "cps_recurring" — enum: cpc, cpl, cps_one_time, cps_recurring, cps_lifetime, other
reward_value: string # "30%" or "$50"
reward_duration: string # "12 months" | "lifetime" | null (for one-time)
cookie_days: number # 60
tags: string[] # ["ai", "video", "saas"]
}
sources: {
affiliate_page: string # URL of official affiliate page
pricing_page: string # URL of pricing page
network: string | null # "PartnerStack", "ShareASale", etc.
}
verification: {
all_fields_verified: boolean # true if every field from official source
unverified_fields: string[] # ["cookie_days"] if any field could not be confirmed
}
}
Output Format
## Listing Fields
| Field | Value |
|-------|-------|
| Name | [Product Name] |
| URL | [https://product.com] |
| Reward Type | [cps_recurring] |
| Reward Value | [30%] |
| Reward Duration | [12 months] |
| Cookie Days | [60] |
| Tags | [ai, video, saas] |
**Sources:** Affiliate page: [URL] | Pricing page: [URL] | Network: [Name or "Direct"]
---
## Description
[Opening paragraph]
### Why Promote This Program
- [Bullet 1]
- [Bullet 2]
- [Bullet 3]
### Commission Structure
| Plan | Price | Commission | Per Sale | Type |
|------|-------|-----------|----------|------|
| ... | ... | ... | ... | ... |
Payment: [method], [frequency], [minimum payout]
### Target Audiences
- **[Audience 1]** — [why they can promote this]
- **[Audience 2]** — [why they can promote this]
- **[Audience 3]** — [why they can promote this]
### Earning Potential
| Monthly Traffic | Est. Sales | Monthly Earnings | Annual Earnings |
|----------------|-----------|-----------------|----------------|
| 5,000 visitors | [X] | $[X] | $[X] |
| 20,000 visitors | [X] | $[X] | $[X] |
| 100,000 visitors | [X] | $[X] | $[X] |
*Assumes 2% CTR, 2% conversion rate. [Recurring note if applicable.]*
### Why It Converts
[2-3 sentences]
### Honest Limitations
- [Limitation 1]
- [Limitation 2]
- [Limitation 3]
---
**Ready to share?** Copy the Listing Fields above and submit via a GitHub PR to
Affitor/affiliate-skills, or browse the directory at openaffiliate.dev.
Error Handling
- Program has no affiliate program: Tell the user clearly. Suggest checking back later or searching for similar programs that do offer affiliates. Do not fabricate commission data.
- Affiliate page is behind a login wall: Note that commission details could not be verified from public sources. Use network listing or trusted third-party sources as fallback. Mark unverified fields explicitly.
- Data is unclear or conflicting: When sources disagree (e.g., affiliate page says 20% but network says 25%), note both values and flag the discrepancy. Let the user decide which to use.
- Program recently changed terms: If the affiliate page mentions "updated" or "new" commission rates, note the date if available and flag that terms may change.
- Pricing is usage-based or custom: Use the most common plan tier for earning calculations. Note the assumption. For enterprise-only pricing, use "Contact sales" and skip per-sale calculations for that tier.
- Cookie duration not stated: Mark as "unverified" and note the network default (ShareASale: typically 30d, Impact: varies, PartnerStack: typically 90d). Do not guess.
Examples
Example 1: SaaS with recurring commission User: "List HeyGen's affiliate program"
- Search official affiliate page → 30% recurring, 60-day cookie, via PartnerStack
- Pricing page → Creator $29/mo, Business $89/mo, Enterprise custom
- Build commission table: Creator = $8.70/mo, Business = $26.70/mo
- Earning potential at 5K visitors: ~2 sales/mo = $17-53/mo (month 1), compounding
- Tags: ai, video, saas, content-creation
- Limitations: competitive niche, product requires learning curve
Example 2: One-time commission program User: "Add Bluehost affiliate program to the list"
- Search → $65+ per signup (one-time), 90-day cookie, direct program
- Pricing → Basic $2.95/mo, Plus $5.45/mo, Choice Plus $5.45/mo
- reward_type: cps_one_time, reward_value: "$65+"
- Earning potential: straightforward per-sale math, no compounding
- Tags: hosting, wordpress, web-hosting, beginner-friendly
- Limitations: saturated market, aggressive competitor affiliates, low-margin hosting
Example 3: Program with unverifiable data User: "Create a listing for this new AI tool I found — ToolXYZ"
- Search affiliate page → behind login, cannot verify commission
- Network listing found on ShareASale → 15% recurring, cookie not specified
- Mark cookie_days as "unverified", note ShareASale default is typically 30 days
- Pricing page → $19/mo and $49/mo plans
- Flag in output: "Commission verified via ShareASale listing. Cookie duration unverified."
- Proceed with listing, clearly marking unverified fields
Flywheel Connections
Feeds Into
affiliate-blog-builder(S3) — listing data powers review articles and roundup postslanding-page-creator(S4) — commission structure and product details feed landing pagescomparison-post-writer(S3) — verified program data for side-by-side comparisonscommission-calculator(S1) — structured commission data for earnings projectionsviral-post-writer(S2) — program highlights for social contentbonus-stack-builder(S4) — product knowledge informs bonus design
Fed By
affiliate-program-search(S1) — discovered programs that need to be listedniche-opportunity-finder(S1) — high-opportunity niches with programs worth documentingconversion-tracker(S6) — top-performing programs worth listing for the community
Feedback Loop
- Community engagement on openaffiliate.dev (stars, comments) reveals which listing styles and description formats drive the most affiliate signups. High-star listings become templates for future listings. Low-engagement listings get revised with better earning potential data and more specific audience targeting.
chain_metadata:
skill_slug: "submit-program"
stage: "research"
timestamp: string
suggested_next:
- "affiliate-blog-builder"
- "comparison-post-writer"
- "landing-page-creator"
- "commission-calculator"
Quality Gate
Before marking this skill's output as complete:
- Every commission number traces to an official source URL
- The
reward_typeis a valid enum value from the openaffiliate.dev schema - Earning potential math is correct and uses conservative assumptions
- The description contains all required sections (Opening, Why Promote, Commission Table, Target Audiences, Earning Potential, Why It Converts, Honest Limitations)
- At least one real limitation is listed — no "this program is perfect" outputs
- Unverified fields are explicitly flagged, never silently estimated
- Tags are lowercase, 3-6 items, and relevant to the program's niche
References
affiliate-program-search/references/openaffiliate-api.md— API endpoints for openaffiliate.dev (public, no auth)shared/references/affiliate-glossary.md— reward_type definitions and field namesshared/references/flywheel-connections.md— master flywheel connection map
| 1 | |
| 2 | name submit-program |
| 3 | description > |
| 4 | Research an affiliate program and create a verified listing for openaffiliate.dev. |
| 5 | Use this skill when the user asks anything about listing a program, adding an affiliate |
| 6 | program to the directory, submitting a program to list, creating a listing, documenting |
| 7 | an affiliate program, sharing an affiliate program, writing a program profile, posting |
| 8 | a program to openaffiliate.dev, or contributing a new program. |
| 9 | Also trigger for: "list a program", "add affiliate program", "submit program to list", |
| 10 | "create listing for X", "document affiliate program", "share affiliate program", |
| 11 | "write a listing", "post to openaffiliate.dev", "add X to the directory", |
| 12 | "register an affiliate program", "publish affiliate program", "new program listing", |
| 13 | "profile this affiliate program", "catalog this program". |
| 14 | license MIT |
| 15 | version "1.0.0" |
| 16 | tags ["affiliate-marketing", "research", "listing", "directory", "commission", "program-profile"] |
| 17 | compatibility "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent" |
| 18 | metadata |
| 19 | author affitor |
| 20 | version "1.0" |
| 21 | stage S1-Research |
| 22 | |
| 23 | |
| 24 | # Affiliate Program Lister |
| 25 | |
| 26 | Research an affiliate program from official sources and produce a verified, publish-ready |
| 27 | listing for [openaffiliate.dev]. Every number comes from the |
| 28 | program's official affiliate page, network page, or pricing page. No guessing. |
| 29 | |
| 30 | ## Stage |
| 31 | |
| 32 | This skill belongs to Stage S1: Research |
| 33 | |
| 34 | ## When to Use |
| 35 | |
| 36 | User wants to add an affiliate program to openaffiliate.dev |
| 37 | User wants to document a program's commission structure in a standard format |
| 38 | User found a program and wants to create a shareable profile for other affiliates |
| 39 | User is contributing to the community directory |
| 40 | User says "list this program" or "add X to the directory" |
| 41 | |
| 42 | ## Input Schema |
| 43 | |
| 44 | |
| 45 | { |
| 46 | program_name: string # (required) Name of the affiliate program, e.g., "HeyGen" |
| 47 | affiliate_link: string # (optional) User's affiliate link to include in the listing |
| 48 | niche: string # (optional) Category hint, e.g., "AI video", "email marketing" |
| 49 | } |
| 50 | |
| 51 | |
| 52 | ## Workflow |
| 53 | |
| 54 | ### Step 1: Confirm Program and Context |
| 55 | |
| 56 | Confirm the program name with the user. Ask: |
| 57 | Do you have an affiliate link for this program? (optional — used for verification only) |
| 58 | What niche or category does it fall under? (helps with tagging) |
| 59 | |
| 60 | If the user says "just list it" or provides enough context, skip questions and proceed. |
| 61 | |
| 62 | ### Step 2: Research from Official Sources |
| 63 | |
| 64 | Research the program using only official, verifiable sources. Search in this order: |
| 65 | |
| 66 | **Official affiliate/partner page** — `web_search "[program name] affiliate program"` or |
| 67 | `web_search "[program name] partner program"`. This is the primary source for commission |
| 68 | structure, cookie duration, payment terms, and signup link. |
| 69 | |
| 70 | **Affiliate network page** — If the program runs through a network (ShareASale, CJ, |
| 71 | Impact, PartnerStack, Rewardful, etc.), find the network listing for additional details. |
| 72 | |
| 73 | **Official pricing page** — `web_search "[program name] pricing"`. Needed to calculate |
| 74 | realistic earnings (commission % means nothing without knowing the price). |
| 75 | |
| 76 | **Credibility signals** — Look for: number of customers, notable clients, funding raised, |
| 77 | year founded, G2/Capterra rating, social proof. These go in the description. |
| 78 | |
| 79 | For each data point, note the source. If a value cannot be verified from official sources, |
| 80 | mark it as "unverified" in the output. |
| 81 | |
| 82 | ### Step 3: Extract Listing Fields |
| 83 | |
| 84 | Fill in the structured listing fields from the research: |
| 85 | |
| 86 | | Field | Source | Notes | |
| 87 | |-------|--------|-------| |
| 88 | | `name` | Official product name | Exact capitalization from their website | |
| 89 | | `url` | Product homepage | Main website, not affiliate signup page | |
| 90 | | `reward_type` | Affiliate page | One of: `cpc`, `cpl`, `cps_one_time`, `cps_recurring`, `cps_lifetime`, `other` | |
| 91 | | `reward_value` | Affiliate page | e.g., "30%", "$50", "$0.10 per click" | |
| 92 | | `reward_duration` | Affiliate page | For recurring: "12 months", "lifetime", etc. Omit for one-time | |
| 93 | | `cookie_days` | Affiliate page | Number only. If not stated, mark "unverified" and estimate from network norms | |
| 94 | | `tags` | Niche + features | 3-6 lowercase tags, e.g., `["ai", "video", "saas"]` | |
| 95 | |
| 96 | **Reward type mapping:** |
| 97 | "X% of each sale" (one purchase) → `cps_one_time` |
| 98 | "X% recurring" or "X% for Y months" → `cps_recurring` |
| 99 | "X% for life of customer" → `cps_lifetime` |
| 100 | "Pay per lead / free trial signup" → `cpl` |
| 101 | "Pay per click" → `cpc` |
| 102 | Anything else → `other` (explain in description) |
| 103 | |
| 104 | ### Step 4: Write the Description |
| 105 | |
| 106 | The description is structured markdown that helps affiliates decide if the program is worth |
| 107 | promoting. Write these sections in order: |
| 108 | |
| 109 | **Opening (2-3 sentences)** |
| 110 | What the product does, who it serves, and why affiliates should care. Lead with the value |
| 111 | proposition, not the company history. |
| 112 | |
| 113 | **Why Promote This Program** |
| 114 | 3-5 bullet points covering: commission rate highlights, cookie duration, payment reliability, |
| 115 | product-market fit, conversion-friendly features (free trial, demo, low friction signup). |
| 116 | |
| 117 | **Commission Structure** |
| 118 | A markdown table with all commission tiers if multiple exist: |
| 119 | |
| 120 | |
| 121 | | Plan | Price | Commission | Per Sale | Type | |
| 122 | |------|-------|-----------|----------|------| |
| 123 | | Starter | $29/mo | 30% | $8.70/mo | Recurring | |
| 124 | | Pro | $89/mo | 30% | $26.70/mo | Recurring | |
| 125 | | Enterprise | Custom | 30% | Varies | Recurring | |
| 126 | |
| 127 | |
| 128 | Include: minimum payout threshold, payment methods (PayPal, wire, etc.), payment frequency |
| 129 | (monthly, net-30, etc.) if found. |
| 130 | |
| 131 | **Target Audiences** |
| 132 | Who can promote this product effectively. List 3-5 specific audience types with brief |
| 133 | reasoning, e.g., "YouTube creators making tutorial content — visual product, easy to demo." |
| 134 | |
| 135 | **Earning Potential** |
| 136 | Realistic earnings at three traffic levels using conservative conversion assumptions |
| 137 | (2% CTR, 2% conversion rate): |
| 138 | |
| 139 | |
| 140 | | Monthly Traffic | Est. Sales | Monthly Earnings | Annual Earnings | |
| 141 | |----------------|-----------|-----------------|----------------| |
| 142 | | 5,000 visitors | 2 | $X | $X | |
| 143 | | 20,000 visitors | 8 | $X | $X | |
| 144 | | 100,000 visitors | 40 | $X | $X | |
| 145 | |
| 146 | |
| 147 | For recurring programs, show month-12 compounded earnings, not just month-1. |
| 148 | |
| 149 | **Why It Converts** |
| 150 | 2-3 sentences on what makes this product easy to sell: free tier, strong brand recognition, |
| 151 | low-commitment entry point, visual demo potential, etc. |
| 152 | |
| 153 | **Honest Limitations** |
| 154 | 2-3 bullet points on real drawbacks. Every program has them. Examples: short cookie window, |
| 155 | high competition from other affiliates, niche audience only, high price point limits |
| 156 | conversions, payout threshold too high for beginners. |
| 157 | |
| 158 | ### Step 5: Verify Affiliate Link (If Provided) |
| 159 | |
| 160 | If the user provided an affiliate link: |
| 161 | Check that the domain matches the program's known affiliate tracking domain |
| 162 | Check for expected URL parameters (ref=, aff=, via=, etc.) |
| 163 | Flag if the link looks malformed or suspicious |
| 164 | Do NOT click the link or test it — just validate the format |
| 165 | |
| 166 | ### Step 6: Assemble Output |
| 167 | |
| 168 | Present the output in two clearly separated parts: |
| 169 | **Listing Fields** — structured data ready for API submission |
| 170 | **Description** — the full markdown content |
| 171 | |
| 172 | ### Step 7: Optional API Submission |
| 173 | |
| 174 | If the user wants to submit the listing directly, note that openaffiliate.dev is a |
| 175 | community-curated directory. Submissions are made via GitHub pull request to the |
| 176 | Affitor/affiliate-skills repository. Format the listing fields below so the user |
| 177 | can include them in a PR or share via the community. |
| 178 | |
| 179 | |
| 180 | { |
| 181 | "name": "...", |
| 182 | "url": "...", |
| 183 | "description": "...", |
| 184 | "reward_type": "...", |
| 185 | "reward_value": "...", |
| 186 | "reward_duration": "...", |
| 187 | "cookie_days": 30, |
| 188 | "tags": ["...", "..."] |
| 189 | } |
| 190 | |
| 191 | |
| 192 | ### Step 8: Self-Validation |
| 193 | |
| 194 | Before presenting output, verify: |
| 195 | |
| 196 | [ ] `name` matches official product name (exact capitalization) |
| 197 | [ ] `reward_value` comes from the official affiliate page, not estimated |
| 198 | [ ] `reward_type` uses one of the allowed enum values |
| 199 | [ ] `cookie_days` is a number from official source or explicitly marked "unverified" |
| 200 | [ ] Commission table math is correct (price x percentage = per-sale amount) |
| 201 | [ ] Earning potential uses conservative assumptions (2% CTR, 2% CR) not optimistic ones |
| 202 | [ ] Honest Limitations section contains real drawbacks, not filler |
| 203 | [ ] No data was hallucinated — every number traces to a source |
| 204 | |
| 205 | If any check fails, fix the output before delivering. Do not flag the checklist to the |
| 206 | user — just ensure the output passes. |
| 207 | |
| 208 | ## Output Schema |
| 209 | |
| 210 | Other skills consume these fields from conversation context: |
| 211 | |
| 212 | |
| 213 | { |
| 214 | output_schema_version: "1.0.0" # Semver — bump major on breaking changes |
| 215 | listing: { |
| 216 | name: string # "HeyGen" |
| 217 | url: string # "https://heygen.com" |
| 218 | description: string # Full markdown description (all sections) |
| 219 | reward_type: string # "cps_recurring" — enum: cpc, cpl, cps_one_time, cps_recurring, cps_lifetime, other |
| 220 | reward_value: string # "30%" or "$50" |
| 221 | reward_duration: string # "12 months" | "lifetime" | null (for one-time) |
| 222 | cookie_days: number # 60 |
| 223 | tags: string[] # ["ai", "video", "saas"] |
| 224 | } |
| 225 | sources: { |
| 226 | affiliate_page: string # URL of official affiliate page |
| 227 | pricing_page: string # URL of pricing page |
| 228 | network: string | null # "PartnerStack", "ShareASale", etc. |
| 229 | } |
| 230 | verification: { |
| 231 | all_fields_verified: boolean # true if every field from official source |
| 232 | unverified_fields: string[] # ["cookie_days"] if any field could not be confirmed |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | |
| 237 | ## Output Format |
| 238 | |
| 239 | |
| 240 | ## Listing Fields |
| 241 | |
| 242 | | Field | Value | |
| 243 | |-------|-------| |
| 244 | | Name | [Product Name] | |
| 245 | | URL | [https://product.com] | |
| 246 | | Reward Type | [cps_recurring] | |
| 247 | | Reward Value | [30%] | |
| 248 | | Reward Duration | [12 months] | |
| 249 | | Cookie Days | [60] | |
| 250 | | Tags | [ai, video, saas] | |
| 251 | |
| 252 | **Sources:** Affiliate page: [URL] | Pricing page: [URL] | Network: [Name or "Direct"] |
| 253 | |
| 254 | |
| 255 | |
| 256 | ## Description |
| 257 | |
| 258 | [Opening paragraph] |
| 259 | |
| 260 | ### Why Promote This Program |
| 261 | |
| 262 | - [Bullet 1] |
| 263 | - [Bullet 2] |
| 264 | - [Bullet 3] |
| 265 | |
| 266 | ### Commission Structure |
| 267 | |
| 268 | | Plan | Price | Commission | Per Sale | Type | |
| 269 | |------|-------|-----------|----------|------| |
| 270 | | ... | ... | ... | ... | ... | |
| 271 | |
| 272 | Payment: [method], [frequency], [minimum payout] |
| 273 | |
| 274 | ### Target Audiences |
| 275 | |
| 276 | - **[Audience 1]** — [why they can promote this] |
| 277 | - **[Audience 2]** — [why they can promote this] |
| 278 | - **[Audience 3]** — [why they can promote this] |
| 279 | |
| 280 | ### Earning Potential |
| 281 | |
| 282 | | Monthly Traffic | Est. Sales | Monthly Earnings | Annual Earnings | |
| 283 | |----------------|-----------|-----------------|----------------| |
| 284 | | 5,000 visitors | [X] | $[X] | $[X] | |
| 285 | | 20,000 visitors | [X] | $[X] | $[X] | |
| 286 | | 100,000 visitors | [X] | $[X] | $[X] | |
| 287 | |
| 288 | *Assumes 2% CTR, 2% conversion rate. [Recurring note if applicable.]* |
| 289 | |
| 290 | ### Why It Converts |
| 291 | |
| 292 | [2-3 sentences] |
| 293 | |
| 294 | ### Honest Limitations |
| 295 | |
| 296 | - [Limitation 1] |
| 297 | - [Limitation 2] |
| 298 | - [Limitation 3] |
| 299 | |
| 300 | |
| 301 | |
| 302 | **Ready to share?** Copy the Listing Fields above and submit via a GitHub PR to |
| 303 | Affitor/affiliate-skills, or browse the directory at openaffiliate.dev. |
| 304 | |
| 305 | |
| 306 | ## Error Handling |
| 307 | |
| 308 | **Program has no affiliate program:** Tell the user clearly. Suggest checking back later |
| 309 | or searching for similar programs that do offer affiliates. Do not fabricate commission data. |
| 310 | **Affiliate page is behind a login wall:** Note that commission details could not be |
| 311 | verified from public sources. Use network listing or trusted third-party sources as |
| 312 | fallback. Mark unverified fields explicitly. |
| 313 | **Data is unclear or conflicting:** When sources disagree (e.g., affiliate page says 20% |
| 314 | but network says 25%), note both values and flag the discrepancy. Let the user decide |
| 315 | which to use. |
| 316 | **Program recently changed terms:** If the affiliate page mentions "updated" or "new" |
| 317 | commission rates, note the date if available and flag that terms may change. |
| 318 | **Pricing is usage-based or custom:** Use the most common plan tier for earning |
| 319 | calculations. Note the assumption. For enterprise-only pricing, use "Contact sales" and |
| 320 | skip per-sale calculations for that tier. |
| 321 | **Cookie duration not stated:** Mark as "unverified" and note the network default |
| 322 | (ShareASale: typically 30d, Impact: varies, PartnerStack: typically 90d). Do not guess. |
| 323 | |
| 324 | ## Examples |
| 325 | |
| 326 | **Example 1: SaaS with recurring commission** |
| 327 | User: "List HeyGen's affiliate program" |
| 328 | Search official affiliate page → 30% recurring, 60-day cookie, via PartnerStack |
| 329 | Pricing page → Creator $29/mo, Business $89/mo, Enterprise custom |
| 330 | Build commission table: Creator = $8.70/mo, Business = $26.70/mo |
| 331 | Earning potential at 5K visitors: ~2 sales/mo = $17-53/mo (month 1), compounding |
| 332 | Tags: ai, video, saas, content-creation |
| 333 | Limitations: competitive niche, product requires learning curve |
| 334 | |
| 335 | **Example 2: One-time commission program** |
| 336 | User: "Add Bluehost affiliate program to the list" |
| 337 | Search → $65+ per signup (one-time), 90-day cookie, direct program |
| 338 | Pricing → Basic $2.95/mo, Plus $5.45/mo, Choice Plus $5.45/mo |
| 339 | reward_type: cps_one_time, reward_value: "$65+" |
| 340 | Earning potential: straightforward per-sale math, no compounding |
| 341 | Tags: hosting, wordpress, web-hosting, beginner-friendly |
| 342 | Limitations: saturated market, aggressive competitor affiliates, low-margin hosting |
| 343 | |
| 344 | **Example 3: Program with unverifiable data** |
| 345 | User: "Create a listing for this new AI tool I found — ToolXYZ" |
| 346 | Search affiliate page → behind login, cannot verify commission |
| 347 | Network listing found on ShareASale → 15% recurring, cookie not specified |
| 348 | Mark cookie_days as "unverified", note ShareASale default is typically 30 days |
| 349 | Pricing page → $19/mo and $49/mo plans |
| 350 | Flag in output: "Commission verified via ShareASale listing. Cookie duration unverified." |
| 351 | Proceed with listing, clearly marking unverified fields |
| 352 | |
| 353 | ## Flywheel Connections |
| 354 | |
| 355 | ### Feeds Into |
| 356 | `affiliate-blog-builder` (S3) — listing data powers review articles and roundup posts |
| 357 | `landing-page-creator` (S4) — commission structure and product details feed landing pages |
| 358 | `comparison-post-writer` (S3) — verified program data for side-by-side comparisons |
| 359 | `commission-calculator` (S1) — structured commission data for earnings projections |
| 360 | `viral-post-writer` (S2) — program highlights for social content |
| 361 | `bonus-stack-builder` (S4) — product knowledge informs bonus design |
| 362 | |
| 363 | ### Fed By |
| 364 | `affiliate-program-search` (S1) — discovered programs that need to be listed |
| 365 | `niche-opportunity-finder` (S1) — high-opportunity niches with programs worth documenting |
| 366 | `conversion-tracker` (S6) — top-performing programs worth listing for the community |
| 367 | |
| 368 | ### Feedback Loop |
| 369 | Community engagement on openaffiliate.dev (stars, comments) reveals which listing styles |
| 370 | and description formats drive the most affiliate signups. High-star listings become |
| 371 | templates for future listings. Low-engagement listings get revised with better earning |
| 372 | potential data and more specific audience targeting. |
| 373 | |
| 374 | |
| 375 | chain_metadata: |
| 376 | skill_slug: "submit-program" |
| 377 | stage: "research" |
| 378 | timestamp: string |
| 379 | suggested_next: |
| 380 | - "affiliate-blog-builder" |
| 381 | - "comparison-post-writer" |
| 382 | - "landing-page-creator" |
| 383 | - "commission-calculator" |
| 384 | |
| 385 | |
| 386 | ## Quality Gate |
| 387 | |
| 388 | Before marking this skill's output as complete: |
| 389 | |
| 390 | Every commission number traces to an official source URL |
| 391 | The `reward_type` is a valid enum value from the openaffiliate.dev schema |
| 392 | Earning potential math is correct and uses conservative assumptions |
| 393 | The description contains all required sections (Opening, Why Promote, Commission Table, Target Audiences, Earning Potential, Why It Converts, Honest Limitations) |
| 394 | At least one real limitation is listed — no "this program is perfect" outputs |
| 395 | Unverified fields are explicitly flagged, never silently estimated |
| 396 | Tags are lowercase, 3-6 items, and relevant to the program's niche |
| 397 | |
| 398 | ## References |
| 399 | |
| 400 | `affiliate-program-search/references/openaffiliate-api.md` — API endpoints for openaffiliate.dev (public, no auth) |
| 401 | `shared/references/affiliate-glossary.md` — reward_type definitions and field names |
| 402 | `shared/references/flywheel-connections.md` — master flywheel connection map |
| 403 |
Details
- Version
- 1.0.0
- Updated
- Sep 15, 2026
- License
- MIT
- Stars on the repo
- ★ 672
- Checked
- Source
- Affitor/affiliate-skills ↗
- Creator
- Affitor · 11 listings
Similar skills
See all →
SkillDesigns and improves referral, affiliateReferral programs
SkillPlan, implement, or optimize affiliate marketing strategy
SkillBuild and manage an affiliate marketing program
MCPAffiliate network MCPs and skillsAffiliatemcp
SkillCreate, optimize, or analyze a referral programReferral & Affiliate Programs
SkillCreate, optimize, or analyze a referral programMore from Affitor
SkillResearch and evaluate affiliate programs to find the bestAffiliate program search
SkillLive affiliate program data from openaffiliate.devaffiliate-check: Live Affiliate Program Data
SkillCalculate realistic affiliate earnings projections beforeCommission calculator
SkillReverse-engineer successful affiliate strategiesCompetitor spy
SkillTake 1 blog post or article and generate 15-30Content pillar atomizer
SkillFind affiliate programs in the OpenAffiliate registryFind and verify affiliate program