Skip to content

/x-profile-optimizer

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

From plugin
x-skills
1779 skills

Claude Code

$ npx -y skills add sergebulaev/x-skills --skill x-profile-optimizer --agent claude-code

SKILL.md

x-profile-optimizer.SKILL.md
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`).

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".

Related skills

  • `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
Read more
@sergebulaev
Ships withx-skills

Part of the linkedin-skills family (400+ stars). Same voice engine and approve-before-publish flow, now for X. Also available for Instagram · YouTube · TikTok · Threads · Facebook. 9 skills that turn Claude Code and Codex into your X (Twitter) content team.

Stars on GitHub

Momentum

stars in total
177
Star history of sergebulaev/x-skills on GitHub, a chart by star-history.com

Other skills on x-skills.

x-audience-insights
Auto-invoked

x-audience-insights

Read your X (Twitter) audience and niche from real data. Pull a handle's recent tweets (yours or a competitor's) with likes,…

x-content-planner
Auto-invoked

x-content-planner

Generate a weekly X (Twitter) content plan from a theme, audience, and content pillars. Produces per-day recommendations (single…

x-hook-extractor
Auto-invoked

x-hook-extractor

Reverse-engineer the hook from a viral X (Twitter) tweet or thread URL. Identifies which of the 10 canonical 2026 X formulas it…

x-humanizer
Auto-invoked

x-humanizer

Remove the AI tells human readers react to in a tweet or thread: 2026 vocabulary by density, reveal bridges, staccato stacks,…

x-post-writer
Auto-invoked

x-post-writer

Draft a single tweet or short auto-thread for X (Twitter) using a 2026 X hook formula (one-liner contrarian, data-point,…

x-reply-drafter
Auto-invoked

x-reply-drafter

Draft a reply or a value-add quote tweet for a specific X (Twitter) tweet from its URL. Use to reply in a thread, answer a…

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

@iofficeai@iofficeaiInstall Skill

Questions about x-profile-optimizer.

Which coding agents can use x-profile-optimizer?
x-profile-optimizer installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.