This is a full-featured LinkedIn profile auditor that uses Claude for Chrome to analyze your profile while you have it open in your browser. It pulls everything from profile photos and headlines to engagement rates and Social Selling Index scores, then grades each section on a 1-10 scale with industry-specific benchmarks. The skill is thorough to a fault, requiring you to classify your industry, profile type, and target audience before it starts, which means you get recommendations tailored to whether you're a consultant hunting clients or an employee building thought leadership. It calculates actual engagement rates instead of just showing vanity metrics, and the scoring framework covers seven weighted categories from visual identity to content activity. Best for anyone serious about LinkedIn who wants a structured teardown rather than generic advice.
npx -y skills add schwepps/skills --skill linkedin-personal-branding --agent claude-codeInstalls into .claude/skills of the current project.
Every audit MUST include these elements - no exceptions:
| Requirement | What | Why |
|---|---|---|
| Industry Classification | Identify user's industry/sector | Determines which benchmarks to apply |
| Profile Type | Employee / Consultant / Freelancer / Entrepreneur / Job Seeker | Affects recommendations (e.g., Services section) |
| Target Audience | Recruiters / Clients / Peers / Investors / Partners | Shapes content and positioning strategy |
| Engagement Rate | CALCULATED: (R+C+S)/Impressions×100 | Raw numbers alone are meaningless |
| SSI Score | Actual score OR estimation with note | Key performance indicator |
These fields appear in the report header and metrics section. Do not skip them.
This skill enables comprehensive LinkedIn profile analysis, personal branding assessment, and actionable optimization recommendations using Claude for Chrome browser automation. It helps professionals improve their visibility, engagement, and professional positioning on LinkedIn.
Works for ANY industry: Tech, Finance, Healthcare, Legal, Marketing, HR, Consulting, Creative, Nonprofit, and more. See references/metrics_benchmarks.md for industry-specific benchmarks.
Requirements:
Identify what type of LinkedIn work is needed:
A. Full Profile Audit
B. Quick Profile Review
C. Content Strategy Analysis
D. Visibility Optimization
⚠️ REQUIRED: Before any analysis, you MUST identify and document:
| Field | How to Determine | Example Values |
|---|---|---|
| Industry/Sector | Job titles, company types, content topics | Tech, Finance, Healthcare, Consulting, etc. |
| Profile Type | Current role structure | Employee, Consultant/Freelancer, Entrepreneur, Job Seeker |
| Target Audience | Who they want to reach | Recruiters, Clients, Peers, Investors, Partners |
| Geographic Focus | Location + language | Local, Regional, Global |
Classification Questions to Answer:
This information MUST appear in the audit report header:
**Industry/Sector:** [IDENTIFIED INDUSTRY]
**Profile Type:** [Employee / Consultant / Freelancer / Entrepreneur / Job Seeker]
**Target Audience:** [Recruiters / Clients / Peers / Investors / Partners]
Why This Matters:
Use Claude for Chrome browser tools to access the LinkedIn profile. The user should have LinkedIn open in their browser.
Chrome DevTools MCP Tools for LinkedIn Analysis:
| Tool | MCP Tool Name | Use For |
|---|---|---|
| List Pages | mcp__chrome-devtools__list_pages | Get browser tabs, find LinkedIn tab by URL |
| Select Page | mcp__chrome-devtools__select_page | Select LinkedIn tab for operations |
| Snapshot | mcp__chrome-devtools__take_snapshot | Extract accessibility tree with element UIDs |
| Screenshot | mcp__chrome-devtools__take_screenshot | Capture visual elements (photo, banner) |
| Navigate | mcp__chrome-devtools__navigate_page | Navigate to URLs or back/forward |
| Click | mcp__chrome-devtools__click | Click elements using UID from snapshot |
| Wait For | mcp__chrome-devtools__wait_for | Wait for text to appear (lazy content) |
| Hover | mcp__chrome-devtools__hover | Scroll element into view |
Workflow:
mcp__chrome-devtools__list_pages → find pageId where URL contains "linkedin.com/in/"mcp__chrome-devtools__select_page with the pageId to focus LinkedIn tabmcp__chrome-devtools__take_snapshot → returns accessibility tree with UIDs (e.g., [uid1], [uid2])mcp__chrome-devtools__take_screenshot → analyze profile photo and banner qualitymcp__chrome-devtools__hover to scroll → re-snapshot to get new contentKey sections to analyze:
Profile Foundation
Professional Story
Visibility & Engagement
Network Signals
Use the scoring framework from references/scoring_framework.md to evaluate each element.
Scoring Categories (1-10 scale):
| Category | Weight | Key Factors |
|---|---|---|
| Visual Identity | 15% | Photo quality, banner relevance, visual consistency |
| Headline | 15% | Value proposition, keywords, memorability |
| About Section | 15% | Story structure, keywords, CTA |
| Experience | 20% | Completeness, achievements, metrics |
| Skills & Endorsements | 10% | Relevance, endorsement count |
| Recommendations | 10% | Quality, diversity, recency |
| Activity & Content | 15% | Posting frequency, engagement rate |
Overall Score Interpretation:
Track and benchmark these metrics (see references/metrics_benchmarks.md):
Visibility Metrics
Engagement Metrics
⚠️ MANDATORY: Calculate Actual Engagement Rate
You MUST calculate and report the engagement rate, not just show raw numbers:
Engagement Rate = (Reactions + Comments + Shares) / Impressions × 100
Example Calculation:
Post data: 1,376 impressions, 15 reactions, 1 comment, 0 shares
Engagement Rate = (15 + 1 + 0) / 1,376 × 100 = 1.16%
Interpretation: 🟡 Average (1-2%) - needs improvement
Target: 3%+ for good engagement
Always include in the report:
| Metric | Raw Value | Calculated | Benchmark | Status |
|---|---|---|---|---|
| Engagement Rate | 16 interactions / 1,376 impressions | 1.16% | 3%+ | 🟡 Below target |
Growth Metrics
⚠️ MANDATORY: Social Selling Index (SSI)
The SSI score is critical for measuring LinkedIn effectiveness. You MUST either:
Option A - User provides SSI:
Ask user to visit linkedin.com/sales/ssi and share their score, then document:
| SSI Component | Score | Target |
|---------------|-------|--------|
| Establish professional brand | X/25 | 20+ |
| Find the right people | X/25 | 15+ |
| Engage with insights | X/25 | 18+ |
| Build relationships | X/25 | 18+ |
| **TOTAL SSI** | **X/100** | **70+** |
Option B - SSI not available: If user cannot access SSI, document in report:
**SSI Score:** Not available (user should visit linkedin.com/sales/ssi to check)
**Estimated SSI Range:** [X-Y] based on profile completeness and activity
SSI Estimation Guide (when actual score unavailable):
| Profile Characteristics | Estimated SSI |
|---|---|
| All-Star profile + active posting + engaged network | 70-85 |
| Complete profile + regular posting | 55-70 |
| Basic profile + occasional activity | 40-55 |
| Incomplete profile + minimal activity | Below 40 |
Keyword/SEO Analysis
Profile Completeness Check
Multilingual Profile Analysis (if applicable)
LinkedIn Features Assessment
| Feature | Status | Recommendation |
|---|---|---|
| Creator Mode | On/Off | Enable if posting 3+/week |
| Open to Work | On/Off | Enable if job seeking (visible to recruiters only) |
| Providing Services | On/Off | Enable if freelancer/consultant |
| Newsletter | On/Off | Consider if 1000+ followers |
| Custom URL | Set/Default | Always customize |
| Verification Badge | Yes/No | Add if available |
Network Quality Assessment
Provide actionable recommendations using the priority framework:
Priority Matrix:
Recommendation Categories:
Profile Optimization
Content Strategy
Engagement Strategy
Visibility Enhancement
⚠️ MANDATORY: Pre-Report Validation Checklist
Before generating any audit report, verify ALL mandatory fields are completed:
□ Industry/Sector identified and documented
□ Profile Type classified (Employee/Consultant/Freelancer/Entrepreneur/Job Seeker)
□ Target Audience identified (Recruiters/Clients/Peers/Investors/Partners)
□ Engagement Rate CALCULATED (not just raw numbers)
□ SSI Score captured OR noted as unavailable with estimation
□ Industry-specific benchmarks applied (from metrics_benchmarks.md)
If any field is missing, go back and complete it before proceeding.
Generate output using templates from assets/:
Report Sections:
Formula: Who you are + What problems you solve + Benefits you provide
Bad: "Marketing Manager" Good: "Marketing Manager | Helping B2B Companies Grow Through Data-Driven Strategies | 45% Revenue Increase Specialist"
Industry-Specific Examples:
| Industry | Example Headline |
|---|---|
| Tech | "Senior Software Engineer |
| Finance | "Investment Analyst |
| Healthcare | "Nurse Practitioner |
| Legal | "Corporate Attorney |
| HR | "Talent Acquisition Leader |
| Sales | "Enterprise Account Executive |
| Creative | "UX Designer |
| Consulting | "Strategy Consultant |
| Nonprofit | "Development Director |
| Startup | "Founder & CEO @ [Company] |
Include:
Structure (Problem-Solution-Proof-CTA):
Tips:
For each role include:
Curate 3-6 items:
If user offers services:
Analyze the user's posting history to identify:
Calculate actual engagement rate:
Engagement Rate = (Total Reactions + Comments + Shares) / Impressions × 100
Benchmark: 2-5% is good, 5-8% is excellent, 8%+ is exceptional
references/scoring_framework.mdDetailed scoring criteria for each profile element with examples and benchmarks.
When to load: For any profile audit or analysis requiring detailed scoring.
references/metrics_benchmarks.mdIndustry benchmarks for LinkedIn metrics including SSI scores, engagement rates, and growth targets.
When to load: When analyzing metrics or setting targets for improvement.
references/content_strategy.mdContent pillars, posting schedules, format recommendations, and engagement tactics.
When to load: When developing content strategy or analyzing posting performance.
assets/profile_audit_template.mdComplete profile audit report template with scoring cards and recommendations.
assets/quick_review_template.mdRapid assessment checklist with priority actions.
assets/action_plan_template.md30-60-90 day improvement roadmap template.
User: "Analyze my LinkedIn profile and give me recommendations" Steps:
mcp__chrome-devtools__list_pages → find pageId for LinkedIn tabmcp__chrome-devtools__select_page with pageIdmcp__chrome-devtools__take_snapshot → extract profile structure with UIDsmcp__chrome-devtools__take_screenshot → analyze photo and banner visuallyreferences/scoring_framework.md for scoring criteriareferences/metrics_benchmarks.md for industry comparisonassets/profile_audit_template.md for report formatUser: "Help me improve my LinkedIn headline" Steps:
mcp__chrome-devtools__take_snapshot → find headline in accessibility treeUser: "Help me create a LinkedIn content strategy" Steps:
mcp__chrome-devtools__navigate_page (url: linkedin.com/in/[user]/recent-activity/)mcp__chrome-devtools__wait_for (text: "reactions") → wait for posts to loadmcp__chrome-devtools__take_snapshot → extract recent posts datareferences/content_strategy.md for strategy frameworkUser: "Take a quick look at my LinkedIn profile" Steps:
mcp__chrome-devtools__list_pages → find LinkedIn tabmcp__chrome-devtools__select_page → focus the tabmcp__chrome-devtools__take_snapshot → quick structure scanassets/quick_review_template.md for rapid assessmentUser: "Analyze my LinkedIn analytics and engagement metrics" Steps:
mcp__chrome-devtools__navigate_page (url: "https://www.linkedin.com/analytics/")mcp__chrome-devtools__wait_for (text: "Profile viewers") → verify dashboard loadsmcp__chrome-devtools__take_snapshot → capture analytics overviewmcp__chrome-devtools__navigate_page (url: "https://www.linkedin.com/sales/ssi")mcp__chrome-devtools__wait_for (text: "Social Selling Index") → check accessmcp__chrome-devtools__take_snapshot → capture SSI scores (or note unavailable)references/metrics_benchmarks.mdStep 1: Get browser tabs
→ mcp__chrome-devtools__list_pages
→ Response includes array of pages with: pageId, url, title
→ Find page where url contains "linkedin.com/in/"
Step 2: Select LinkedIn tab
→ mcp__chrome-devtools__select_page (pageId: [found_id])
→ Page is now the active context for subsequent operations
Step 3: Take accessibility snapshot
→ mcp__chrome-devtools__take_snapshot
→ Returns text representation of page with element UIDs like [uid1], [uid2]
→ UIDs are used for click, hover, and other interactions
Step 4: Take screenshot for visual analysis
→ mcp__chrome-devtools__take_screenshot
→ Returns image of current viewport
→ Analyze profile photo quality, banner design, visual branding
Step 5: Extract specific text (optional)
→ mcp__chrome-devtools__evaluate_script
→ function: "() => document.body.innerText"
→ Returns all visible text on page
LinkedIn lazy-loads content. To access sections below the fold:
Step 1: Take initial snapshot
→ mcp__chrome-devtools__take_snapshot
→ Identify UID for section you need (e.g., "Skills" heading)
Step 2: Scroll to section
→ mcp__chrome-devtools__hover (uid: "[skills_uid]")
→ OR mcp__chrome-devtools__click (uid: "[show_more_uid]")
→ Element scrolls into view
Step 3: Wait for content to load
→ mcp__chrome-devtools__wait_for (text: "Show all", timeout: 5000)
→ LinkedIn AJAX content finishes loading
Step 4: Re-snapshot for new content
→ mcp__chrome-devtools__take_snapshot
→ Now includes previously hidden elements
Step 1: Navigate to Activity section
→ From profile, find "Activity" or "Posts" link UID in snapshot
→ mcp__chrome-devtools__click (uid: "[activity_uid]")
→ OR mcp__chrome-devtools__navigate_page (url: "linkedin.com/in/[username]/recent-activity/")
Step 2: Wait for posts to load
→ mcp__chrome-devtools__wait_for (text: "reactions", timeout: 5000)
Step 3: Snapshot activity page
→ mcp__chrome-devtools__take_snapshot
→ Extract post content, reaction counts, comment counts
Step 4: Calculate engagement metrics
→ For each visible post: (reactions + comments + reposts) / impressions × 100
→ Note: Impressions may not be visible to non-authors
LinkedIn Analytics provides key metrics only visible to the profile owner.
Step 1: Navigate to Analytics
→ mcp__chrome-devtools__navigate_page (url: "https://www.linkedin.com/analytics/")
Step 2: Wait for dashboard to load
→ mcp__chrome-devtools__wait_for (text: "Profile viewers", timeout: 10000)
→ If timeout: User may not have analytics access - ask them to navigate manually
Step 3: Capture analytics snapshot
→ mcp__chrome-devtools__take_snapshot
→ Extract: Profile views (7d, 90d), Post impressions, Search appearances, Follower count
Step 4: Navigate to detailed views (optional)
→ Click "Profile viewers" UID for viewer demographics
→ Click "Post impressions" UID for content performance breakdown
→ Click "Search appearances" UID for keyword visibility
The Social Selling Index is a key LinkedIn metric (mandatory in audits).
Step 1: Navigate to SSI page
→ mcp__chrome-devtools__navigate_page (url: "https://www.linkedin.com/sales/ssi")
Step 2: Check for access
→ mcp__chrome-devtools__wait_for (text: "Social Selling Index", timeout: 5000)
→ If timeout: SSI may require Sales Navigator - document as unavailable
Step 3: Capture SSI data
→ mcp__chrome-devtools__take_snapshot
→ Extract: Overall score (/100), 4 component scores (/25 each)
→ Components: Professional Brand, Find Right People, Engage Insights, Build Relationships
Step 4: Capture rankings (if visible)
→ Industry rank, Network rank (percentile position)
For detailed engagement data on specific posts (author-only view).
Step 1: From Activity page, find target post
→ mcp__chrome-devtools__take_snapshot
→ Locate post by content or date in the snapshot
Step 2: Click to view post details
→ mcp__chrome-devtools__click (uid: "[post_uid]")
→ OR click "View analytics" link UID if visible
Step 3: Wait for analytics overlay
→ mcp__chrome-devtools__wait_for (text: "impressions", timeout: 5000)
Step 4: Capture post-level metrics
→ mcp__chrome-devtools__take_snapshot
→ Extract: Impressions, Unique views, Reactions (by type), Comments, Reposts
→ Extract: Top companies, Top job titles (viewer demographics)
For audience understanding and growth tracking.
Step 1: Navigate to Follower Analytics
→ mcp__chrome-devtools__navigate_page (url: "https://www.linkedin.com/analytics/profile-viewers/followers/")
→ OR from Analytics dashboard, click "Followers" tab UID
Step 2: Wait for data to load
→ mcp__chrome-devtools__wait_for (text: "followers", timeout: 5000)
Step 3: Capture follower data
→ mcp__chrome-devtools__take_snapshot
→ Extract: Total followers, Growth (7d, 30d), Top companies, Top job titles, Top locations
Step 4: Scroll for historical data (if needed)
→ mcp__chrome-devtools__hover (uid: "[chart_uid]") to scroll down
→ Re-snapshot to capture growth chart data
If Chrome DevTools MCP is unavailable, use Playwright MCP:
| Chrome DevTools | Playwright Equivalent |
|---|---|
mcp__chrome-devtools__list_pages | mcp__playwright__browser_tabs action: "list" |
mcp__chrome-devtools__select_page | mcp__playwright__browser_tabs action: "select" |
mcp__chrome-devtools__take_snapshot | mcp__playwright__browser_snapshot |
mcp__chrome-devtools__take_screenshot | mcp__playwright__browser_take_screenshot |
mcp__chrome-devtools__navigate_page | mcp__playwright__browser_navigate |
mcp__chrome-devtools__click | mcp__playwright__browser_click |
mcp__chrome-devtools__hover | mcp__playwright__browser_hover |
mcp__chrome-devtools__wait_for | mcp__playwright__browser_wait_for |
| Error | Detection | Recovery |
|---|---|---|
| LinkedIn tab not found | list_pages returns no matching URL | Ask user: "Please open your LinkedIn profile in Chrome" |
| Element UID not in snapshot | Click/hover fails with invalid UID | Re-take snapshot, search for alternative element |
| Content not loading | wait_for times out | Scroll manually, increase timeout, try page refresh |
| Rate limited by LinkedIn | Page shows CAPTCHA or error | Pause 30+ seconds, inform user, proceed slowly |
| SSI page requires Sales Navigator | linkedin.com/sales/ssi shows paywall | Note as "SSI unavailable" and provide estimation based on profile |
| Profile is private | Snapshot shows limited content | Document as "Limited visibility - private profile" |
| Analytics page access denied | Page shows "upgrade" or paywall | Note limited metrics access, use visible profile data only |
| Post analytics not available | No "View analytics" option on post | User is not post author - can only see public engagement counts |
| Follower data unavailable | Analytics follower tab empty or restricted | Use visible follower count from profile, note demographics unavailable |
mcp__chrome-devtools__list_pages to verify LinkedIn tab existstake_snapshot before clicking or hovering - you need UIDstake_screenshot for visual analysis with take_snapshot for texthover to scroll, then re-snapshotmcp__playwright__* toolsThis skill works for ANY professional profile. Always identify the user's industry context first to apply relevant benchmarks.
Ask or infer from the profile:
The references/metrics_benchmarks.md file contains benchmarks for 15+ industries:
| Category | Industries Covered |
|---|---|
| Technology | Software, Web3/Blockchain, Data Science |
| Business | Finance, Consulting, Sales, Marketing |
| Professional | Legal, Healthcare, HR, Education |
| Creative | Design, Creative, Media |
| Other | Manufacturing, Nonprofit, Real Estate, Startups |
Different industries have different norms:
| Factor | Conservative Industries | Progressive Industries |
|---|---|---|
| Tone | Formal, reserved | Casual, personable |
| Photo | Traditional headshot | Can be more creative |
| Content | Thought leadership, insights | Stories, behind-the-scenes |
| Posting | 2-3x/week | 4-5x/week |
| Emojis | Minimal | Acceptable |
| Examples | Legal, Finance, Healthcare | Tech, Marketing, Startups |
Look for these signals in the profile:
When conducting competitive analysis for positioning:
Ask user to provide 3-5 LinkedIn profiles of:
For each competitor, capture:
Create comparison table showing:
Recommend how user can:
When analyzing profile photos and banners:
| Score | Criteria |
|---|---|
| 9-10 | Professional headshot, perfect lighting, confident expression, clean background, face fills 60-70% of frame |
| 7-8 | Good quality, professional appearance, minor improvements possible |
| 5-6 | Acceptable but dated, lighting issues, or unprofessional background |
| 3-4 | Low quality, inappropriate setting, or face not clearly visible |
| 1-2 | No photo, logo instead of face, or severely inappropriate |
Red Flags:
| Score | Criteria |
|---|---|
| 9-10 | Custom branded banner with value proposition, professional design, proper dimensions (1584×396) |
| 7-8 | Custom image, relevant to role/industry, minor optimization possible |
| 5-6 | Generic image, somewhat relevant but no branding or messaging |
| 3-4 | Default LinkedIn background or low-quality image |
| 1-2 | Distracting, inappropriate, or broken/stretched image |
Effective Banner Elements:
When user has profiles in multiple languages:
Provide recommendations for:
juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills