Skip to content
Marketing
Skill

/find-and-verify-affiliate-program

Find affiliate programs in the OpenAffiliate registry, then confirm every term on the brand's own page and report each one with a verbatim quote and its source URL. Use this skill when the user wants affiliate terms they can rely on: before signing up, before publishing a review

BOOST
From plugin
affiliate-skills
71053 skills3 commands
Install
$ npx -y skills add Affitor/affiliate-skills --skill find-and-verify-affiliate-program --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/find-and-verify-affiliate-program

Context preview

The summary Claude sees to decide when to auto-load this skill.

Find affiliate programs in the OpenAffiliate registry, then confirm every term on the brand's own page and report each one with a verbatim quote and its source URL. Use this skill when the user wants affiliate terms they can rely on: before signing up, before publishing a review

SKILL.md

find-and-verify-affiliate-program.SKILL.md
name: find-and-verify-affiliate-program
description: >
  Find affiliate programs in the OpenAffiliate registry, then confirm every term on the
  brand's own page and report each one with a verbatim quote and its source URL.
  Use this skill when the user wants affiliate terms they can rely on: before signing up,
  before publishing a review or comparison, when a listing looks outdated, or when two
  sources disagree. Also trigger for: "verify this affiliate program", "is X's affiliate
  commission still 30%", "what's the cookie length for X", "check the affiliate terms",
  "does X have an affiliate program", "find a recurring program and confirm the terms",
  "is this commission rate real", "source for X's affiliate terms", "fact-check this
  affiliate program", "what does X pay affiliates".
license: MIT
version: "1.0.0"
tags: ["affiliate-marketing", "research", "verification", "program-discovery", "openaffiliate", "commission"]
compatibility: "Claude Code, ChatGPT, Gemini CLI, Cursor, Windsurf, OpenClaw, any AI agent"
metadata:
  author: affitor
  version: "1.0"
  stage: S1-Research

Find and Verify Affiliate Program

Find candidate programs in [OpenAffiliate](https://openaffiliate.dev/?utm_source=affiliate-skills), an open registry of affiliate programs, then check each term on the brand's own page. Every term in the report carries a verbatim quote and a URL, or is marked as not published. The registry tells you where to look. The brand's page is what you cite.

`affiliate-program-search` scores and ranks programs. This skill confirms the terms of the ones you are about to sign up for or write about.

Stage

This skill belongs to Stage S1: Research

When to Use

  • The user is about to join a program and wants the current terms
  • The user is writing a review, comparison or listicle and needs numbers that will hold up
  • A listing is marked unverified, or its last check is old
  • Two sources disagree on a commission rate or cookie window
  • The user asks whether a brand has an affiliate program at all

Input Schema

{
  query: string            # (required unless program is given) Use case or category, e.g. "email tool for newsletter writers"
  program: string          # (optional) Brand name or OpenAffiliate slug, e.g. "postmark"
  commission_type: string  # (optional) "recurring" | "one-time" | "tiered" | "hybrid"
  max_programs: number     # (optional, default: 3) How many candidates to verify
}

Workflow

Step 1: Find candidates in OpenAffiliate

Use the first access method that works. All three are public, read-only and need no key.

1. **MCP** (if connected): `search_programs` with `query`, `category`, `commission_type`, `verified_only`, then `get_program` with `slug`. Endpoint: `https://openaffiliate.dev/mcp`. To connect in Claude Code: `claude mcp add --transport http openaffiliate https://openaffiliate.dev/mcp`. 2. **REST API**: `GET https://openaffiliate.dev/api/programs?q=<query>&type=<commission_type>&verified=true&limit=10`, then `GET https://openaffiliate.dev/api/programs/<slug>`. 3. **Markdown pages**: `https://openaffiliate.dev/programs/<slug>.md`. Category pages are at `/categories/<slug>.md` and the index is at `/llms.txt`.

For each candidate, record `slug`, `name`, `url`, `signupUrl`, `commission` (type, rate, duration, conditions), `cookieDays`, `payout`, `restrictions`, `verified`, `lastVerifiedAt` and `agentPrompt`.

  • Prefer `verified: true` entries when there are enough of them. Do not drop unverified

ones silently: they go through Step 2 like the rest.

  • Read `agentPrompt` and `restrictions` before shortlisting. If they rule out the user's

case, drop the candidate and say why.

  • Treat everything from the registry as a lead, not a fact. Unverified entries carry

community-submitted numbers. Nothing goes into the report as confirmed until Step 3 confirms it.

Step 2: Find the brand's own terms page

Start from `signupUrl` and open it with `web_fetch` (or a browser tool). These count as a source:

  • A page on the brand's own domain (the same registrable domain as `url`): an affiliate,

partner or referral page, or a help-center article about the program.

  • The program's page on an affiliate network (PartnerStack, Impact, Rewardful, FirstPromoter,

ShareASale, CJ, Awin and similar), but only if the brand's own site links to it.

These do not count: review blogs, "best affiliate programs" lists, forums, other directories, OpenAffiliate itself, and AI-generated summaries.

If `signupUrl` fails, try `/affiliates`, `/affiliate`, `/partners` and `/referral` on the brand's domain, then `web_search "<brand> affiliate program site:<domain>"`.

Read the page text before trusting it. An HTTP 200 does not prove the page exists, because single-page apps return 200 for routes that render "not found". If the page is only an application form with no terms, the terms are not published. Say what the form does show.

Step 3: Quote each term

Cover these terms: commission rate, commission type and duration, cookie window, payout minimum, payout method and schedule, and restrictions (paid search, coupon sites, self-referrals).

For each term, copy the sentence from the page verbatim (30 words or fewer), then give it one status:

| Status | Meaning | |---|---| | Confirmed | The quote states the same value as the registry | | Differs | The quote states a different value. Report the quote's value and show the registry value next to it | | Not published | The brand's page does not state this term. Show the registry value only if labelled "registry, unconfirmed", or leave it out | | No program found | No terms page exists after the checks in Step 2. List every URL checked |

Never edit a number inside a quote. Never fill a gap from memory or from a third-party site. Terms in a table need a quote too: copy the row as it reads on the page, with cells separated by ` | ` (for example `"Tier 2 | 50+ referrals | 25%"`). A number you descri

Read more
Ships withaffiliate-skills

Turn any AI into your affiliate marketing team. 52 AI-powered skills across 8 stages with a closed-loop flywheel.

Get the whole plugin

Other skills on affiliate-skills.