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

Audit and rewrite an X profile end-to-end for 2026: bio

X profile optimizer

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

X profile optimizer cover

Audit and rewrite an X (Twitter) profile end-to-end for 2026: bio (160 chars), display name with a searchable keyword, @handle, header image, pinned tweet, link, and location. Triggers on "review my X profile", "fix my bio", "rewrite my…

---
name: x-profile-optimizer
description: "Audit and rewrite an X (Twitter) profile end-to-end for 2026: bio (160 chars), display name with a searchable keyword, @handle, header image, pinned tweet, link, and location. Triggers on \"review my X profile\", \"fix my bio\", \"rewrite my Twitter bio\", \"optimize my header\", \"pin the right tweet\", \"X profile audit\". Turns a default profile into one that converts visitors into followers. Not for writing tweets (use x-post-writer)."
---

# X Profile Optimizer

Audit the seven parts of an X profile (photo, header, display name, @handle, bio, pinned tweet, link) against what actually converts a profile-clicker into a follower in 2026, then rewrite each part that needs it. On X the whole decision happens in about two seconds on the profile card: name, bio, pinned tweet. That is what this fixes.

## When to use

- User pastes their X profile or handle and asks for an audit
- "Fix my bio", "rewrite my Twitter bio", "what should I pin"
- User is starting to post seriously and wants the profile to match
- Any of: "review my X profile", "optimize my header", "profile audit"

Not for writing tweets (use `x-post-writer`) or threads (use `x-thread-builder`).

Overview

Audit the seven parts of an X profile (photo, header, display name, @handle, bio, pinned tweet, link) against what actually converts a profile-clicker into a follower in 2026, then rewrite each part that needs it. On X the whole decision happens in about two seconds on the profile card: name, bio, pinned tweet. That is what this fixes.

What you get

  • Scorecard(7 parts, pass / needs-work / fail)
  • Priority fixesranked by impact (bio and pin first, always)
  • Before → Afterrewrites for each failing part
  • Pinned-tweet pickwith the reason
Manual install (npx, ZIP)
Claude Codenpx skills add sergebulaev/x-skills --skill x-profile-optimizer -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/sergebulaev/x-skills/tar.gz/061109fdcb0b \ | tar -xz -C ~/.claude/skills --strip-components=4 x-skills-061109fdcb0b/.codex-marketplace/x-skills/skills/x-profile-optimizer
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/78fda275ef2b184f8ec1/x-profile-optimizer.zip" -OutFile "$env:TEMP\x-profile-optimizer.zip"; Expand-Archive "$env:TEMP\x-profile-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.md4.7 KB
Read the files here
sergebulaev/061109f1 file
SKILL.md
Show the full text71 lines

X Profile Optimizer

Audit the seven parts of an X profile (photo, header, display name, @handle, bio, pinned tweet, link) against what actually converts a profile-clicker into a follower in 2026, then rewrite each part that needs it. On X the whole decision happens in about two seconds on the profile card: name, bio, pinned tweet. That is what this fixes.

When to use

  • User pastes their X profile or handle and asks for an audit
  • "Fix my bio", "rewrite my Twitter bio", "what should I pin"
  • User is starting to post seriously and wants the profile to match
  • Any of: "review my X profile", "optimize my header", "profile audit"

Not for writing tweets (use x-post-writer) or threads (use x-thread-builder).

Input

  • Profile URL / handle (or a screenshot of the profile card)
  • Goal: grow a following / drive signups / land clients / build authority — the bio CTA and pinned tweet change by goal
  • Optional: their best-performing tweets, to pick a pin

Output

  1. Scorecard (7 parts, pass / needs-work / fail)
  2. Priority fixes ranked by impact (bio and pin first, always)
  3. Before → After rewrites for each failing part
  4. Pinned-tweet pick with the reason

Steps

  1. Intake. Collect the profile state + goal. Note the account tier (Premium unlocks a longer bio and longer posts).
  2. Score the 7 parts against the scorecard below.
  3. Rewrite the bio (160 chars). Formula: who you help + what you post about + one proof or specific. Lead with the value, not the job title. No "I help X do Y" cliche opener unless the rest is specific. Fit inside 160 (Premium: more, but tight still wins).
  4. Fix the display name (50 chars). Real name + a searchable keyword people actually type (e.g. "Sam Rivera | LinkedIn Growth"). The name field is searchable; the @handle mostly is not.
  5. Pick the pinned tweet. Their single best proof of what a new follower will get: a top-performing post, a mini-portfolio thread, or a clear offer matched to the goal. A profile with no pin leaves the most important slot empty.
  6. Rewrite the header (1500x500). One line of value prop + a light visual, readable on mobile, not a busy collage. It reinforces the bio, it does not repeat it.
  7. Set the link. One link, matched to the goal (newsletter / offer / site). If they need several, a single link-hub, not a bare homepage.
  8. Photo check. Clear face, fills the frame, recent, high contrast against the header. It is a 48px circle for most viewers, so detail is wasted; contrast is not.
  9. Deliver the before/after diff + the two-second test: read only name, bio, and pin, and ask "would a stranger follow from this alone?"

