A Claude Code skill that keeps a LinkedIn profile in sync with a resume, via Playwright browser automation — no manual copy-pasting between "I updated my resume" and "now go update six LinkedIn sections by hand."
- Reads your resume/source-of-truth files and drafts Headline, About, Experience, and Skills content section-by-section
- Gets your approval on each section before touching anything live
- Applies each approved section to your live LinkedIn profile via browser automation, with a screenshot-and-confirm step before every save
- Enforces standing constraints you define once (e.g. "never lead with a skill I can't defend live," "past titles stay past-tense") so every refresh — not just the first one — respects them
LinkedIn's official API doesn't expose profile-section writes to third-party apps. Editing the live profile means driving the actual edit UI, which is what this skill does via Playwright — one section at a time, with a confirmation gate before every save.
This was built for one person's specific resume/profile setup. To adapt it:
- Drop your own resume/source file(s) in the same directory as
SKILL.md, and update the "Re-read source material" step inSKILL.mdto point at them. - Replace the "Standing constraints" section with your own non-negotiables — the things you never want an automated pass to drift on (tone, banned words, must-be-backed-by-evidence rules, whatever matters for your profile).
- Install this skill by placing the
.claude/skills/linkedin-optimizer/folder in a project Claude Code has access to. - Invoke it by asking Claude Code to "update my linkedin" (or your own trigger phrase — edit the
descriptionfrontmatter field to match).
- Claude Code
- Playwright MCP (or equivalent browser automation) configured and authenticated to LinkedIn
MIT