New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Write high-CTR YouTube and YouTube Shorts titles under 100

YouTube Title Optimizer

by sergebulaev · MIT license · ★ 36 on GitHub · updated Sep 17

YouTube Title Optimizer cover

Write high-CTR YouTube and YouTube Shorts titles under 100 characters using 2026 packaging formulas (curiosity-gap, number, how-I outcome, mistake/loss, transformation, versus). Balances curiosity with a real keyword, front-loads the…

---
name: yt-title-optimizer
description: "Write high-CTR YouTube and YouTube Shorts titles under 100 characters using 2026 packaging formulas (curiosity-gap, number, how-I outcome, mistake/loss, transformation, versus). Balances curiosity with a real keyword, front-loads the click-deciding words for the 60-char mobile cutoff, and returns 3 to 5 A/B variants tagged by goal for Test and Compare. Use to title or rework a video. Not for the description (use yt-description-writer) or the thumbnail overlay (use yt-thumbnail-brief)."
---

# YouTube Title Optimizer

Titles are half the click. This skill turns a topic, a draft title, or a video
URL into a shortlist of titles that earn the click honestly, then leaves the
final pick (and the A/B test) to you.

## When to use

- User says "give me title ideas for this video"
- User has a flat or clickbait title and wants sharper, honest options
- User wants titles tied to a specific goal (CTR for browse, or search-intent)
- User wants A/B variants to drop into YouTube's Test & Compare

Overview

Titles are half the click. This skill turns a topic, a draft title, or a video URL into a shortlist of titles that earn the click honestly, then leaves the final pick (and the A/B test) to you.

Manual install (npx, ZIP)
Claude Codenpx skills add sergebulaev/youtube-skills --skill yt-title-optimizer -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/sergebulaev/youtube-skills/tar.gz/0e0a8cae2a7c \ | tar -xz -C ~/.claude/skills --strip-components=4 youtube-skills-0e0a8cae2a7c/.codex-marketplace/youtube-skills/skills/yt-title-optimizer
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/1053ffe612b4bb8456de/yt-title-optimizer.zip" -OutFile "$env:TEMP\yt-title-optimizer.zip"; Expand-Archive "$env:TEMP\yt-title-optimizer.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.2 KB
  • references/1 file · 2.2 KB
Read the files here
sergebulaev/0e0a8ca2 files
Shared references3SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text99 lines

YouTube Title Optimizer

Titles are half the click. This skill turns a topic, a draft title, or a video URL into a shortlist of titles that earn the click honestly, then leaves the final pick (and the A/B test) to you.

When to use

  • User says "give me title ideas for this video"
  • User has a flat or clickbait title and wants sharper, honest options
  • User wants titles tied to a specific goal (CTR for browse, or search-intent)
  • User wants A/B variants to drop into YouTube's Test & Compare

Formulas this skill uses (packaging shapes, Y1-Y6)

Code Formula Best for
Y1 Curiosity-Gap a surprising result whose mechanism is hidden
Y2 Number / Listicle a finite, scannable payoff
Y3 How-I Outcome a first-person result with a number and timeframe
Y4 Mistake / Negativity a costly thing the viewer is getting wrong
Y5 Transformation a before/after arc over a timeframe
Y6 Versus / Comparison two named options in tension (search-friendly)
Y11 Third-Party Success Story a named person/archetype who built a big number from zero

Full skeletons in ../../references/hook-formulas.md. Y11 was added from a 214-video corpus pull (July 2026) where the third-party rags-to-riches title was the most-frequent uncaptured shape; Y1/Y3/Y5 were the confirmed over-performers, and Y2/Y4/Y6 read weaker in the business/creator niche (noted in the reference).