Seven-part scorecard

# Part Pass criteria (2026)
1 Photo Clear face filling the frame, recent, high contrast at 48px, no busy background
2 Header 1500x500, one readable value-prop line, mobile-safe, reinforces (not repeats) the bio
3 Display name Real name + a searchable keyword, inside 50 chars
4 @handle Short, memorable, no numbers/underscores if avoidable
5 Bio Value + topic + proof inside 160 chars; no cliche opener; leads with what a follower gets
6 Pinned tweet Present, and it is their best proof matched to the goal (not a random recent tweet)
7 Link One, goal-matched; a link-hub if several are needed

Hard rules

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

  • The bio must pass the two-second test: a stranger reading only name + bio + pin should know who this is for and want to follow.
  • Lead the bio with the reader's benefit, not the user's job title.
  • One specific or one number in the bio where the account allows it.
  • Keep every rewrite inside the platform character limits (bio 160, name 50). Never ship a truncated bio.
  • At most one em dash in the bio (a 160-char bio rarely needs one). No "leverage", "fundamentally", "game-changer".
  • x-post-writer - write the tweets the optimized profile will host
  • x-hook-extractor - find a pin-worthy hook in a tweet that already worked
  • x-content-planner - plan the cadence that fills the profile
1---
2name: x-profile-optimizer
3description: "Audit and rewrite an X (Twitter) profile end-to-end for 2026: bio (160 chars), display name with a searchable keyword, @handle, header image, pinned tweet, link, and location. Triggers on \"review my X profile\", \"fix my bio\", \"rewrite my Twitter bio\", \"optimize my header\", \"pin the right tweet\", \"X profile audit\". Turns a default profile into one that converts visitors into followers. Not for writing tweets (use x-post-writer)."
4---
5 
6# X Profile Optimizer
7 
8Audit the seven parts of an X profile (photo, header, display name, @handle, bio, pinned tweet, link) against what actually converts a profile-clicker into a follower in 2026, then rewrite each part that needs it. On X the whole decision happens in about two seconds on the profile card: name, bio, pinned tweet. That is what this fixes.
9 
10## When to use
11 
12- User pastes their X profile or handle and asks for an audit
13- "Fix my bio", "rewrite my Twitter bio", "what should I pin"
14- User is starting to post seriously and wants the profile to match
15- Any of: "review my X profile", "optimize my header", "profile audit"
16 
17Not for writing tweets (use `x-post-writer`) or threads (use `x-thread-builder`).
18 
19## Input
20 
21- Profile URL / handle (or a screenshot of the profile card)
22- Goal: **grow a following** / **drive signups** / **land clients** / **build authority** — the bio CTA and pinned tweet change by goal
23- Optional: their best-performing tweets, to pick a pin
24 
25## Output
26 
271. **Scorecard** (7 parts, pass / needs-work / fail)
282. **Priority fixes** ranked by impact (bio and pin first, always)
293. **Before → After** rewrites for each failing part
304. **Pinned-tweet pick** with the reason
31 
32## Steps
33 
341. **Intake.** Collect the profile state + goal. Note the account tier (Premium unlocks a longer bio and longer posts).
352. **Score the 7 parts** against the scorecard below.
363. **Rewrite the bio (160 chars).** Formula: `who you help + what you post about + one proof or specific`. Lead with the value, not the job title. No "I help X do Y" cliche opener unless the rest is specific. Fit inside 160 (Premium: more, but tight still wins).
374. **Fix the display name (50 chars).** Real name + a searchable keyword people actually type (e.g. "Sam Rivera | LinkedIn Growth"). The name field is searchable; the @handle mostly is not.
385. **Pick the pinned tweet.** Their single best proof of what a new follower will get: a top-performing post, a mini-portfolio thread, or a clear offer matched to the goal. A profile with no pin leaves the most important slot empty.
396. **Rewrite the header (1500x500).** One line of value prop + a light visual, readable on mobile, not a busy collage. It reinforces the bio, it does not repeat it.
407. **Set the link.** One link, matched to the goal (newsletter / offer / site). If they need several, a single link-hub, not a bare homepage.
418. **Photo check.** Clear face, fills the frame, recent, high contrast against the header. It is a 48px circle for most viewers, so detail is wasted; contrast is not.
429. **Deliver the before/after diff** + the two-second test: read only name, bio, and pin, and ask "would a stranger follow from this alone?"
43 
44## Seven-part scorecard
45 
46| # | Part | Pass criteria (2026) |
47|---|------|----------------------|
48| 1 | **Photo** | Clear face filling the frame, recent, high contrast at 48px, no busy background |
49| 2 | **Header** | 1500x500, one readable value-prop line, mobile-safe, reinforces (not repeats) the bio |
50| 3 | **Display name** | Real name + a searchable keyword, inside 50 chars |
51| 4 | **@handle** | Short, memorable, no numbers/underscores if avoidable |
52| 5 | **Bio** | Value + topic + proof inside 160 chars; no cliche opener; leads with what a follower gets |
53| 6 | **Pinned tweet** | Present, and it is their best proof matched to the goal (not a random recent tweet) |
54| 7 | **Link** | One, goal-matched; a link-hub if several are needed |
55 
56## Hard rules
57 
58Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific rules:
59 
60- The bio must pass the two-second test: a stranger reading only name + bio + pin should know who this is for and want to follow.
61- Lead the bio with the reader's benefit, not the user's job title.
62- One specific or one number in the bio where the account allows it.
63- Keep every rewrite inside the platform character limits (bio 160, name 50). Never ship a truncated bio.
64- At most one em dash in the bio (a 160-char bio rarely needs one). No "leverage", "fundamentally", "game-changer".
65 
66## Related skills
67 
68- `x-post-writer` - write the tweets the optimized profile will host
69- `x-hook-extractor` - find a pin-worthy hook in a tweet that already worked
70- `x-content-planner` - plan the cadence that fills the profile
71 
View all files on GitHub →

