Skip to content
All Skills

LinkedIn Profile Optimizer

Reads your LinkedIn profile via Playwright MCP, researches industry keywords via Brave Search, rewrites headline/summary/experience with keyword optimization, and updates your profile directly in the browser. Prerequisites: playwright MCP, brave-search MCP.

Career & Professional|v1|Updated 5/18/2026
MCP get_skill({ skillId: "linkedin-profile-optimizer-4cc084a7" })

Use this skill with your agent

Create a free account and connect via MCP

Get Started Free
# LinkedIn Profile Optimizer

Read your live LinkedIn profile via Playwright, optimize it with industry keywords from Brave Search, and update it directly in the browser.

## When to Use

- "Optimize my LinkedIn profile for {target role}"
- "Rewrite my LinkedIn headline and summary"
- "Read my LinkedIn and suggest improvements"

## Requirements

- **Playwright MCP** for reading and updating your LinkedIn profile in the browser
- **Brave Search MCP** for industry keyword research and competitor profiles
- User must be logged into LinkedIn in the browser session

## Workflow

### Step 1 — Collect Target Info

- **Target role/industry**
- **Key skills to highlight**
- **Career goals** (new job, freelance clients, thought leadership)

### Step 2 — Read Current Profile via Playwright

Navigate to the user's own profile using the `/in/me/` shortcut (auto-redirects to logged-in user):

```
browser_navigate: "https://www.linkedin.com/in/me/"
```

**Handle cookie consent first** — LinkedIn may show a cookie banner that blocks all interaction. Look for an "Accept" or "Accept cookies" button in the snapshot and click it before proceeding.

Take a snapshot and extract current content:

```
browser_snapshot
```

Extract from the page snapshot:
- Current headline (shown under the name)
- About / summary section text
- Experience entries (titles, descriptions)
- Skills listed (top skills shown in About card)
- Number of connections
- Activity section (posts, followers)
- Profile analytics (views, search appearances)

The profile may be long. Scroll down with `browser_press_key: End` and take additional snapshots to capture Experience, Education, Skills, and Activity sections. If the About section shows a "…more" button, click it to expand.

### Step 3 — Research Industry Keywords

```
brave_web_search: "{TARGET_ROLE} LinkedIn profile keywords recruiters search {CURRENT_YEAR}"
brave_web_search: "best LinkedIn headline examples {TARGET_ROLE}"
brave_web_search: "LinkedIn summary examples {INDUSTRY} professionals"
```

Focus on:
- Keywords recruiters actually filter by (technology + role combinations)
- Headline patterns that perform well (role | value prop | key skills)
- About section structure (hook → expertise → skills list → CTA)

### Step 4 — Audit Current Profile

Score each section and present a table:

```markdown
## LinkedIn Profile Audit

| Section | Current | Score | Issue |
|---------|---------|-------|-------|
| Headline | "{CURRENT}" | {X}/10 | {What's wrong} |
| About | {word count} | {X}/10 | {What's missing} |
| Experience | {N} roles, {description?} | {X}/10 | {Issue} |
| Skills | {N} listed | {X}/10 | {Missing keywords} |
| Education | {details?} | {X}/10 | {Issue} |
| Activity | {post count} | {X}/10 | {Issue} |
| Projects | {count} | {X}/10 | {Issue} |
| Photo | {Yes/No} | {X}/10 | {Recommendation} |
| Background | {Yes/No} | {X}/10 | {Recommendation} |
| URL | {clean or numeric?} | {X}/10 | {Recommendation} |
```

Present the audit, then write full **before/after rewrites** for Headline and About. **Get explicit approval before making any changes.**

### Step 5 — Rewrite Key Sections

