Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 114587831e | |||
| 908500123b | |||
| 0fd7bb5ad9 | |||
| 4b54b0dd6f | |||
| 8b0a54eef9 | |||
| c08ae5ff3d | |||
| dc7fea85bf | |||
| 4b37de5228 | |||
| 75e8221af8 | |||
| 148fe208ed |
@@ -6,7 +6,7 @@
|
||||
},
|
||||
"metadata": {
|
||||
"description": "Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, and growth",
|
||||
"version": "2.0.0",
|
||||
"version": "2.0.1",
|
||||
"repository": "https://github.com/coreyhaines31/marketingskills"
|
||||
},
|
||||
"plugins": [
|
||||
|
||||
+13
-3
@@ -6,7 +6,7 @@ Current versions of all skills. Agents can compare against local versions to che
|
||||
|-------|---------|--------------|
|
||||
| ab-testing | 2.0.0 | 2026-05-05 |
|
||||
| ad-creative | 2.0.0 | 2026-05-05 |
|
||||
| ai-seo | 2.0.0 | 2026-05-05 |
|
||||
| ai-seo | 2.0.1 | 2026-05-18 |
|
||||
| analytics | 2.0.0 | 2026-05-05 |
|
||||
| aso | 2.0.0 | 2026-05-05 |
|
||||
| churn-prevention | 2.0.0 | 2026-05-05 |
|
||||
@@ -23,7 +23,7 @@ Current versions of all skills. Agents can compare against local versions to che
|
||||
| directory-submissions | 2.0.0 | 2026-05-05 |
|
||||
| emails | 2.0.0 | 2026-05-05 |
|
||||
| free-tools | 2.0.0 | 2026-05-05 |
|
||||
| image | 2.0.0 | 2026-05-05 |
|
||||
| image | 2.0.1 | 2026-05-18 |
|
||||
| launch | 2.0.0 | 2026-05-05 |
|
||||
| lead-magnets | 2.0.0 | 2026-05-05 |
|
||||
| marketing-ideas | 2.0.0 | 2026-05-05 |
|
||||
@@ -43,10 +43,20 @@ Current versions of all skills. Agents can compare against local versions to che
|
||||
| signup | 2.0.0 | 2026-05-05 |
|
||||
| site-architecture | 2.0.0 | 2026-05-05 |
|
||||
| social | 2.0.0 | 2026-05-05 |
|
||||
| video | 2.0.0 | 2026-05-05 |
|
||||
| video | 2.0.1 | 2026-05-18 |
|
||||
|
||||
## Recent Changes
|
||||
|
||||
### 2.0.1 (2026-05-18)
|
||||
|
||||
Content patch — no breaking changes, no new skills.
|
||||
|
||||
- **ai-seo** (2.0.0 → 2.0.1): aligned with Google's official AI features optimization guide. Added sections for Google's stance on AI optimization, query fan-out, agentic experiences (including UCP), explicit "what NOT to do" (scaled content abuse, etc.), and Search Console expectations. Reframed llms.txt / pricing.md / schema markup recommendations as "Google says not required, helpful for non-Google AI engines." Moved content-type tactics to `references/content-types.md` (added local/ecom Merchant Center + Business Profile guidance per Google).
|
||||
- **image** (2.0.0 → 2.0.1): refreshed model lineup to current May 2026 releases — Nano Banana / Nano Banana Pro family naming, Flux Pro 1.1 + Kontext + Dev + Schnell variants, Ideogram 3.0, ChatGPT Images 2.0 / GPT Image, Midjourney v7, Recraft V3, SD 3.5 / SDXL. Updated decision tree and trigger phrases.
|
||||
- **video** (2.0.0 → 2.0.1): refreshed model lineup — Sora 2 promoted from limited-availability caveat, Kling 2.5/3.0, added Seedance (ByteDance), Hailuo / MiniMax (character consistency), Hunyuan Video / Wan 2 (open-weight self-hosted), Pika 2.x. New "Quick picks" guide.
|
||||
|
||||
Total skills: 40 (unchanged).
|
||||
|
||||
### 2.0.0 (2026-05-05)
|
||||
|
||||
**Breaking changes** — Users must reinstall skills after this update.
|
||||
|
||||
@@ -8,7 +8,7 @@ Reference for using AI image generators, video generators, and code-based video
|
||||
|
||||
| Need | Tool Category | Best Fit |
|
||||
|------|---------------|----------|
|
||||
| Static ad images (banners, social) | Image generation | Nano Banana Pro, Flux, Ideogram |
|
||||
| Static ad images (banners, social) | Image generation | ChatGPT Images 2.0, Nano Banana Pro, Flux, Ideogram |
|
||||
| Ad images with text overlays | Image generation (text-capable) | Ideogram, Nano Banana Pro |
|
||||
| Short video ads (6-30 sec) | Video generation | Veo, Kling, Runway, Sora, Seedance |
|
||||
| Video ads with voiceover | Video gen + voice | Veo/Sora (native), or Runway + ElevenLabs |
|
||||
|
||||
+86
-44
@@ -2,7 +2,7 @@
|
||||
name: ai-seo
|
||||
description: "When the user wants to optimize content for AI search engines, get cited by LLMs, or appear in AI-generated answers. Also use when the user mentions 'AI SEO,' 'AEO,' 'GEO,' 'LLMO,' 'answer engine optimization,' 'generative engine optimization,' 'LLM optimization,' 'AI Overviews,' 'optimize for ChatGPT,' 'optimize for Perplexity,' 'AI citations,' 'AI visibility,' 'zero-click search,' 'how do I show up in AI answers,' 'LLM mentions,' or 'optimize for Claude/Gemini.' Use this whenever someone wants their content to be cited or surfaced by AI assistants and AI search engines. For traditional technical and on-page SEO audits, see seo-audit. For structured data implementation, see schema."
|
||||
metadata:
|
||||
version: 2.0.0
|
||||
version: 2.0.1
|
||||
---
|
||||
|
||||
# AI SEO
|
||||
@@ -66,6 +66,45 @@ In traditional search, you need to rank on page 1. In AI search, a well-structur
|
||||
- Optimized content gets cited 3x more often than non-optimized
|
||||
- Statistics and citations boost visibility by 40%+ across queries
|
||||
|
||||
### Google's Official Stance vs. Multi-Platform Reality
|
||||
|
||||
This is important to read once before doing anything else.
|
||||
|
||||
**Google's position** ([AI features optimization guide](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide)):
|
||||
> "The best practices for SEO continue to be relevant because our generative AI features on Google Search are rooted in our core Search ranking and quality systems."
|
||||
|
||||
Google explicitly says:
|
||||
- **No special markup or files are required** for AI Overviews or AI Mode
|
||||
- **Don't chunk content for AI** — write for people, organize with normal headings and paragraphs
|
||||
- **Don't write separate content for AI** — that risks "scaled content abuse" spam policy
|
||||
- **Helpful, reliable, people-first content** wins — same E-E-A-T standards as regular Search
|
||||
- **No AI-specific Search Console reporting** — use standard SEO metrics
|
||||
|
||||
**Other AI engines (ChatGPT, Claude, Perplexity, Copilot) behave differently:**
|
||||
- They actively reward extractable structure — passages, FAQs, comparison tables, definition blocks
|
||||
- They parse `llms.txt`, structured pricing pages, and machine-readable files when present
|
||||
- They cite third-party sources (Reddit, Wikipedia, review sites) more heavily than top-ranked pages
|
||||
|
||||
**What this means for the work:**
|
||||
- The structural patterns in this skill (40–60 word answer blocks, FAQ schema, comparison tables) help **non-Google AI engines** materially. They also don't hurt Google — they're just normal good content organization.
|
||||
- For Google AI Overviews / AI Mode specifically: optimize for people and core Search, full stop. Strong E-E-A-T, original information, semantic HTML, clean indexability.
|
||||
- For ChatGPT/Claude/Perplexity: layer on the extractable structure + llms.txt + machine-readable files.
|
||||
|
||||
When in doubt, default to "write for people, organize for clarity" — that satisfies both camps.
|
||||
|
||||
### Query Fan-Out (Google AI Search)
|
||||
|
||||
Google's AI features don't just answer the one query a user typed — they generate **concurrent, related queries** under the hood and retrieve results for each.
|
||||
|
||||
Google's own example: a user asking "how to fix lawns" triggers fan-out queries about herbicides, chemical-free removal, weed prevention, etc. The AI synthesizes across all of them.
|
||||
|
||||
**Implications:**
|
||||
- Single-page-per-keyword targeting is less effective. Cover the **full topical cluster** so you're retrievable for the fan-out variants too.
|
||||
- Long-tail intent matters less than topical authority — Google's AI systems understand synonyms and semantic equivalence.
|
||||
- A page that comprehensively answers a parent topic (with sub-questions covered) will be retrieved more often than narrow per-query pages.
|
||||
|
||||
**Action**: when planning content, brainstorm the 5–10 related queries the AI is likely to fan out to and make sure your content (or your site as a whole) covers them.
|
||||
|
||||
---
|
||||
|
||||
## AI Visibility Audit
|
||||
@@ -228,6 +267,10 @@ AI systems don't just cite your website — they cite where you appear.
|
||||
|
||||
### Machine-Readable Files for AI Agents
|
||||
|
||||
> **Google's stance**: not required for AI Overviews or AI Mode. Their guide explicitly says you don't need new markup, AI files, or markdown to appear in generative AI search.
|
||||
>
|
||||
> **Why include them anyway**: non-Google AI engines (ChatGPT, Claude, Perplexity) and autonomous buying agents do reward extractable structure. The files below help with those engines without harming Google.
|
||||
|
||||
AI agents aren't just answering questions — they're becoming buyers. When an AI agent evaluates tools on behalf of a user, it needs structured, parseable information. If your pricing is locked in a JavaScript-rendered page or a "contact sales" wall, agents will skip you and recommend competitors whose information they can actually read.
|
||||
|
||||
Add these machine-readable files to your site root:
|
||||
@@ -284,7 +327,32 @@ Structured data helps AI systems understand your content. Key schemas:
|
||||
| Reviews | `Review`, `AggregateRating` | Trust signals |
|
||||
| Organization | `Organization` | Entity recognition |
|
||||
|
||||
Content with proper schema shows 30-40% higher AI visibility. For implementation, use the **schema** skill.
|
||||
Content with proper schema shows 30-40% higher AI visibility on non-Google AI engines. **Google's note**: structured data is "not required for generative AI search" but is recommended for overall SEO strategy. For implementation, use the **schema** skill.
|
||||
|
||||
---
|
||||
|
||||
## Agentic Experiences
|
||||
|
||||
Beyond AI search engines summarizing content, autonomous agents are starting to access sites directly — clicking, reading, comparing, even buying on behalf of users. Google's guide flags this as an emerging category to plan for.
|
||||
|
||||
**How agents access your site:**
|
||||
- **Visual rendering** — they screenshot/read the page like a user would
|
||||
- **DOM inspection** — they parse the page's HTML structure
|
||||
- **Accessibility tree** — they rely on the same semantic information assistive tech uses (labels, roles, landmarks, headings)
|
||||
|
||||
**What to do:**
|
||||
- **Render meaningful content without heavy JS gymnastics** — if the page is blank until 4 frameworks finish loading, agents see blank
|
||||
- **Semantic HTML** — use `<main>`, `<nav>`, `<article>`, `<button>`, proper heading hierarchy, `alt` text on images
|
||||
- **Clean accessibility tree** — every interactive element labelled; ARIA used correctly (or not at all when native HTML suffices)
|
||||
- **Stable selectors / predictable layouts** — agents struggle with sites that re-render every interaction
|
||||
- **Visible pricing, specs, contact info** — anything an agent would need to make a buying recommendation should be on a public, indexable page (this is where `/pricing.md` and similar files help)
|
||||
|
||||
**Emerging — Universal Commerce Protocol (UCP):**
|
||||
Google references UCP as a forthcoming protocol that will give agents standardized hooks for commerce interactions (catalog discovery, pricing, checkout). Watch for adoption; for now, the structural recommendations above are the precursor.
|
||||
|
||||
For ecom and local business specifically, Google highlights:
|
||||
- **Merchant Center feeds** + **Google Business Profile** for product/service visibility in AI Search
|
||||
- **Business Agent** for conversational customer engagement (where applicable)
|
||||
|
||||
---
|
||||
|
||||
@@ -340,55 +408,29 @@ Monthly manual check:
|
||||
3. Record: Are you cited? Who is? What page?
|
||||
4. Log in a spreadsheet, track month-over-month
|
||||
|
||||
### Search Console expectations
|
||||
|
||||
Google's guide is explicit: **there is no AI-specific Search Console reporting**. AI Overviews and AI Mode use core Search ranking, so the standard Search Console reports (Performance, Coverage, Core Web Vitals) are still what you measure with for Google. The third-party tools above are the only way to see cross-platform AI citation behavior.
|
||||
|
||||
---
|
||||
|
||||
## AI SEO for Different Content Types
|
||||
## What NOT to Do
|
||||
|
||||
### SaaS Product Pages
|
||||
Google's guide calls these out explicitly — they hurt across both traditional Search and AI features.
|
||||
|
||||
**Goal:** Get cited in "What is [category]?" and "Best [category]" queries.
|
||||
1. **Write separate content "for AI"**. Same content should serve people and AI. Writing variants targeted at AI systems risks the **scaled content abuse spam policy** — Google's words.
|
||||
2. **Chunk pages into AI-bait fragments**. Google's guide is direct: *"Don't break your content into tiny pieces for AI to better understand it."* Use normal paragraph + heading structure.
|
||||
3. **Generate at scale for ranking manipulation**. AI-generated content is fine *if* it meets Search Essentials and spam policies. Mass-producing thin variations does not.
|
||||
4. **Pursue inauthentic mentions**. Don't fabricate citations or bulk-spam Reddit/Wikipedia for AI visibility. Real participation only.
|
||||
5. **Block AI crawlers if you want citation**. Blocking GPTBot, PerplexityBot, ClaudeBot, Google-Extended means those engines literally cannot cite you. Block training-only crawlers (CCBot) if you must, not the search-and-cite ones.
|
||||
6. **Hide your main content behind JS that doesn't render**. Both core Search and AI agents need to see your content; JS-only rendering loses both audiences.
|
||||
7. **Skip E-E-A-T fundamentals**. Author identity, first-hand experience, expertise signals, transparent sourcing — Google's guide leans heavily on these for AI features.
|
||||
|
||||
**Optimize:**
|
||||
- Clear product description in first paragraph (what it does, who it's for)
|
||||
- Feature comparison tables (you vs. category, not just competitors)
|
||||
- Specific metrics ("processes 10,000 transactions/sec" not "blazing fast")
|
||||
- Customer count or social proof with numbers
|
||||
- Pricing transparency (AI cites pages with visible pricing) — add a `/pricing.md` file so AI agents can parse your plans without rendering your page (see "Machine-Readable Files" above)
|
||||
- FAQ section addressing common buyer questions
|
||||
---
|
||||
|
||||
### Blog Content
|
||||
## AI SEO by Content Type
|
||||
|
||||
**Goal:** Get cited as an authoritative source on topics in your space.
|
||||
|
||||
**Optimize:**
|
||||
- One clear target query per post (match heading to query)
|
||||
- Definition in first paragraph for "What is" queries
|
||||
- Original data, research, or expert quotes
|
||||
- "Last updated" date visible
|
||||
- Author bio with relevant credentials
|
||||
- Internal links to related product/feature pages
|
||||
|
||||
### Comparison/Alternative Pages
|
||||
|
||||
**Goal:** Get cited in "[X] vs [Y]" and "Best [X] alternatives" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Structured comparison tables (not just prose)
|
||||
- Fair and balanced (AI penalizes obviously biased comparisons)
|
||||
- Specific criteria with ratings or scores
|
||||
- Updated pricing and feature data
|
||||
- Cite the competitors skill for building these pages
|
||||
|
||||
### Documentation / Help Content
|
||||
|
||||
**Goal:** Get cited in "How to [X] with [your product]" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Step-by-step format with numbered lists
|
||||
- Code examples where relevant
|
||||
- HowTo schema markup
|
||||
- Screenshots with descriptive alt text
|
||||
- Clear prerequisites and expected outcomes
|
||||
For tactical guidance on SaaS product pages, blog content, comparison/alternative pages, documentation, and local/ecom (Google's emphasis on Merchant Center + Business Profile), see [references/content-types.md](references/content-types.md).
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
# AI SEO by Content Type
|
||||
|
||||
Tactical guidance for optimizing specific content types for AI search citation. These tactics work for non-Google AI engines (ChatGPT, Claude, Perplexity, Copilot) and don't hurt Google AI Overviews / AI Mode.
|
||||
|
||||
For the cross-cutting strategy, see [SKILL.md](../SKILL.md).
|
||||
|
||||
---
|
||||
|
||||
## SaaS Product Pages
|
||||
|
||||
**Goal:** Get cited in "What is [category]?" and "Best [category]" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Clear product description in first paragraph (what it does, who it's for)
|
||||
- Feature comparison tables (you vs. category, not just competitors)
|
||||
- Specific metrics ("processes 10,000 transactions/sec" not "blazing fast")
|
||||
- Customer count or social proof with numbers
|
||||
- Pricing transparency (AI cites pages with visible pricing) — add a `/pricing.md` file so AI agents can parse your plans without rendering your page (see "Machine-Readable Files" in the main skill)
|
||||
- FAQ section addressing common buyer questions
|
||||
|
||||
---
|
||||
|
||||
## Blog Content
|
||||
|
||||
**Goal:** Get cited as an authoritative source on topics in your space.
|
||||
|
||||
**Optimize:**
|
||||
- One clear target query per post (match heading to query)
|
||||
- Definition in first paragraph for "What is" queries
|
||||
- Original data, research, or expert quotes
|
||||
- "Last updated" date visible
|
||||
- Author bio with relevant credentials
|
||||
- Internal links to related product/feature pages
|
||||
|
||||
---
|
||||
|
||||
## Comparison / Alternative Pages
|
||||
|
||||
**Goal:** Get cited in "[X] vs [Y]" and "Best [X] alternatives" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Structured comparison tables (not just prose)
|
||||
- Fair and balanced (AI penalizes obviously biased comparisons)
|
||||
- Specific criteria with ratings or scores
|
||||
- Updated pricing and feature data
|
||||
- Cite the `competitors` skill for building these pages
|
||||
|
||||
---
|
||||
|
||||
## Documentation / Help Content
|
||||
|
||||
**Goal:** Get cited in "How to [X] with [your product]" queries.
|
||||
|
||||
**Optimize:**
|
||||
- Step-by-step format with numbered lists
|
||||
- Code examples where relevant
|
||||
- HowTo schema markup
|
||||
- Screenshots with descriptive alt text
|
||||
- Clear prerequisites and expected outcomes
|
||||
|
||||
---
|
||||
|
||||
## Local Business / Ecom (Google emphasis)
|
||||
|
||||
Google's AI features pull from product feeds and business profiles for local + ecom queries. Optimize:
|
||||
|
||||
- **Merchant Center feeds** kept current with accurate inventory, pricing, attributes
|
||||
- **Google Business Profile** complete with hours, services, photos, posts, Q&A answered
|
||||
- **Reviews** — recent + sufficient volume; respond to reviews to signal active management
|
||||
- **Service area schema** for local services
|
||||
- **Business Agent** (where available) for conversational customer engagement
|
||||
+22
-17
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: image
|
||||
description: "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'Ideogram,' 'Gemini image,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video."
|
||||
description: "When the user wants to create, generate, edit, or optimize images for marketing — blog heroes, social graphics, product mockups, profile banners, listing visuals, or brand assets. Also use when the user mentions 'AI image generation,' 'generate an image,' 'create a graphic,' 'product mockup,' 'hero image,' 'social media graphic,' 'banner image,' 'cover photo,' 'profile banner,' 'listing screenshot,' 'Flux,' 'Flux Kontext,' 'Midjourney,' 'DALL-E,' 'GPT Image,' 'ChatGPT Images,' 'Ideogram,' 'Gemini image,' 'Nano Banana,' 'Recraft,' 'Stable Diffusion,' 'Canva,' 'Figma,' 'image optimization,' 'compress images,' 'WebP,' or 'OG image.' Use this for general-purpose marketing image creation and optimization. For paid ad image creative and platform-specific ad specs, see ad-creative. For video production, see video."
|
||||
metadata:
|
||||
version: 2.0.0
|
||||
version: 2.0.1
|
||||
---
|
||||
|
||||
# Image
|
||||
@@ -55,36 +55,41 @@ Generate original images from text prompts. The fastest way to create unique mar
|
||||
|
||||
| Model | Best For | Text in Images | API | Cost |
|
||||
|-------|----------|:-:|-----|------|
|
||||
| **Gemini Image** (Google) | All-around, editing, text rendering | Good | [Gemini API](https://ai.google.dev/gemini-api/docs/image-generation) | Check [pricing](https://ai.google.dev/gemini-api/docs/pricing) |
|
||||
| **Flux** (Black Forest Labs) | Photorealism, brand consistency, batch | Limited | [BFL API](https://docs.bfl.ai/), Replicate, fal.ai | Check [pricing](https://docs.bfl.ai/quick_start/pricing) |
|
||||
| **Ideogram** | Typography, branded graphics | Best | [Ideogram API](https://developer.ideogram.ai/) | Check [pricing](https://about.ideogram.ai/api-pricing) |
|
||||
| **GPT Image** (OpenAI) | General purpose, ChatGPT integration | Good | [OpenAI API](https://platform.openai.com/docs/guides/image-generation) | Check [pricing](https://platform.openai.com/docs/pricing) |
|
||||
| **Midjourney** | Artistic, high-aesthetic | Poor | No official API | Subscription-based |
|
||||
| **Stable Diffusion** | Self-hosted, customizable | Varies | Open source | Free (GPU costs) |
|
||||
| **Gemini Image** (Google, "Nano Banana" / Nano Banana Pro) | All-around, editing, multi-image reference, text rendering | Good | [Gemini API](https://ai.google.dev/gemini-api/docs/image-generation) | Check [pricing](https://ai.google.dev/gemini-api/docs/pricing) |
|
||||
| **Flux** (Black Forest Labs — Pro 1.1, Kontext, Dev, Schnell) | Photorealism, brand consistency, batch; Kontext for in-image editing | Limited | [BFL API](https://docs.bfl.ai/), Replicate, fal.ai | Check [pricing](https://docs.bfl.ai/quick_start/pricing) |
|
||||
| **Ideogram 3.0** | Typography, branded graphics, accurate text rendering | Best | [Ideogram API](https://developer.ideogram.ai/) | Check [pricing](https://about.ideogram.ai/api-pricing) |
|
||||
| **ChatGPT Images 2.0 / GPT Image** (OpenAI) | General purpose, ChatGPT integration, native editing | Good | [OpenAI API](https://platform.openai.com/docs/guides/image-generation) | Check [pricing](https://platform.openai.com/docs/pricing) |
|
||||
| **Midjourney v7** | Artistic, high-aesthetic, art-directed visuals | Improved | No official API; Discord + Web | Subscription-based |
|
||||
| **Recraft V3** | Vector + brand-consistent illustrations, design assets | Strong | [Recraft API](https://www.recraft.ai/docs) | Per-credit |
|
||||
| **Stable Diffusion 3.5 / SDXL** | Self-hosted, customizable, fine-tunable | Varies | Open source | Free (GPU costs) |
|
||||
|
||||
**Note:** DALL-E 3 is deprecated. OpenAI's current image models are the GPT Image family (`gpt-image-1`, etc.).
|
||||
**Note:** DALL-E 3 is fully deprecated. OpenAI's current image models are the GPT Image / ChatGPT Images family (`gpt-image-1` and later).
|
||||
|
||||
### When to Use Which
|
||||
|
||||
```
|
||||
Need text/headlines in the image?
|
||||
├── Yes → Ideogram (best), Gemini (good), GPT Image (decent)
|
||||
├── Yes → Ideogram 3.0 (best), Gemini (good), GPT Image / ChatGPT Images (decent)
|
||||
└── No ↓
|
||||
|
||||
Need product/brand consistency across images?
|
||||
├── Yes → Flux (multi-image reference)
|
||||
Need product/brand consistency across many images?
|
||||
├── Yes → Flux (multi-image reference), Gemini Nano Banana Pro, Recraft V3
|
||||
└── No ↓
|
||||
|
||||
Need to edit an existing image?
|
||||
├── Yes → Gemini (native editing), Flux Flex
|
||||
Need to edit an existing image (in-place)?
|
||||
├── Yes → Gemini (native editing), Flux Kontext, ChatGPT Images
|
||||
└── No ↓
|
||||
|
||||
Need highest visual quality?
|
||||
├── Yes → Flux Pro, Midjourney
|
||||
Need vector / illustrative brand assets?
|
||||
├── Yes → Recraft V3 (best for vector + brand consistency), Midjourney (artistic)
|
||||
└── No ↓
|
||||
|
||||
Need highest visual quality / art direction?
|
||||
├── Yes → Flux Pro 1.1, Midjourney v7
|
||||
└── No ↓
|
||||
|
||||
Need volume at low cost?
|
||||
└── Flux Klein, Gemini Flash
|
||||
└── Flux Schnell, Gemini Flash, Stable Diffusion (self-hosted)
|
||||
```
|
||||
|
||||
### Prompting Basics
|
||||
|
||||
+18
-8
@@ -1,8 +1,8 @@
|
||||
---
|
||||
name: video
|
||||
description: "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Runway,' 'Kling,' 'Pika,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social. For paid video ad creative, see ad-creative."
|
||||
description: "When the user wants to create, generate, or produce video content using AI tools or programmatic frameworks. Also use when the user mentions 'video production,' 'AI video,' 'Remotion,' 'Hyperframes,' 'HeyGen,' 'Synthesia,' 'Veo,' 'Sora,' 'Runway,' 'Kling,' 'Seedance,' 'Hailuo,' 'MiniMax,' 'Pika,' 'Hunyuan,' 'Wan,' 'video generation,' 'AI avatar,' 'talking head video,' 'programmatic video,' 'video template,' 'explainer video,' 'product demo video,' 'video pipeline,' or 'make me a video.' Use this for video creation, generation, and production workflows. For video content strategy and what to post, see social. For paid video ad creative, see ad-creative."
|
||||
metadata:
|
||||
version: 2.0.0
|
||||
version: 2.0.1
|
||||
---
|
||||
|
||||
# Video
|
||||
@@ -41,7 +41,7 @@ Pick the right tool for the job:
|
||||
| Approach | Best For | Tools | When to Use |
|
||||
|----------|----------|-------|-------------|
|
||||
| **Programmatic** | Templated, data-driven, batch video | Remotion, Hyperframes | Product updates, personalized videos, recurring content |
|
||||
| **AI Generation** | Original footage from text/image prompts | Veo, Runway, Kling, Pika | B-roll, hero shots, creative visuals you can't film |
|
||||
| **AI Generation** | Original footage from text/image prompts | Veo 3, Sora 2, Runway, Kling, Seedance | B-roll, hero shots, creative visuals you can't film |
|
||||
| **AI Avatars** | Talking-head presenter without filming | HeyGen, Synthesia | Explainers, tutorials, multilingual content |
|
||||
| **Editing/Repurposing** | Cutting long-form into short clips | Descript, Opus Clip, CapCut | Podcast/webinar → social clips |
|
||||
|
||||
@@ -130,12 +130,22 @@ Generate original footage from text or image prompts. Use for B-roll, hero visua
|
||||
|
||||
| Model | Resolution | Max Duration | Best For | Cost |
|
||||
|-------|-----------|-------------|----------|------|
|
||||
| **Veo 3** (Google) | Up to 1080p (4K varies) | Variable | Highest quality, synced audio | API-based |
|
||||
| **Runway Gen-4** | Up to 4K | ~10 sec/gen | Motion control, temporal consistency | $12-76/mo |
|
||||
| **Kling 3.0** | Up to 1080p | Up to 2 min | Volume production, lowest cost | $0.029/sec |
|
||||
| **Pika** | 1080p | Short clips | Fast generation, effects | Per-credit |
|
||||
| **Veo 3** (Google) | Up to 1080p (4K varies) | Variable | Top overall quality, synced audio | API-based |
|
||||
| **Sora 2** (OpenAI) | Up to 1080p | Up to ~20 sec | Cinematic + synced audio, ChatGPT/API integration | API + ChatGPT |
|
||||
| **Runway Gen-4** | Up to 4K | ~10 sec/gen | Motion control, temporal consistency, edit-style workflows | $12-76/mo |
|
||||
| **Kling 2.5/3.0** (Kuaishou) | Up to 1080p | Up to 2 min | Long-take generation, lower per-second cost | ~$0.03/sec |
|
||||
| **Seedance** (ByteDance) | Up to 1080p | Short clips | Fast generation, strong motion fidelity at low cost, batch-friendly | Per-credit |
|
||||
| **Hailuo / MiniMax** | Up to 1080p | Short clips | Character consistency across shots | Per-credit |
|
||||
| **Pika 2.x** | 1080p | Short clips | Quick effects, image-to-video, lower bar to entry | Per-credit |
|
||||
| **Hunyuan Video / Wan 2** | 720p–1080p | Variable | Open-source self-hosted; full control, no API fees | Free (GPU) |
|
||||
|
||||
**Sora (OpenAI)** has had limited availability and reliability issues. Check current status before recommending.
|
||||
**Quick picks**:
|
||||
- **Highest quality + audio**: Veo 3 or Sora 2
|
||||
- **Batch / volume / cost**: Kling, Seedance
|
||||
- **Character consistency across multiple shots**: Hailuo
|
||||
- **Self-hosted, brand-controlled**: Hunyuan Video or Wan 2 (open weights)
|
||||
- **Storyboard → video workflow**: Runway, LTX Studio
|
||||
- **Image-to-video from a still you already have**: Kling, Pika, Runway
|
||||
|
||||
### Prompting for Video Models
|
||||
|
||||
|
||||
+26
-1
@@ -26,6 +26,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
|
||||
| ahrefs | SEO | ✓ | - | [✓](clis/ahrefs.js) | - | [ahrefs.md](integrations/ahrefs.md) |
|
||||
| dataforseo | SEO | ✓ | - | [✓](clis/dataforseo.js) | ✓ | [dataforseo.md](integrations/dataforseo.md) |
|
||||
| keywords-everywhere | SEO | ✓ | - | [✓](clis/keywords-everywhere.js) | - | [keywords-everywhere.md](integrations/keywords-everywhere.md) |
|
||||
| rankparse | SEO | ✓ | ✓ | [✓](clis/rankparse.js) | - | [rankparse.md](integrations/rankparse.md) |
|
||||
| clearbit | Data Enrichment | ✓ | - | [✓](clis/clearbit.js) | ✓ | [clearbit.md](integrations/clearbit.md) |
|
||||
| apollo | Data Enrichment | ✓ | - | [✓](clis/apollo.js) | - | [apollo.md](integrations/apollo.md) |
|
||||
| zoominfo | Data Enrichment | ✓ | ✓ | [✓](clis/zoominfo.js) | - | [zoominfo.md](integrations/zoominfo.md) |
|
||||
@@ -73,6 +74,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
|
||||
| introw | Partner Ecosystem | - | ✓ | - | - | [introw.md](integrations/introw.md) |
|
||||
| pendo | Product Analytics | ✓ | - | [✓](clis/pendo.js) | - | [pendo.md](integrations/pendo.md) |
|
||||
| similarweb | Competitive Intelligence | ✓ | - | [✓](clis/similarweb.js) | - | [similarweb.md](integrations/similarweb.md) |
|
||||
| exa | AI Search | ✓ | ✓ | [✓](clis/exa.js) | ✓ | [exa.md](integrations/exa.md) |
|
||||
| firehose | Competitive Intelligence | ✓ | - | - | - | [firehose.md](integrations/firehose.md) |
|
||||
| sparktoro | Audience Research | - | - | - | - | [sparktoro.md](integrations/sparktoro.md) |
|
||||
| rb2b | Visitor Identification | ✓ | - | - | - | [rb2b.md](integrations/rb2b.md) |
|
||||
@@ -94,6 +96,7 @@ Quick reference for AI agents to discover tool capabilities and integration meth
|
||||
| contentful | Headless CMS | ✓ | - | ✓ | ✓ | [contentful.md](integrations/contentful.md) |
|
||||
| strapi | Headless CMS | ✓ | - | ✓ | ✓ | [strapi.md](integrations/strapi.md) |
|
||||
| composio | Integration Layer | ✓ | ✓ | ✓ | ✓ | [composio.md](integrations/composio.md) |
|
||||
| cogny | Integration Layer | - | ✓ | - | - | [cogny.md](integrations/cogny.md) |
|
||||
|
||||
---
|
||||
|
||||
@@ -126,8 +129,9 @@ Search engine optimization tools for keyword research, rank tracking, and site a
|
||||
| **ahrefs** | Backlink analysis, content research | Best for links |
|
||||
| **dataforseo** | SERP tracking, backlinks, on-page audits | Comprehensive API |
|
||||
| **keywords-everywhere** | Quick keyword research, traffic estimates | Credit-based |
|
||||
| **rankparse** | Cheap, agent-friendly backlinks + domain data | Credit-based, MCP available |
|
||||
|
||||
**Agent recommendation**: Google Search Console is essential (free). Add Semrush or Ahrefs for competitive research. DataForSEO for programmatic SERP data. Keywords Everywhere for quick keyword lookups.
|
||||
**Agent recommendation**: Google Search Console is essential (free). Add Semrush or Ahrefs for competitive research. DataForSEO for programmatic SERP data. Keywords Everywhere for quick keyword lookups. RankParse for agent workflows where per-call cost matters — backlinks, domain authority, and tech stack at a fraction of enterprise pricing.
|
||||
|
||||
### CRM
|
||||
|
||||
@@ -387,6 +391,16 @@ AI-powered content generation and optimization platforms.
|
||||
|
||||
**Agent recommendation**: AirOps for building AI content workflows that generate SEO-optimized content at scale.
|
||||
|
||||
### AI Search
|
||||
|
||||
AI-powered web search APIs built for LLMs and agents. Return structured results with on-demand text, highlights, and summaries.
|
||||
|
||||
| Tool | Best For | Notes |
|
||||
|------|----------|-------|
|
||||
| **exa** | Neural/semantic web search, content research, competitor discovery | Search + findSimilar + Contents; MCP and SDKs available |
|
||||
|
||||
**Agent recommendation**: Exa for neural search over the open web — content research, competitor/similar-page discovery, link prospecting, news monitoring, and audience research. Pairs well with seo-audit, content-strategy, and competitor-profiling skills.
|
||||
|
||||
### Partner Ecosystem
|
||||
|
||||
Partner data sharing, co-sell, and ecosystem management.
|
||||
@@ -468,6 +482,7 @@ These tools have Model Context Protocol servers available, enabling direct agent
|
||||
- **outreach** - Sales engagement sequences
|
||||
- **crossbeam** - Partner ecosystem data
|
||||
- **introw** - Partner relationship management
|
||||
- **exa** - AI-powered web search for LLMs and agents
|
||||
|
||||
To use MCP tools, ensure the appropriate MCP server is configured in your environment.
|
||||
|
||||
@@ -481,6 +496,16 @@ To use MCP tools, ensure the appropriate MCP server is configured in your enviro
|
||||
|
||||
Use Composio when you need MCP access to OAuth-heavy tools. Prefer native MCP servers (GA4, Stripe, Mailchimp, etc.) when available — they have deeper coverage.
|
||||
|
||||
### Cogny Integration
|
||||
|
||||
[Cogny](integrations/cogny.md) is a hosted MCP gateway focused on marketing channels — one federated MCP URL with managed OAuth across every channel you've connected. Narrower than Composio (marketing-only) and useful when you want SEO, paid social, and privacy-friendly analytics behind a single MCP login.
|
||||
|
||||
- **Setup**: connect channels at [cogny.com](https://cogny.com), then in Claude.ai go to Settings → Connectors → Add custom connector and paste `https://app.cogny.com/mcp`
|
||||
- **Channels**: Search Console, Bing Webmaster, Semrush, LinkedIn Ads, Reddit Ads, TikTok Ads, Plausible, Fathom
|
||||
- **Pricing**: Solo plan starts at $9/mo (7-day trial)
|
||||
|
||||
Use Cogny when you only need marketing channels and want to avoid running your own OAuth proxy. Prefer native APIs when you need deep, custom control of a single tool.
|
||||
|
||||
---
|
||||
|
||||
## Quick Start by Use Case
|
||||
|
||||
@@ -50,6 +50,7 @@ Every CLI reads credentials from environment variables:
|
||||
| `dataforseo` | `DATAFORSEO_LOGIN`, `DATAFORSEO_PASSWORD` |
|
||||
| `demio` | `DEMIO_API_KEY`, `DEMIO_API_SECRET` |
|
||||
| `dub` | `DUB_API_KEY` |
|
||||
| `exa` | `EXA_API_KEY` |
|
||||
| `g2` | `G2_API_TOKEN` |
|
||||
| `ga4` | `GA4_ACCESS_TOKEN` |
|
||||
| `google-ads` | `GOOGLE_ADS_TOKEN`, `GOOGLE_ADS_DEVELOPER_TOKEN`, `GOOGLE_ADS_CUSTOMER_ID` |
|
||||
@@ -148,6 +149,7 @@ DOMAINS=$(rewardful affiliates list | jq -r '.data[].email')
|
||||
| `dataforseo.js` | SEO | [DataForSEO](https://dataforseo.com) |
|
||||
| `demio.js` | Webinar | [Demio](https://demio.com) |
|
||||
| `dub.js` | Links | [Dub.co](https://dub.co) |
|
||||
| `exa.js` | AI Search | [Exa](https://exa.ai) |
|
||||
| `g2.js` | Reviews | [G2](https://g2.com) |
|
||||
| `ga4.js` | Analytics | [Google Analytics 4](https://analytics.google.com) |
|
||||
| `google-ads.js` | Ads | [Google Ads](https://ads.google.com) |
|
||||
|
||||
Executable
+147
@@ -0,0 +1,147 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const API_KEY = process.env.EXA_API_KEY
|
||||
const BASE_URL = 'https://api.exa.ai'
|
||||
|
||||
if (!API_KEY) {
|
||||
console.error(JSON.stringify({ error: 'EXA_API_KEY environment variable required' }))
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
async function api(method, path, body) {
|
||||
if (args['dry-run']) {
|
||||
return { _dry_run: true, method, url: `${BASE_URL}${path}`, headers: { 'x-api-key': '***', 'Content-Type': 'application/json', 'x-exa-integration': 'marketingskills' }, body: body || undefined }
|
||||
}
|
||||
const res = await fetch(`${BASE_URL}${path}`, {
|
||||
method,
|
||||
headers: {
|
||||
'x-api-key': API_KEY,
|
||||
'Content-Type': 'application/json',
|
||||
'x-exa-integration': 'marketingskills',
|
||||
},
|
||||
body: body ? JSON.stringify(body) : undefined,
|
||||
})
|
||||
const text = await res.text()
|
||||
try {
|
||||
return JSON.parse(text)
|
||||
} catch {
|
||||
return { status: res.status, body: text }
|
||||
}
|
||||
}
|
||||
|
||||
function parseArgs(args) {
|
||||
const result = { _: [] }
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
const arg = args[i]
|
||||
if (arg.startsWith('--')) {
|
||||
const key = arg.slice(2)
|
||||
const next = args[i + 1]
|
||||
if (next && !next.startsWith('--')) {
|
||||
result[key] = next
|
||||
i++
|
||||
} else {
|
||||
result[key] = true
|
||||
}
|
||||
} else {
|
||||
result._.push(arg)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function buildContents(args) {
|
||||
const contents = {}
|
||||
if (args.text) {
|
||||
contents.text = args['max-chars']
|
||||
? { maxCharacters: Number(args['max-chars']) }
|
||||
: true
|
||||
}
|
||||
if (args.highlights) {
|
||||
contents.highlights = args['highlight-query']
|
||||
? { query: args['highlight-query'] }
|
||||
: true
|
||||
}
|
||||
if (args.summary) {
|
||||
contents.summary = args['summary-query']
|
||||
? { query: args['summary-query'] }
|
||||
: {}
|
||||
}
|
||||
return Object.keys(contents).length ? contents : null
|
||||
}
|
||||
|
||||
const args = parseArgs(process.argv.slice(2))
|
||||
const [cmd, ...rest] = args._
|
||||
|
||||
async function main() {
|
||||
let result
|
||||
|
||||
switch (cmd) {
|
||||
case 'search': {
|
||||
const query = args.query || rest.join(' ')
|
||||
if (!query) { result = { error: '--query required' }; break }
|
||||
const body = { query }
|
||||
if (args.type) body.type = args.type
|
||||
if (args.num) body.numResults = Number(args.num)
|
||||
if (args.category) body.category = args.category
|
||||
if (args['include-domains']) body.includeDomains = args['include-domains'].split(',').map(s => s.trim())
|
||||
if (args['exclude-domains']) body.excludeDomains = args['exclude-domains'].split(',').map(s => s.trim())
|
||||
if (args['include-text']) body.includeText = args['include-text'].split(',').map(s => s.trim())
|
||||
if (args['exclude-text']) body.excludeText = args['exclude-text'].split(',').map(s => s.trim())
|
||||
if (args['start-published']) body.startPublishedDate = args['start-published']
|
||||
if (args['end-published']) body.endPublishedDate = args['end-published']
|
||||
if (args['start-crawl']) body.startCrawlDate = args['start-crawl']
|
||||
if (args['end-crawl']) body.endCrawlDate = args['end-crawl']
|
||||
if (args['user-location']) body.userLocation = args['user-location']
|
||||
const contents = buildContents(args)
|
||||
if (contents) body.contents = contents
|
||||
result = await api('POST', '/search', body)
|
||||
break
|
||||
}
|
||||
|
||||
case 'find-similar': {
|
||||
const url = args.url
|
||||
if (!url) { result = { error: '--url required' }; break }
|
||||
const body = { url }
|
||||
if (args.num) body.numResults = Number(args.num)
|
||||
if (args['include-domains']) body.includeDomains = args['include-domains'].split(',').map(s => s.trim())
|
||||
if (args['exclude-domains']) body.excludeDomains = args['exclude-domains'].split(',').map(s => s.trim())
|
||||
if (args['start-published']) body.startPublishedDate = args['start-published']
|
||||
if (args['end-published']) body.endPublishedDate = args['end-published']
|
||||
if (args['start-crawl']) body.startCrawlDate = args['start-crawl']
|
||||
if (args['end-crawl']) body.endCrawlDate = args['end-crawl']
|
||||
const contents = buildContents(args)
|
||||
if (contents) body.contents = contents
|
||||
result = await api('POST', '/findSimilar', body)
|
||||
break
|
||||
}
|
||||
|
||||
case 'contents': {
|
||||
const urls = args.urls?.split(',').map(s => s.trim())
|
||||
if (!urls || !urls.length) { result = { error: '--urls required (comma-separated)' }; break }
|
||||
const body = { urls }
|
||||
const contents = buildContents(args)
|
||||
if (contents) Object.assign(body, contents)
|
||||
else body.text = true
|
||||
result = await api('POST', '/contents', body)
|
||||
break
|
||||
}
|
||||
|
||||
default:
|
||||
result = {
|
||||
error: 'Unknown command',
|
||||
usage: {
|
||||
search: 'search --query <q> [--type neural|fast|auto|deep-lite|deep|deep-reasoning|instant] [--num <n>] [--category company|research paper|news|personal site|financial report|people] [--include-domains <d1,d2>] [--exclude-domains <d1,d2>] [--include-text <phrases>] [--exclude-text <phrases>] [--start-published <ISO>] [--end-published <ISO>] [--user-location <CC>] [--text] [--highlights] [--summary] [--max-chars <n>] [--highlight-query <q>] [--summary-query <q>]',
|
||||
'find-similar': 'find-similar --url <url> [--num <n>] [--include-domains <d1,d2>] [--exclude-domains <d1,d2>] [--start-published <ISO>] [--end-published <ISO>] [--text] [--highlights] [--summary]',
|
||||
contents: 'contents --urls <url1,url2> [--text] [--highlights] [--summary] [--max-chars <n>] [--highlight-query <q>] [--summary-query <q>]',
|
||||
options: '--dry-run (preview request without sending)',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(result, null, 2))
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error(JSON.stringify({ error: err.message }))
|
||||
process.exit(1)
|
||||
})
|
||||
Executable
+196
@@ -0,0 +1,196 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const API_KEY = process.env.RANKPARSE_API_KEY
|
||||
const BASE_URL = 'https://api.rankparse.com/v1'
|
||||
|
||||
if (!API_KEY) {
|
||||
console.error(JSON.stringify({ error: 'RANKPARSE_API_KEY environment variable required' }))
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
async function api(method, path, body) {
|
||||
if (args['dry-run']) {
|
||||
return { _dry_run: true, method, url: `${BASE_URL}${path}`, headers: { 'X-API-Key': '***', 'Content-Type': 'application/json' }, body }
|
||||
}
|
||||
const init = {
|
||||
method,
|
||||
headers: {
|
||||
'X-API-Key': API_KEY,
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
}
|
||||
if (body) init.body = JSON.stringify(body)
|
||||
const res = await fetch(`${BASE_URL}${path}`, init)
|
||||
const text = await res.text()
|
||||
try {
|
||||
return JSON.parse(text)
|
||||
} catch {
|
||||
return { status: res.status, body: text }
|
||||
}
|
||||
}
|
||||
|
||||
function parseArgs(args) {
|
||||
const result = { _: [] }
|
||||
for (let i = 0; i < args.length; i++) {
|
||||
const arg = args[i]
|
||||
if (arg.startsWith('--')) {
|
||||
const key = arg.slice(2)
|
||||
const next = args[i + 1]
|
||||
if (next && !next.startsWith('--')) {
|
||||
result[key] = next
|
||||
i++
|
||||
} else {
|
||||
result[key] = true
|
||||
}
|
||||
} else {
|
||||
result._.push(arg)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
const args = parseArgs(process.argv.slice(2))
|
||||
const [cmd, sub, ...rest] = args._
|
||||
|
||||
function requireDomain() {
|
||||
if (!args.domain) return { error: '--domain required' }
|
||||
return null
|
||||
}
|
||||
|
||||
function requireUrl() {
|
||||
if (!args.url) return { error: '--url required' }
|
||||
return null
|
||||
}
|
||||
|
||||
async function main() {
|
||||
let result
|
||||
|
||||
switch (cmd) {
|
||||
case 'domain-authority':
|
||||
case 'domain-rank':
|
||||
case 'tech-stack':
|
||||
case 'site-health':
|
||||
case 'similar-domains':
|
||||
case 'link-audit':
|
||||
case 'site-explorer':
|
||||
case 'crawl-history': {
|
||||
const err = requireDomain(); if (err) { result = err; break }
|
||||
result = await api('GET', `/${cmd}?domain=${encodeURIComponent(args.domain)}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'backlinks': {
|
||||
const err = requireDomain(); if (err) { result = err; break }
|
||||
const params = new URLSearchParams({ domain: args.domain })
|
||||
if (args.limit) params.set('limit', args.limit)
|
||||
if (args.sort) params.set('sort', args.sort)
|
||||
if (args['from-domain']) params.set('from_domain', args['from-domain'])
|
||||
if (args['link-type']) params.set('link_type', args['link-type'])
|
||||
if (args.score) params.set('score', 'true')
|
||||
result = await api('GET', `/backlinks?${params}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'referring-domains':
|
||||
case 'outbound-links':
|
||||
case 'anchor-text':
|
||||
case 'top-pages':
|
||||
case 'sitemap': {
|
||||
const err = requireDomain(); if (err) { result = err; break }
|
||||
const params = new URLSearchParams({ domain: args.domain })
|
||||
if (args.limit) params.set('limit', args.limit)
|
||||
result = await api('GET', `/${cmd}?${params}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'domain-overlap': {
|
||||
if (!args.domains) { result = { error: '--domains required (comma-separated, 2-5 domains)' }; break }
|
||||
const params = new URLSearchParams({ domains: args.domains })
|
||||
if (args.limit) params.set('limit', args.limit)
|
||||
result = await api('GET', `/domain-overlap?${params}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'link-intersect': {
|
||||
if (!args['domain-a'] || !args['domain-b']) { result = { error: '--domain-a and --domain-b required' }; break }
|
||||
const params = new URLSearchParams({ domain_a: args['domain-a'], domain_b: args['domain-b'] })
|
||||
if (args.limit) params.set('limit', args.limit)
|
||||
result = await api('GET', `/link-intersect?${params}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'competitor-gap': {
|
||||
const err = requireDomain(); if (err) { result = err; break }
|
||||
if (!args.vs) { result = { error: '--vs required (competitor domain)' }; break }
|
||||
const params = new URLSearchParams({ domain: args.domain, vs: args.vs })
|
||||
if (args.limit) params.set('limit', args.limit)
|
||||
result = await api('GET', `/competitor-gap?${params}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'page-seo': {
|
||||
const err = requireUrl(); if (err) { result = err; break }
|
||||
result = await api('GET', `/page-seo?url=${encodeURIComponent(args.url)}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'page-performance': {
|
||||
const err = requireUrl(); if (err) { result = err; break }
|
||||
const params = new URLSearchParams({ url: args.url })
|
||||
if (args.strategy) params.set('strategy', args.strategy)
|
||||
result = await api('GET', `/page-performance?${params}`)
|
||||
break
|
||||
}
|
||||
|
||||
case 'batch': {
|
||||
if (!args.domains) { result = { error: '--domains required (comma-separated)' }; break }
|
||||
const domains = args.domains.split(',').map(d => d.trim()).filter(Boolean)
|
||||
result = await api('POST', '/batch', { domains })
|
||||
break
|
||||
}
|
||||
|
||||
case 'me':
|
||||
result = await api('GET', '/me')
|
||||
break
|
||||
|
||||
case 'credits':
|
||||
result = await api('GET', '/credits')
|
||||
break
|
||||
|
||||
default:
|
||||
result = {
|
||||
error: 'Unknown command',
|
||||
usage: {
|
||||
'domain-authority': 'domain-authority --domain <domain>',
|
||||
'domain-rank': 'domain-rank --domain <domain>',
|
||||
'backlinks': 'backlinks --domain <domain> [--limit <n>] [--sort importance|recent] [--from-domain <d>] [--link-type <t>] [--score]',
|
||||
'referring-domains': 'referring-domains --domain <domain> [--limit <n>]',
|
||||
'outbound-links': 'outbound-links --domain <domain> [--limit <n>]',
|
||||
'anchor-text': 'anchor-text --domain <domain> [--limit <n>]',
|
||||
'top-pages': 'top-pages --domain <domain> [--limit <n>]',
|
||||
'domain-overlap': 'domain-overlap --domains <d1,d2,...> [--limit <n>]',
|
||||
'link-intersect': 'link-intersect --domain-a <d> --domain-b <d> [--limit <n>]',
|
||||
'competitor-gap': 'competitor-gap --domain <d> --vs <competitor> [--limit <n>]',
|
||||
'similar-domains': 'similar-domains --domain <domain>',
|
||||
'tech-stack': 'tech-stack --domain <domain>',
|
||||
'site-health': 'site-health --domain <domain>',
|
||||
'sitemap': 'sitemap --domain <domain> [--limit <n>]',
|
||||
'crawl-history': 'crawl-history --domain <domain>',
|
||||
'page-seo': 'page-seo --url <url>',
|
||||
'page-performance': 'page-performance --url <url> [--strategy mobile|desktop]',
|
||||
'link-audit': 'link-audit --domain <domain>',
|
||||
'site-explorer': 'site-explorer --domain <domain>',
|
||||
'batch': 'batch --domains <d1,d2,...>',
|
||||
'me': 'me (account info + credit balance)',
|
||||
'credits': 'credits (credit balance)',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(JSON.stringify(result, null, 2))
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error(JSON.stringify({ error: err.message }))
|
||||
process.exit(1)
|
||||
})
|
||||
@@ -0,0 +1,153 @@
|
||||
# Cogny
|
||||
|
||||
Hosted MCP gateway that bundles several marketing tools behind one URL with managed OAuth. Useful when you want AI agents to talk to multiple marketing channels without standing up your own OAuth proxy.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | - | Access is via MCP, not a public REST API |
|
||||
| MCP | ✓ | One federated MCP URL, OAuth-managed per channel |
|
||||
| CLI | - | Connect tools via the Cogny dashboard |
|
||||
| SDK | - | Use any MCP-capable client (Claude.ai, Claude API, Claude CLI, ChatGPT, etc.) |
|
||||
|
||||
## How it works
|
||||
|
||||
```
|
||||
┌──────────────────┐ ┌──────────────────────┐ ┌───────────────────┐
|
||||
│ Claude.ai / │──────│ app.cogny.com/mcp │──────│ Channel API │
|
||||
│ Claude CLI / │ │ (federated MCP │ │ (LinkedIn, GSC, │
|
||||
│ ChatGPT, etc. │ │ endpoint) │ │ TikTok, …) │
|
||||
└──────────────────┘ └──────────────────────┘ └───────────────────┘
|
||||
│
|
||||
│ Federates per-channel
|
||||
│ mcp.cogny.com endpoints
|
||||
▼ with managed OAuth
|
||||
```
|
||||
|
||||
`https://app.cogny.com/mcp` is a single federated endpoint that fans out to the per-channel `mcp.cogny.com` MCP servers — you connect once and every channel you've authorized in the dashboard becomes available.
|
||||
|
||||
## When to Use Cogny vs. Native or Composio
|
||||
|
||||
Cogny is one of several integration paths. Pick based on what you need:
|
||||
|
||||
| Scenario | Suggested |
|
||||
|----------|-----------|
|
||||
| Tool has a native MCP server you can self-host | Native MCP |
|
||||
| You want a single bill / single login across many channels | Cogny or Composio |
|
||||
| You need 500+ tools (CRM, productivity, dev tools, etc.) | [Composio](composio.md) |
|
||||
| You only need the marketing channels Cogny ships | Cogny |
|
||||
| You need deep, custom control over a single tool | Native API + CLI |
|
||||
|
||||
Cogny is narrower than Composio — it focuses on marketing channels — but the trade-off is fewer moving parts when you only need those channels.
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. Connect your channels
|
||||
|
||||
1. Sign up at [cogny.com](https://cogny.com) and create a workspace.
|
||||
2. In the dashboard, connect the channels you want (OAuth flow per tool).
|
||||
|
||||
### 2. Add Cogny as a custom connector
|
||||
|
||||
In Claude.ai:
|
||||
|
||||
1. Go to **Settings → Connectors → Add custom connector**.
|
||||
2. Enter name **Cogny** and paste your MCP URL:
|
||||
|
||||
```
|
||||
https://app.cogny.com/mcp
|
||||
```
|
||||
|
||||
3. Complete the OAuth handshake when prompted.
|
||||
|
||||
The same `https://app.cogny.com/mcp` URL works in any MCP-capable client (Claude API, Claude CLI, ChatGPT custom connectors, etc.) — Cogny handles auth and routes each tool call to the right underlying channel.
|
||||
|
||||
## Channels Available via Cogny
|
||||
|
||||
Coverage changes over time — check the Cogny dashboard for the current list.
|
||||
|
||||
### SEO
|
||||
|
||||
| Channel | Typical use |
|
||||
|---------|-------------|
|
||||
| Search Console | Search analytics, URL inspection, sitemap submission |
|
||||
| Bing Webmaster | Coverage, query stats, URL submission quota |
|
||||
| Semrush | Keyword research, competitor checks (subject to Semrush plan) |
|
||||
|
||||
### Paid Social
|
||||
|
||||
| Channel | Typical use |
|
||||
|---------|-------------|
|
||||
| LinkedIn Ads | Campaign reporting, audience overlap, creative checks |
|
||||
| Reddit Ads | Campaign reporting, audience and conversion lookups |
|
||||
| TikTok Ads | Campaign reporting, ad group / creative health |
|
||||
|
||||
### Analytics
|
||||
|
||||
| Channel | Typical use |
|
||||
|---------|-------------|
|
||||
| Plausible | Privacy-friendly site analytics, goal reporting |
|
||||
| Fathom | Privacy-friendly site analytics |
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
Once `https://app.cogny.com/mcp` is wired up, the agent picks tools by name across every channel you've connected.
|
||||
|
||||
### Search Console — pages losing clicks
|
||||
|
||||
```
|
||||
> "Pull Search Console clicks for the last 28 days vs the previous 28 days,
|
||||
group by page, and list pages where clicks dropped more than 30%."
|
||||
```
|
||||
|
||||
### LinkedIn Ads — campaign hygiene
|
||||
|
||||
```
|
||||
> "List my active LinkedIn campaigns, their CTR and CPL for the last 14 days,
|
||||
and flag anything with CTR below 0.4%."
|
||||
```
|
||||
|
||||
### Reddit Ads — audience overlap
|
||||
|
||||
```
|
||||
> "For my Reddit Ads campaigns this month, summarize spend, conversions, and
|
||||
the subreddits driving the most clicks."
|
||||
```
|
||||
|
||||
### TikTok Ads — creative fatigue
|
||||
|
||||
```
|
||||
> "Find TikTok ad groups where CTR has dropped 25%+ over the last 7 days
|
||||
compared to the prior 7 days."
|
||||
```
|
||||
|
||||
### Plausible — funnel sanity check
|
||||
|
||||
```
|
||||
> "From Plausible, show top 10 pages by pageviews and the conversion rate
|
||||
for the 'Signup' goal over the last 30 days."
|
||||
```
|
||||
|
||||
## Limitations
|
||||
|
||||
- **Marketing-only scope** — Cogny ships marketing channels; for CRM, productivity, or dev tools use [Composio](composio.md) or the relevant native integration.
|
||||
- **Hosted dependency** — if `app.cogny.com` is down, the connected channels are unavailable through this path.
|
||||
- **Coverage depth varies** — read-heavy and reporting tools generally have more depth than write/mutation tools.
|
||||
- **OAuth tokens** — managed by Cogny; you don't control token refresh or storage directly.
|
||||
|
||||
## Pricing
|
||||
|
||||
Cogny's Solo plan starts at **$9/month** and includes a 7-day free trial. Higher tiers are available for teams. Check [cogny.com/pricing](https://cogny.com/pricing) for current plans and limits.
|
||||
|
||||
## See Also
|
||||
|
||||
- [Composio](composio.md) — broader integration layer (500+ tools, OAuth-heavy CRMs and productivity apps)
|
||||
- [Google Search Console](google-search-console.md) — native API guide if you'd rather call GSC directly
|
||||
- [LinkedIn Ads](linkedin-ads.md), [TikTok Ads](tiktok-ads.md) — native API guides
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- seo-audit (Search Console, Bing Webmaster, Semrush via Cogny)
|
||||
- paid-ads (LinkedIn, Reddit, TikTok via Cogny)
|
||||
- analytics-tracking (Plausible, Fathom via Cogny)
|
||||
@@ -0,0 +1,145 @@
|
||||
# Exa
|
||||
|
||||
AI-powered web search API built for LLMs and agents. Returns high-quality search results with neural and keyword matching, plus on-demand content retrieval (full text, highlights, and summaries) in a single request.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | Search, Find Similar, Contents |
|
||||
| MCP | ✓ | Official MCP server available |
|
||||
| CLI | ✓ | [exa.js](../clis/exa.js) |
|
||||
| SDK | ✓ | `exa-py` (Python), `exa-js` (TypeScript) |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: API Key
|
||||
- **Header**: `x-api-key: {key}`
|
||||
- **Get key**: https://dashboard.exa.ai
|
||||
|
||||
## Endpoints
|
||||
|
||||
Base URL: `https://api.exa.ai`
|
||||
|
||||
| Endpoint | Purpose |
|
||||
|----------|---------|
|
||||
| `POST /search` | Search the web with neural, keyword-like, or auto-routed modes |
|
||||
| `POST /findSimilar` | Find pages similar to a given URL |
|
||||
| `POST /contents` | Fetch text, highlights, or summaries for one or more URLs |
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Web Search with Content
|
||||
|
||||
```bash
|
||||
POST https://api.exa.ai/search
|
||||
{
|
||||
"query": "best B2B SaaS onboarding flows",
|
||||
"type": "auto",
|
||||
"numResults": 10,
|
||||
"contents": {
|
||||
"text": { "maxCharacters": 1000 },
|
||||
"highlights": true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Competitor Content Discovery
|
||||
|
||||
```bash
|
||||
POST https://api.exa.ai/search
|
||||
{
|
||||
"query": "landing page teardowns",
|
||||
"includeDomains": ["goodui.org", "growth.design", "marketingexamples.com"],
|
||||
"startPublishedDate": "2024-01-01T00:00:00Z",
|
||||
"contents": { "highlights": true }
|
||||
}
|
||||
```
|
||||
|
||||
### Find Similar Pages
|
||||
|
||||
```bash
|
||||
POST https://api.exa.ai/findSimilar
|
||||
{
|
||||
"url": "https://stripe.com/pricing",
|
||||
"numResults": 20,
|
||||
"contents": { "summary": { "query": "What pricing model and price points does this page use?" } }
|
||||
}
|
||||
```
|
||||
|
||||
### Category-Filtered Search
|
||||
|
||||
```bash
|
||||
POST https://api.exa.ai/search
|
||||
{
|
||||
"query": "DTC beauty brand raising Series A",
|
||||
"category": "news",
|
||||
"numResults": 25,
|
||||
"startPublishedDate": "2024-06-01T00:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
### Fetch Contents for Known URLs
|
||||
|
||||
```bash
|
||||
POST https://api.exa.ai/contents
|
||||
{
|
||||
"urls": ["https://example.com/post-1", "https://example.com/post-2"],
|
||||
"text": true,
|
||||
"summary": { "query": "Summarize this article's key argument in one paragraph." }
|
||||
}
|
||||
```
|
||||
|
||||
## Key Parameters
|
||||
|
||||
### Search Types
|
||||
- `auto` - Automatically routes between neural and keyword matching (default)
|
||||
- `neural` - Embedding-based semantic search; best for concept/idea queries
|
||||
- `fast` - Lower-latency neural search
|
||||
- `instant` - Returns cached results near-instantly
|
||||
- `deep-lite`, `deep`, `deep-reasoning` - Agentic search variants that plan multiple queries and synthesize
|
||||
|
||||
### Categories
|
||||
`company`, `research paper`, `news`, `personal site`, `financial report`, `people`
|
||||
|
||||
### Filtering
|
||||
- `includeDomains` / `excludeDomains` - Restrict to or exclude specific domains (up to 1200)
|
||||
- `includeText` / `excludeText` - Require or forbid phrases in result pages
|
||||
- `startPublishedDate` / `endPublishedDate` - ISO 8601 publication date range
|
||||
- `startCrawlDate` / `endCrawlDate` - ISO 8601 crawl date range
|
||||
- `userLocation` - Two-letter country code (e.g., `US`)
|
||||
|
||||
### Contents (Mix and Match)
|
||||
All three can be requested in the same call:
|
||||
- `text: true` or `{ maxCharacters, includeHtmlTags, verbosity }` - Full or truncated page text
|
||||
- `highlights: true` or `{ query, maxCharacters }` - LLM-selected relevant snippets
|
||||
- `summary: { query, schema }` - LLM-generated summary, optionally conforming to a JSON schema
|
||||
|
||||
## When to Use
|
||||
|
||||
- **Content research** - Find high-quality long-form content on niche topics by meaning, not just keywords
|
||||
- **Competitor discovery** - Find companies similar to one you've identified via `findSimilar`
|
||||
- **SEO content gap analysis** - Search for topics your competitors rank for and pull highlights for quick review
|
||||
- **Customer research** - Find forum threads, blog posts, and reviews about your product or category
|
||||
- **Audience research** - Discover blogs, newsletters, and communities where your ICP publishes or comments
|
||||
- **News monitoring** - Track mentions of your brand, competitors, or category with date-filtered news search
|
||||
- **Link prospecting** - Find authoritative pages covering topics you write about, for outreach
|
||||
- **Lead research** - Use the `company` and `people` categories to discover accounts or individuals matching criteria
|
||||
|
||||
## Rate Limits
|
||||
|
||||
- Varies by plan; see https://exa.ai/pricing
|
||||
- Most production plans support hundreds of concurrent requests
|
||||
- Content retrieval (text/highlights/summary) is billed separately from the base search
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- seo-audit
|
||||
- ai-seo
|
||||
- content-strategy
|
||||
- competitor-profiling
|
||||
- competitor-alternatives
|
||||
- customer-research
|
||||
- cold-email
|
||||
- lead-magnets
|
||||
- marketing-ideas
|
||||
@@ -0,0 +1,257 @@
|
||||
# RankParse
|
||||
|
||||
Agent-friendly SEO data API for backlinks, domain authority, tech stack, and on-page metadata. Designed as a low-cost alternative to enterprise SEO suites.
|
||||
|
||||
## Capabilities
|
||||
|
||||
| Integration | Available | Notes |
|
||||
|-------------|-----------|-------|
|
||||
| API | ✓ | REST API at `api.rankparse.com` |
|
||||
| MCP | ✓ | Hosted MCP server for agent use |
|
||||
| CLI | [✓](../clis/rankparse.js) | Node CLI wrapper |
|
||||
| SDK | - | API-only (SDKs in progress) |
|
||||
|
||||
## Authentication
|
||||
|
||||
- **Type**: API Key
|
||||
- **Header**: `X-API-Key: rp_...`
|
||||
- **Get key**: Sign up at https://rankparse.com and create a key in the dashboard
|
||||
- **Billing**: Credit-based (one-time credit packs, no subscription). Each endpoint deducts a fixed number of credits per call.
|
||||
|
||||
## Common Agent Operations
|
||||
|
||||
### Domain authority
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/domain-authority?domain=example.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Returns authority score, registered date, registrar, and popularity rank.
|
||||
|
||||
### Backlinks
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/backlinks?domain=example.com&limit=100
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Optional params: `sort=importance|recent`, `from_domain=`, `link_type=`, `score=true`.
|
||||
|
||||
### Referring domains
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/referring-domains?domain=example.com&limit=100
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Outbound links
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/outbound-links?domain=example.com&limit=100
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Anchor text profile
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/anchor-text?domain=example.com&limit=100
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Top pages
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/top-pages?domain=example.com&limit=50
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Domain overlap
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/domain-overlap?domains=a.com,b.com,c.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Compare 2–5 domains.
|
||||
|
||||
### Link intersect
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/link-intersect?domain_a=a.com&domain_b=b.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Domains that link to both targets.
|
||||
|
||||
### Competitor gap
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/competitor-gap?domain=mysite.com&vs=competitor.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Similar domains
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/similar-domains?domain=example.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Tech stack
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/tech-stack?domain=example.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Page SEO
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/page-seo?url=https://example.com/page
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Returns title, meta description, OG tags, canonical, and structured metadata for a single URL.
|
||||
|
||||
### Page performance
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/page-performance?url=https://example.com/page&strategy=mobile
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Core Web Vitals via Google PageSpeed Insights. Daily quotas apply.
|
||||
|
||||
### Site health
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/site-health?domain=example.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Sitemap
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/sitemap?domain=example.com&limit=100
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
### Crawl history
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/crawl-history?domain=example.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Wayback Machine snapshots for the domain.
|
||||
|
||||
### Link audit
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/link-audit?domain=example.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
Combined health score, risk flags, anchor profile, and top backlinks.
|
||||
|
||||
### Site explorer
|
||||
|
||||
```bash
|
||||
GET https://api.rankparse.com/v1/site-explorer?domain=example.com
|
||||
|
||||
X-API-Key: rp_...
|
||||
```
|
||||
|
||||
All-in-one snapshot of a domain.
|
||||
|
||||
### Batch lookup
|
||||
|
||||
```bash
|
||||
POST https://api.rankparse.com/v1/batch
|
||||
Content-Type: application/json
|
||||
X-API-Key: rp_...
|
||||
|
||||
{ "domains": ["a.com", "b.com", "c.com"] }
|
||||
```
|
||||
|
||||
Bulk domain summaries in one call.
|
||||
|
||||
## Free Tools (Unauthenticated)
|
||||
|
||||
Public, IP-rate-limited endpoints for quick lookups without an API key:
|
||||
|
||||
- `GET /v1/tools/backlinks?domain=`
|
||||
- `GET /v1/tools/domain-authority?domain=`
|
||||
- `GET /v1/tools/tech-stack?domain=`
|
||||
- `GET /v1/tools/similar-websites?domain=`
|
||||
- `GET /v1/tools/domain-age?domain=`
|
||||
- `GET /v1/tools/meta-tag-analyzer?url=`
|
||||
- `GET /v1/tools/link-intersect?domain_a=&domain_b=`
|
||||
- `GET /v1/tools/page-speed?url=`
|
||||
|
||||
## Key Response Fields
|
||||
|
||||
### Domain Metrics
|
||||
- `authority` - Domain authority score
|
||||
- `popularity_rank` - Tranco popularity rank
|
||||
- `registered_at` - Domain registration date
|
||||
- `registrar` - Registrar name
|
||||
|
||||
### Backlink Fields
|
||||
- `from_url` - Source URL
|
||||
- `to_url` - Target URL
|
||||
- `anchor` - Anchor text
|
||||
- `link_type` - dofollow / nofollow / ugc / sponsored
|
||||
- `first_seen` - First discovery date
|
||||
|
||||
## When to Use
|
||||
|
||||
- Backlink discovery and analysis
|
||||
- Competitor link research and gap analysis
|
||||
- Domain authority lookups at scale
|
||||
- Tech stack detection
|
||||
- On-page SEO audits
|
||||
- Sitemap and crawl history discovery
|
||||
- Agent-driven SEO workflows where per-call cost matters
|
||||
|
||||
## Pricing Model
|
||||
|
||||
- Pay-as-you-go credit packs (no subscription)
|
||||
- Most domain endpoints: 1–2 credits per call
|
||||
- Aggregated endpoints (overlap, intersect, similar, gap): 5 credits
|
||||
- Link audit: 8 credits
|
||||
- Site explorer: 10 credits
|
||||
- Batch: 1 credit per domain
|
||||
- Free tier available for unauthenticated endpoints
|
||||
|
||||
## MCP Server
|
||||
|
||||
RankParse ships a hosted MCP server exposing all endpoints as tools — connect from Claude, Cursor, or any MCP-compatible agent. See https://rankparse.com for connection details.
|
||||
|
||||
## Relevant Skills
|
||||
|
||||
- seo-audit
|
||||
- content-strategy
|
||||
- competitors
|
||||
- competitor-profiling
|
||||
- ai-seo
|
||||
- site-architecture
|
||||
- schema
|
||||
Reference in New Issue
Block a user