Steps

  1. Gather inputs. The topic or rough title, the real payoff of the video, the target viewer, the main search phrase if any, and whether it is long-form or a Short. If a URL is given, parse it with lib/url_parser.py and ask the user to paste the current title and what the video actually delivers.
  2. Decide the job. Browse-first (lead with curiosity and emotion) or search-first (lead with the exact query phrase). Most videos want browse; how- to and comparison videos lean search.
  3. Shortlist 2 to 3 formulas that fit the payoff, then draft.
  4. Write 3 to 5 titles. Each one:
    • Under 100 chars, ideally 40 to 60, click-deciding words first.
    • One specific number where the claim allows it.
    • Curiosity AND a concrete noun. Never pure mystery, never a dry label.
    • Complements a thumbnail (note what the thumbnail should carry instead).
    • At most one em dash, and a title rarely wants one (a colon reads cleaner); no ALL CAPS, 0 to 1 emoji.
  5. Humanizer pass. Scrub 2026 AI vocabulary (a title is one line: any marker such as "leverage" or "game-changer" gets replaced), break stacked or hollow rule-of-three, strip reveal bridges ("Here's what nobody tells you") and sincerity framing ("honestly?", "real talk"). Replace an excess em dash with a colon, never a period.
  6. Tag each variant with its formula, char count, and primary goal, and flag the one to lead the Test & Compare with.
  7. Approval card. Show the variants with char counts. The user picks or asks for another round.
  8. On approval. Titles ride along when the video is published. If the user is also uploading via this bundle, pass the chosen title as the title kwarg to lib.publish(kind="video"|"short", ...); otherwise hand it over for Studio.

Hard rules

Global voice rules: see root SKILL.md Voice rules. Additional skill-specific rules:

  • 100-char hard cap. Aim 40 to 60 so mobile does not truncate the payoff.
  • Front-load: the words that decide the click go before any colon.
  • Title and thumbnail never repeat the same words. Note the split every time.
  • Curiosity must be honest. The title cannot promise more than the first 30 seconds delivers (a fast click-away is a ranking penalty).
  • Always return at least 3 variants. One title is not a recommendation.

Anti-patterns (skill will refuse)

  • Clickbait the video does not honor ("you won't believe what happened").
  • ALL CAPS titles or 3+ emoji for fake intensity.
  • Keyword-stuffing the title to chase search.
  • More than one em dash in a title, or a dash where a colon does the job.
  • Vague mystery with no concrete noun ("This changes everything").
  • Repeating the thumbnail's words in the title.

Resources

  • ../../references/hook-formulas.md - Y1-Y6 title skeletons and the pairing table
  • ../../references/algorithm-heuristics.md - CTR x retention, packaging, the 60-char cutoff
  • references/title-checklist.md - the per-title scrub and CTR fit list
  • yt-thumbnail-brief - design the other half of the click
  • yt-hook-scripter - script the first 30 seconds so the title's promise lands
  • yt-description-writer - the SEO description and chapters
  • yt-content-planner - pair titles and thumbnails across a week