**Headline** (220 chars max — LinkedIn's actual limit):
```
Before: "Software Engineer at Acme Corp"
After:  "Software Engineer at Acme Corp | Distributed Systems & Cloud-Native Analytics | Python · AWS · Scalable Data Pipelines"
```

Pattern: `{Role} at {Company} | {Specialty & Domain} | {Key Skills separated by · or |}`

**About / Summary** (2,600 chars max — LinkedIn's actual limit):
```markdown
{Opening line — role + what you build + at what scale}

{Paragraph on core work — architecture, systems, technologies}

{Paragraph on side focus or passion area if applicable}

Core expertise:
• {Skill area 1}
• {Skill area 2}
• {Skill area 3}
• {Skill area 4}
• {Skill area 5}
• {Skill area 6}

{CTA — open to connecting, feel free to reach out}
```

**Experience bullet points** — same rules as resume:
- Action verb + what you did + quantified result
- Weave in searchable keywords naturally

### Step 6 — Update Profile via Playwright

Only after user approves the changes.

**IMPORTANT: LinkedIn uses TipTap rich text editors.** `browser_fill_form` does NOT work for these fields. Instead use this pattern:
1. `browser_click` on the textbox to focus it
2. `browser_press_key: Control+a` to select all existing text
3. `browser_type` to replace with new text

**Update Headline:**
```
browser_navigate: "https://www.linkedin.com/in/{USERNAME}/edit/intro/"
browser_snapshot
— Find the Headline textbox in the snapshot
browser_click: headline textbox ref
browser_press_key: Control+a
browser_type: "{NEW_HEADLINE}"
— Verify the character count shown (should be ≤220)
browser_click: "Save" button
browser_snapshot → confirm "Your intro is saved"
— Dismiss any Premium upsell dialog that appears
```

**Update About/Summary:**
```
browser_navigate: "https://www.linkedin.com/in/{USERNAME}/edit/forms/summary/new/"
browser_snapshot
— Find the About textbox in the snapshot
browser_click: About textbox ref
browser_press_key: Control+a
browser_type: "{NEW_ABOUT_TEXT}"
— Verify character count (should be ≤2,600)
browser_click: "Save" button
browser_snapshot → confirm "Your about section has been updated"
— Dismiss any Premium upsell dialog that appears
```

**Note:** After every save, LinkedIn may show a Premium upsell dialog ("Further enhance your profile with Premium"). Click the Dismiss/X button to close it before continuing.

### Step 7 — Verify Changes

Navigate back to the profile and confirm both sections display correctly:

```
browser_navigate: "https://www.linkedin.com/in/me/"
browser_snapshot
```

Verify the new headline and about text appear in the profile view.

### Step 8 — Additional Recommendations

Suggest next steps the user can do manually or in a follow-up session:
- Add more skills (aim for 20+)
- Add projects to showcase work
- Clean up profile URL (remove numeric suffix)
- Add a background/banner image
- Start posting (even 1x/week helps discoverability)
- Request recommendations from colleagues

## Important Rules

- **ALWAYS get user approval before updating any LinkedIn field** — show the before/after first
- **Use `browser_type` after `Ctrl+A`, NOT `browser_fill_form`** — LinkedIn's rich text editors don't support fill_form
- **Handle cookie consent** — accept cookies before any other interaction
- **Dismiss Premium upsell dialogs** after each save operation
- Never fabricate credentials or experience
- Keywords must be naturally integrated, not keyword-stuffed
- Summary should sound human, not like a resume
- Take a browser snapshot after each edit to verify the change saved
- If LinkedIn's UI changes or an element isn't found, stop and tell the user rather than clicking blindly
- The About edit URL is `/edit/forms/summary/new/`, NOT `/edit/about/`
- Headline limit is 220 chars (not 120). About limit is 2,600 chars (not 2,000)

## Example Prompts

- "Open my LinkedIn and optimize it for Senior Data Engineer roles"
- "Read my LinkedIn profile and tell me what to improve"
- "Update my LinkedIn headline and summary for product management"
#career#linkedin#personal-brand#brave-search#playwrightplaywrightbrave-search