Reference: 5 Downloadable Custom Skills
The Claude Landing Page Skills Library
Five production-ready SKILL.md files. Copy each into its own directory (filename: SKILL.md), zip the directory, and upload via Claude.ai > Customize > Skills, or drop into .claude/skills/[skill-name]/ for Claude Code. Each skill triggers automatically when its description matches your request.
The master skill that builds complete single-file HTML landing pages following the DVA pattern. Triggers on any landing page request.
---
name: landing-page-builder
description: Build conversion-optimized single-file HTML landing pages with hero, features, pricing, FAQ, and CTA. Triggers when user asks for a landing page, sales page, marketing page, product page, lead capture page, or any single-page conversion asset.
---
# Landing Page Builder Skill
## When to use this skill
Use whenever the user asks for a landing page, sales page, marketing page, product launch page, squeeze page, opt-in page, or any single-page conversion asset.
## Output structure
Every landing page produced by this skill must have these sections in this order:
1. **Hero** — Headline (under 10 words), subhead (under 20 words), primary CTA, optional secondary CTA
2. **Trust bar** — Customer logos, certifications, or one-line proof points
3. **Three feature blocks** — Each leading with a concrete outcome, not a feature name
4. **Social proof** — One specific testimonial OR one specific result metric (placeholders OK if real data missing)
5. **Pricing or offer** — One clear offer with explicit pricing
6. **Three-question FAQ** — Real objections, real answers
7. **Final CTA** — Same primary action as the hero
## Hard rules
- Single file with inline CSS. No external dependencies.
- Mobile-first responsive: 375px / 768px / 1200px breakpoints.
- WCAG 2.1 AA compliant: focus rings, semantic HTML, alt text on every image.
- Self-hosted system fonts only. No Google Fonts. No external CDN.
- Never use AI-cliche phrases: revolutionary, game-changer, unlock, elevate, level up, supercharge, next-gen, harness, leverage.
- Never invent statistics, customer counts, certifications, or testimonial quotes.
- Mark uncertain facts as [needs verification] rather than fabricating.
## Required structured data
Every page must include these in the <head>:
- <title> under 60 characters
- <meta name="description"> under 160 characters
- Open Graph tags: og:type, og:title, og:description, og:image, og:url, og:site_name
- Twitter Card: twitter:card=summary_large_image, twitter:title, twitter:description, twitter:image
- <link rel="canonical">
- One JSON-LD schema appropriate to page type (Product, Service, Event, WebPage)
## Tone
Confident. Specific. Direct. No superlatives. No urgency theater. No fake scarcity. Lead with concrete claims, not adjectives.
## Output discipline
After generating the page, append a 3-line summary:
1. What the page is selling
2. The primary conversion goal
3. One thing you intentionally left out (with rationale)
## Anti-patterns to reject
- Hero stat cards with invented numbers
- Generic testimonials like "This changed my life!"
- Feature lists that just repeat the product name
- "As seen in" sections with no actual logos
- Countdown timers for fake urgency
Encodes your brand voice, banned phrases, palette, and typography so every copy and design request stays on-brand without re-explanation.
---
name: brand-voice
description: Apply [BRAND NAME] brand voice, banned phrases, palette, typography, and tone rules to any copy, code, or design output. Triggers on any creative or design request including copy writing, landing pages, social posts, emails, and visual design.
---
# [BRAND NAME] Brand Voice Skill
## When to use this skill
Use whenever generating copy, code, or design for [BRAND NAME]. Applies to landing pages, blog posts, social posts, emails, ads, and any branded asset.
## Brand identity
- **Name:** [BRAND NAME]
- **Positioning:** [one-sentence positioning statement]
- **Audience:** [primary audience description]
- **Tone:** [3 tone adjectives, e.g., confident, specific, warm]
## Visual system
- **Primary color:** #[hex]
- **Accent color:** #[hex]
- **Background:** #[hex]
- **Text:** #[hex]
- **Display font:** [font name], [weight]
- **Body font:** [font name], [weight]
## Banned phrases (never use)
- "Revolutionary"
- "Game-changer"
- "Unlock"
- "Elevate"
- "Level up"
- "Supercharge"
- "Harness the power of"
- "Leverage"
- "Best-in-class"
- "World-class"
- "Cutting-edge"
- [Add brand-specific banned phrases]
## Required claims (always include where relevant)
- [Certification or guarantee 1]
- [Certification or guarantee 2]
- [Differentiator 1]
## Forbidden claims (never use)
- [Any claim the brand cannot back, e.g., "the best", "fastest", "only"]
- Any statistic without a source
## Voice characteristics
- Lead with concrete outcomes, not features
- Use specific numbers when available; mark [needs verification] when uncertain
- Write in active voice
- Short sentences. Vary length.
- Address the reader directly: "you", "your"
- Avoid corporate hedging: "we believe", "we think"
## Photography and imagery
- Style: [editorial / lifestyle / product / abstract / etc.]
- Subjects: [what to show]
- Avoid: [what not to show]
- Color treatment: [warm / cool / neutral / brand-tinted]
## Quality gate
Before finalizing any output, verify:
- Zero banned phrases used
- All claims are concrete and backable
- Palette and typography match the visual system
- Tone is consistent with the 3 tone adjectives
Applies proven conversion frameworks (PAS, AIDA, StoryBrand) on demand. Triggers on copy refinement and CRO requests.
---
name: conversion-framework
description: Apply proven conversion copywriting frameworks (PAS, AIDA, StoryBrand 7-part, BAB) to landing page copy, sales pages, and CRO refinements. Triggers when user mentions conversion, CRO, sales copy, persuasion, or asks to apply a named framework.
---
# Conversion Framework Skill
## When to use this skill
Trigger whenever the user mentions:
- Conversion rate optimization (CRO)
- Sales copy
- Persuasive writing
- A named framework: PAS, AIDA, StoryBrand, BAB, FAB
## Frameworks supported
### 1. PAS (Problem - Agitate - Solve)
Best for: pain-driven categories (back pain, anxiety, money loss, time waste).
Structure:
1. **Problem (60-80 words):** Name the specific problem in the buyer's own words.
2. **Agitate (80-120 words):** Twist the knife. Make the cost of inaction concrete.
3. **Solve (100-150 words):** Present the solution. Show the mechanism. Address the strongest objection.
### 2. AIDA (Attention - Interest - Desire - Action)
Best for: considered purchases where you need to build interest before asking for action.
Structure:
1. **Attention (hero):** Stop the scroll. Headline must promise a specific outcome.
2. **Interest (next 1-2 sections):** Make them want to keep reading. Hint at the how.
3. **Desire (proof + features):** Show the outcome is real and achievable.
4. **Action (final CTA):** Single clear next step with no friction.
### 3. StoryBrand 7-Part
Best for: service businesses, SaaS, anything where the customer needs a guide.
Structure:
1. **Character:** The customer with a desire
2. **Problem:** What stands in their way (external, internal, philosophical)
3. **Guide:** The brand, positioned as the experienced helper (not hero)
4. **Plan:** 3-step path that makes the journey feel achievable
5. **Call to Action:** Direct (buy) and transitional (free resource)
6. **Success:** What life looks like when they win
7. **Failure:** What life looks like if they don't act
### 4. BAB (Before - After - Bridge)
Best for: transformation-led products (fitness, learning, financial).
Structure:
1. **Before:** Their current frustrating reality
2. **After:** The specific better state
3. **Bridge:** Your product as the path
## How to apply
1. Ask which framework if not specified (default: PAS for cold traffic, StoryBrand for warm).
2. Identify the customer's actual problem in their own language (use customer reviews if available).
3. Generate the copy structure first, then fill in specifics.
4. Verify no framework artifacts leak into the copy (no "Problem:" / "Solve:" headers).
5. Output the framework name used at the bottom for reference.
## Forbidden
- Inventing pain points the audience doesn't actually have
- Using framework jargon in the customer-facing copy
- Manipulative urgency or false scarcity
- Generic "are you tired of..." openers
Generates valid, validated JSON-LD schemas for any landing page. Covers Product, Service, FAQPage, HowTo, Article, VideoObject, BreadcrumbList, WebPage with speakable.
---
name: jsonld-generator
description: Generate validated JSON-LD structured data schemas for landing pages including Product, Service, FAQPage, HowTo, Article, VideoObject, BreadcrumbList, and WebPage with speakable. Triggers on schema, JSON-LD, structured data, rich results, or schema.org requests.
---
# JSON-LD Schema Generator Skill
## When to use this skill
Trigger whenever the user mentions: schema, JSON-LD, structured data, rich results, schema.org, or asks for any of the supported schema types.
## Schemas supported
### Product
Required fields: @context, @type, name, description, image, brand
Recommended: offers (with price, priceCurrency, availability, priceValidUntil), aggregateRating, review, sku, gtin
Pin @id to: {canonical_url}#product
### Service
Required: @context, @type, name, provider
Recommended: serviceType, areaServed, offers, hasOfferCatalog
Pin @id to: {canonical_url}#service
### FAQPage
Required: @context, @type, mainEntity (array of Question objects)
Each Question requires: @type, name, acceptedAnswer.text
Pin @id to: {canonical_url}#faq
### HowTo
Required: @context, @type, name, step (array of HowToStep)
Recommended: description, totalTime, estimatedCost, tool, supply
Pin @id to: {canonical_url}#howto
### Article
Required: @context, @type, headline, image, datePublished, author, publisher
Recommended: dateModified, mainEntityOfPage, articleSection, wordCount
Pin @id to: {canonical_url}#article
### VideoObject
Required: @context, @type, name, description, thumbnailUrl, uploadDate
Recommended: contentUrl, embedUrl, duration (ISO 8601), publisher
Pin @id to: {canonical_url}#video
### BreadcrumbList
Required: @context, @type, itemListElement (array of ListItem with position, name, item)
Pin @id to: {canonical_url}#breadcrumb
### WebPage with SpeakableSpecification
Required: @context, @type=WebPage, url, name
For voice search: speakable: { @type: SpeakableSpecification, cssSelector: [".speakable-summary", ".speakable-answer"] }
Pin @id to: {canonical_url}#webpage
## Output rules
1. Use schema.org as @context for all schemas
2. Always pin @id values with hash fragments to the canonical URL
3. Reference Organization and Person via @id (don't redefine in every schema)
4. Output each schema in a separate <script type="application/ld+json"> block
5. Validate the JSON parses before outputting (mentally walk the bracket count)
## Quality gate
Before finalizing, verify:
- Every required field is filled (no placeholder strings)
- @id values are unique within the page
- Cross-schema references via @id resolve to schemas on this or other pages
- Image URLs are absolute (not relative)
- All dates use ISO 8601 format
- No invented data (mark uncertain values as [needs verification])
## What NOT to do
- Don't duplicate Organization or WebSite if they exist elsewhere on the site (theme-level)
- Don't include schemas that have no on-page representation
- Don't include speakable spec without matching CSS classes in the HTML
- Don't fabricate aggregateRating, review counts, or similar trust signals
Generates working email service provider integrations (Klaviyo, Mailchimp, ConvertKit, Beehiiv, SendGrid) with proper field mapping and error handling.
---
name: esp-integration
description: Generate working form integrations for major email service providers (Klaviyo, Mailchimp, ConvertKit, Beehiiv, SendGrid, Resend) with proper field mapping, validation, error handling, and success states. Triggers on email signup, lead capture, opt-in form, or named ESP requests.
---
# ESP Integration Generator Skill
## When to use this skill
Trigger whenever the user mentions: email signup, newsletter form, lead capture, opt-in, list builder, or a specific ESP by name (Klaviyo, Mailchimp, ConvertKit, Beehiiv, SendGrid, Resend, Brevo, ActiveCampaign).
## ESPs supported
### Klaviyo
- Endpoint: https://manage.kmail-lists.com/ajax/subscriptions/subscribe
- Required: g (list ID), email
- Auth: public list ID (no API key on frontend)
- CORS: yes
- Pattern: POST with URL-encoded body
### Mailchimp
- Endpoint: https://[dc].api.mailchimp.com/3.0/lists/[list_id]/members
- Auth: API key required (USE SERVER-SIDE PROXY)
- CORS: server-side only
- Pattern: POST JSON, basic auth header
### ConvertKit
- Endpoint: https://api.convertkit.com/v3/forms/[form_id]/subscribe
- Auth: form-level API key (public, lower-risk)
- CORS: yes
- Pattern: POST JSON with api_key
### Beehiiv
- Endpoint: https://api.beehiiv.com/v2/publications/[pub_id]/subscriptions
- Auth: API key (USE SERVER-SIDE PROXY)
- CORS: server-side only
- Pattern: POST JSON, bearer auth
### Resend (for transactional)
- Use for thank-you emails post-signup, not for list management
- Endpoint: https://api.resend.com/emails
- Auth: API key (server-side only)
## Output structure
For every ESP integration, produce:
1. **HTML form** with semantic markup
- <label> for every input (or aria-label)
- Type-appropriate inputs (email type for email, etc.)
- Required attribute on required fields
- Honeypot field for spam (hidden, non-tab, non-screen-reader)
2. **JavaScript handler** with:
- preventDefault on submit
- Client-side validation
- Loading state (disable button, show spinner)
- Success state (replace form with thank-you message)
- Error state (display human-readable error, allow retry)
- Analytics event dispatch on success
3. **Success state** that:
- Replaces the form (don't just hide it)
- Confirms the action ("Check your inbox")
- Optional: triggers a tracking pixel or analytics event
4. **Privacy compliance**
- Consent checkbox if EU/UK traffic
- Link to privacy policy
- GDPR-compliant data handling note for server-side integrations
## Hard rules
- NEVER hardcode API keys in client-side code
- For ESPs requiring server-side auth, output a serverless function pattern (Vercel, Netlify, Cloudflare Workers)
- Always include rate-limit handling
- Always handle network errors gracefully
- Always send a confirmation event to GA4 or equivalent
## Quality gate
- Form has proper labels and ARIA
- Loading state is visible and accessible
- Error messages are human-readable (not "Error 422")
- Success state confirms the action with specifics
- No API keys exposed in network tab
Installation
For each skill: create a folder named after the skill (e.g., landing-page-builder/), paste the SKILL.md content into a file named exactly SKILL.md inside that folder, then either zip and upload via Claude.ai > Customize > Skills, or drop the unzipped folder into ~/.claude/skills/ for Claude Code. Restart your Claude Code session after dropping in new skills.