Details

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

Similar skills

See all →
SkillResearch what people actually say about any topicSTEP 0: STALE-CLONE SELF-CHECK — RUN BEFORE READING BELOWmvanhorn/last30days-skill · by mvanhornResearch what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. Includes a doctor health check to diagnose broken or missing sources.★ 63.5k GitHub starsSkillScrapes social platforms, business dataApifydanielmiessler/LifeOS · by danielmiesslerScrapes social platforms, business data, and e-commerce via Apify actors — Instagram, LinkedIn, TikTok, YouTube, Facebook, Google Maps, Amazon, and web crawls — filtering in code. USE WHEN scrape Instagram, scrape LinkedIn, scrape TikTok, scrape YouTube, scrape Facebook, Google Maps leads, Amazon reviews, business intelligence, multi-platform social listening, competitive analysis, lead generation, social monitoring, Apify actors, web crawl, extract contacts. NOT FOR X/Twitter account operations like posting, threads, or bookmarks (those need a dedicated X API client), 4-tier progressive scraping with proxy escalation (use BrightData), or real-Chrome bot bypass and computer use (use Interceptor).★ 19.3k GitHub starsSkill微信公众号长文增长闭环 ——tsingyuai/growth-lab · by tsingyuai微信公众号长文增长闭环 —— 从读者问题与复刻锚选题、写出可验证的公众号长文、预览与合规检查、同步微信草稿、三重确认下受控发布,到回收阅读与转化数据并复盘。用户要求写公众号、把内容改成公众号、同步或发布微信草稿、查看公众号数据或复盘时使用。★ 2k GitHub starsSkillSearch and retrieve content from Twitter/XTwitter/X SkillReScienceLab/opc-skills · by ReScienceLabSearch and retrieve content from Twitter/X. Get user info, tweets, replies, followers, communities, spaces, and trends via twitterapi.io. Use when user mentions Twitter, X, or tweets.★ 1.8k GitHub starsSkillSays 'YouTube script', 'video script'🎬 YouTube Script: Writing retention-optimized video script...cwinvestments/memstack · by cwinvestmentsUse this skill when the user says 'YouTube script', 'video script', 'write script for YouTube', 'YouTube video outline', or is creating scripted content for a YouTube video with hooks, chapters, and CTAs. Do NOT use for TikTok/Reels short-form scripts or webinar presentations.★ 423 GitHub starsSkillAgent Reach — 互联网能力路由器Ootto-AI/claude-content-skills · by Ootto-AIMUST USE when user wants to 调研/research/搜索/search/查/找/look up anything on the internet — e.g. 全网调研 X / 帮我调研一下 X / 查一下 X / 搜搜 X / 看看大家怎么评价 X / X 上有什么讨论 / research this topic。 Also MUST USE when user mentions any platform or shares any URL/链接: 小红书/xiaohongshu/xhs, Twitter/推特/X, B站/bilibili, Reddit, V2EX, LinkedIn/领英/招聘/求职/jobs, YouTube, GitHub code search, 小宇宙播客, 雪球/股票行情, RSS feeds, or any web URL. 13 platforms, multi-backend routing (OpenCLI / per-platform CLIs / APIs). Zero config for 6 channels. Run `agent-reach doctor --json` to see which backend serves each platform right now. NOT for: 写报告/数据分析/翻译等内容加工(本 skill 只负责从互联网获取内容); 发帖/评论/点赞等写操作;已有专门 skill 的平台(先用专门 skill)。 【路由方式】SKILL.md 包含路由表和常用命令,复杂场景需按需阅读对应分类的 references/*.md。 分类:search / social (小红书/推特/B站/V2EX/Reddit) / career(LinkedIn) / dev(github) / web(网页/文章/RSS) / video(YouTube/B站/播客)。★ 139 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