1---
2name: yt-title-optimizer
3description: "Write high-CTR YouTube and YouTube Shorts titles under 100 characters using 2026 packaging formulas (curiosity-gap, number, how-I outcome, mistake/loss, transformation, versus). Balances curiosity with a real keyword, front-loads the click-deciding words for the 60-char mobile cutoff, and returns 3 to 5 A/B variants tagged by goal for Test and Compare. Use to title or rework a video. Not for the description (use yt-description-writer) or the thumbnail overlay (use yt-thumbnail-brief)."
4---
5 
6# YouTube Title Optimizer
7 
8Titles are half the click. This skill turns a topic, a draft title, or a video
9URL into a shortlist of titles that earn the click honestly, then leaves the
10final pick (and the A/B test) to you.
11 
12## When to use
13 
14- User says "give me title ideas for this video"
15- User has a flat or clickbait title and wants sharper, honest options
16- User wants titles tied to a specific goal (CTR for browse, or search-intent)
17- User wants A/B variants to drop into YouTube's Test & Compare
18 
19## Formulas this skill uses (packaging shapes, Y1-Y6)
20 
21| Code | Formula | Best for |
22|---|---|---|
23| Y1 | Curiosity-Gap | a surprising result whose mechanism is hidden |
24| Y2 | Number / Listicle | a finite, scannable payoff |
25| Y3 | How-I Outcome | a first-person result with a number and timeframe |
26| Y4 | Mistake / Negativity | a costly thing the viewer is getting wrong |
27| Y5 | Transformation | a before/after arc over a timeframe |
28| Y6 | Versus / Comparison | two named options in tension (search-friendly) |
29| Y11 | Third-Party Success Story | a named person/archetype who built a big number from zero |
30 
31Full skeletons in `../../references/hook-formulas.md`. Y11 was added from a
32214-video corpus pull (July 2026) where the third-party rags-to-riches title was
33the most-frequent uncaptured shape; Y1/Y3/Y5 were the confirmed over-performers,
34and Y2/Y4/Y6 read weaker in the business/creator niche (noted in the reference).
35 
36## Steps
37 
381. **Gather inputs.** The topic or rough title, the real payoff of the video, the
39 target viewer, the main search phrase if any, and whether it is long-form or a
40 Short. If a URL is given, parse it with `lib/url_parser.py` and ask the user
41 to paste the current title and what the video actually delivers.
422. **Decide the job.** Browse-first (lead with curiosity and emotion) or
43 search-first (lead with the exact query phrase). Most videos want browse; how-
44 to and comparison videos lean search.
453. **Shortlist 2 to 3 formulas** that fit the payoff, then draft.
464. **Write 3 to 5 titles.** Each one:
47 - Under 100 chars, ideally 40 to 60, click-deciding words first.
48 - One specific number where the claim allows it.
49 - Curiosity AND a concrete noun. Never pure mystery, never a dry label.
50 - Complements a thumbnail (note what the thumbnail should carry instead).
51 - At most one em dash, and a title rarely wants one (a colon reads cleaner);
52 no ALL CAPS, 0 to 1 emoji.
535. **Humanizer pass.** Scrub 2026 AI vocabulary (a title is one line: any
54 marker such as "leverage" or "game-changer" gets replaced), break stacked
55 or hollow rule-of-three, strip reveal bridges ("Here's what nobody tells
56 you") and sincerity framing ("honestly?", "real talk"). Replace an excess
57 em dash with a colon, never a period.
586. **Tag each variant** with its formula, char count, and primary goal, and flag
59 the one to lead the Test & Compare with.
607. **Approval card.** Show the variants with char counts. The user picks or asks
61 for another round.
628. **On approval.** Titles ride along when the video is published. If the user is
63 also uploading via this bundle, pass the chosen title as the `title` kwarg to
64 `lib.publish(kind="video"|"short", ...)`; otherwise hand it over for Studio.
65 
66## Hard rules
67 
68Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific
69rules:
70 
71- 100-char hard cap. Aim 40 to 60 so mobile does not truncate the payoff.
72- Front-load: the words that decide the click go before any colon.
73- Title and thumbnail never repeat the same words. Note the split every time.
74- Curiosity must be honest. The title cannot promise more than the first 30
75 seconds delivers (a fast click-away is a ranking penalty).
76- Always return at least 3 variants. One title is not a recommendation.
77 
78## Anti-patterns (skill will refuse)
79 
80- Clickbait the video does not honor ("you won't believe what happened").
81- ALL CAPS titles or 3+ emoji for fake intensity.
82- Keyword-stuffing the title to chase search.
83- More than one em dash in a title, or a dash where a colon does the job.
84- Vague mystery with no concrete noun ("This changes everything").
85- Repeating the thumbnail's words in the title.
86 
87## Resources
88 
89- `../../references/hook-formulas.md` - Y1-Y6 title skeletons and the pairing table
90- `../../references/algorithm-heuristics.md` - CTR x retention, packaging, the 60-char cutoff
91- `references/title-checklist.md` - the per-title scrub and CTR fit list
92 
93## Related skills
94 
95- `yt-thumbnail-brief` - design the other half of the click
96- `yt-hook-scripter` - script the first 30 seconds so the title's promise lands
97- `yt-description-writer` - the SEO description and chapters
98- `yt-content-planner` - pair titles and thumbnails across a week
99 
View all files on GitHub →

Details

Updated
Sep 17, 2026
License
MIT
Stars on the repo
★ 36
Checked
Source
sergebulaev/youtube-skills ↗
Creator
sergebulaev · 77 listings
View creator

Similar skills

See all →
SkillAudit a YouTube channel end to endYt auditJakeschincariol/youtube-agent-skill · by JakeschincariolAudit a YouTube channel end to end - packaging, consistency, the first fifteen seconds, and what to fix first. Use for "audit my channel", "why isn't my channel growing", "review my videos", or a pasted channel URL.★ 1.1k GitHub starsSkillAudit and rewrite a YouTube channel end-to-end for 2026YouTube Channel Optimizersergebulaev/youtube-skills · by sergebulaevAudit and rewrite a YouTube channel end-to-end for 2026: name and @handle, banner (2560x1440 with the 1235x338 mobile/TV safe area), profile picture, About plus searchable keywords, trailer for non-subscribers vs featured video for subscribers, sections and playlist layout, watermark, links. Triggers on "optimize my YouTube channel", "rewrite my channel about", "fix my banner", "channel audit", "set my trailer". Converts a viewer into a subscriber. Not for writing a video title (use yt-title-optimizer).★ 36 GitHub starsSkillIs my ad fatiguing, why is CTR dropping at scaleFatigue frequency manageraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "is my ad fatiguing", "why is CTR dropping at scale", or "should I rotate creative / widen the audience"; reads frequency, CTR and CVR decay against an early-flight baseline and returns Rotate-creative / Widen-audience / Hold triggers with a per-ad-set fatigue read. Not for building the replacement creative — use ad-creative-builder; not for the RQS score or vetoes — use ad-account-auditor. 广告疲劳检测/频次管理/换素材还是扩人群★ 2.9k GitHub starsSkill- Leaders, Fillers, KillersPackaging, Tiers, and Bundleswondelai/skills · by wondelai- Leaders, Fillers, Killers★ 2.2k GitHub starsSkillWrite and lint the title and thumbnail for a YouTube videoYt packageJakeschincariol/youtube-agent-skill · by JakeschincariolWrite and lint the title and thumbnail for a YouTube video as one pairing, checking truncation, duplication and vagueness before publish. Use for title ideas", "what should I call this", "thumbnail text", "my CTR is bad", packaging, or any request to rename or repackage an existing video.★ 1.1k GitHub starsSkillOptimize YouTube videos for searchYoutube SEOkostja94/marketing-skills · by kostja94When the user wants to optimize YouTube videos for search, create video descriptions, or improve channel visibility. Also use when the user mentions "YouTube SEO," "YouTube description," "YouTube tags," "YouTube thumbnail," "YouTube title," "YouTube channel," or "video SEO." For YouTube ads, use youtube-ads.★ 1k GitHub stars

More from sergebulaev

SkillBy density per paragraph, not per wordAI Tells — Complete Blacklist (V3, 2026-09)sergebulaev/linkedin-skills · by sergebulaevScored the way readers read: by density per paragraph, not per word. One marker in a paragraph is English. Three is a signature. The…★ 3.1k GitHub starsSkillFifteen rules from the linkedin-humanizer packageAI-Tell Rules: Tier-Classified Referencesergebulaev/linkedin-skills · by sergebulaevFifteen rules from the linkedin-humanizer package, sorted by what kind of evidence each one actually represents.★ 3.1k GitHub starsSkillPattern data from MagicPost LinkedIn analysisEmoji Patterns — AI vs. Humansergebulaev/linkedin-skills · by sergebulaevPattern data from MagicPost LinkedIn analysis (Feb 2026, viral post with 220 engagement).★ 3.1k GitHub starsSkillRead your Instagram niche and profile from real dataInstagram Audience Insightssergebulaev/instagram-skills · by sergebulaevRead your Instagram niche and profile from real data via Apify, no login. Scan a hashtag for the posts traveling now (likes, comments, owner) to see the format and hook that works. Pull profile stats for any handle, yours or a competitor's: followers, posts, bio, category. Instagram hides who liked or commented on other accounts, so this is discovery plus profiles, not engagers. Triggers on "what works in my niche", "scan the hashtag", "competitor stats". Not for writing captions (use ig-caption-writer).★ 138 GitHub starsSkillDraft an Instagram caption with the hook in the first 125Instagram Caption Writersergebulaev/instagram-skills · by sergebulaevDraft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).★ 138 GitHub starsSkillPlan an Instagram carousel slide by slide, up to 10 slidesInstagram Carousel Plannersergebulaev/instagram-skills · by sergebulaevPlan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the payoff, and a payoff slide that earns the save and follow. Picks a 2026 carousel formula (listicle, before/after, myth-buster, framework) by goal (saves, shares, follows), drafts each slide's text plus the caption, then publishes the images you supply via Publora. Use to structure a multi-slide carousel. Not for single-image captions (use ig-caption-writer).★ 138 GitHub stars