linkedin-personal-branding — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited linkedin-personal-branding (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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 × 100Example 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 engagementAlways 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 activitySSI 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
→ All checked = LinkedIn "All-Star" profile status
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:
⚠️ 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 | Building Scalable Systems at Fortune 500s | Python, AWS, Distributed Systems" |
| Finance | "Investment Analyst | Helping Family Offices Navigate Alternative Investments | CFA Charterholder" |
| Healthcare | "Nurse Practitioner | Improving Patient Outcomes Through Preventive Care | 15+ Years Emergency Medicine" |
| Legal | "Corporate Attorney | M&A and Securities for Growth-Stage Companies | Former BigLaw, Now Founder-Friendly" |
| HR | "Talent Acquisition Leader | Building World-Class Engineering Teams | Hired 200+ Engineers at Scale-Ups" |
| Sales | "Enterprise Account Executive | Helping CFOs Reduce Costs by 30% | $5M+ Annual Quota Achiever" |
| Creative | "UX Designer | Making Complex Products Simple | Design Systems, User Research, Accessibility" |
| Consulting | "Strategy Consultant | Helping Retailers Increase Revenue 25%+ | Former McKinsey, Now Independent" |
| Nonprofit | "Development Director | Raising $10M+ Annually for Education Equity | Grant Writing, Major Gifts" |
| Startup | "Founder & CEO @ [Company] | Helping SMBs Automate Operations | Ex-Google, 2x Founder" |
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 × 100Benchmark: 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 pageLinkedIn 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 elementsStep 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-authorsLinkedIn 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 visibilityThe 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 dataIf 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:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.