skills/linkedin-chrome/SKILL.md
LinkedIn content management via Chrome browser automation. Use when the user asks to check LinkedIn comments, reply to LinkedIn comments, post on LinkedIn, schedule a LinkedIn post, review LinkedIn engagement, draft a LinkedIn post, check LinkedIn notifications, or manage LinkedIn content. Triggers on: 'LinkedIn', 'check my posts', 'reply to comments', 'schedule a post', 'LinkedIn engagement', 'post to LinkedIn', 'draft a LinkedIn post', 'LinkedIn comments', 'LinkedIn strategy'. Requires Chrome browser automation tools (claude-in-chrome or chrome-devtools-mcp).
npx skillsauth add baphomet480/claude-skills linkedin-chromeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage LinkedIn content through Chrome browser automation: review engagement, reply to comments, publish posts, and schedule content.
Before starting, verify LinkedIn is accessible:
https://www.linkedin.com/feed/Check comments and reactions on recent posts.
Navigate to: https://www.linkedin.com/in/{username}/recent-activity/all/
Steps:
// Extract visible posts with engagement counts
Array.from(document.querySelectorAll('.feed-shared-update-v2')).slice(0, 10).map(post => {
const text = post.querySelector('.feed-shared-text')?.innerText?.slice(0, 100) || '';
const reactions = post.querySelector('.social-details-social-counts__reactions-count')?.innerText || '0';
const comments = post.querySelector('.social-details-social-counts__comments')?.innerText || '0';
return { text, reactions, comments };
});
Post replies to specific commenters on your posts.
Steps:
Reply box targeting:
LinkedIn nests reply boxes. After clicking "Reply" on a comment, the input area appears indented below that comment. Verify by snapshot that:
Typing strategy:
LinkedIn's editor is a contenteditable div, not a standard input. Use the fill or type tool, not JavaScript injection. If the editor doesn't accept input:
Steps:
https://www.linkedin.com/feed/After posting:
CRITICAL: Use claude-in-chrome (computer tool), NOT chrome-devtools-mcp for scheduling. LinkedIn's scheduler uses custom React inputs that reject CDP-level DOM manipulation. The chrome-devtools-mcp fill/type tools cannot set the date or time. The claude-in-chrome computer tool provides real mouse/keyboard interaction that works.
Steps (using claude-in-chrome computer tool):
tabs_context_mcp, create a new tab with tabs_create_mcphttps://www.linkedin.com/feed/left_clicktype to enter post contenttype the new date (e.g., "3/27/2026"). A calendar picker appears. Click the target date on the calendar.Important: Scheduled posts cannot have a first comment added at schedule time. Create a calendar reminder for the user to add the first comment when the post goes live.
Draft post content based on existing blog posts, engagement patterns, or user direction. This step does not require browser automation.
Process:
Match the user's established LinkedIn voice:
These patterns signal AI-generated content. Avoid them:
| Pattern | Fix | |---------|-----| | Triple repetition ("real X, real Y, real Z") | Say it once, plainly | | Balanced closing sentences | End abruptly or casually | | Parallel structure punchlines | Make it conversational | | Lists of exactly four items | Use three, or five, or just prose | | "Here's what I'd tell you" framing | Just say it | | Keynote-style one-liner endings | End mid-thought or with a short sentence | | Em dashes | Use periods or commas |
Never put external links in the post body. LinkedIn's algorithm suppresses posts with outbound links.
Always place links in the first comment posted immediately after the post goes live. Format:
The full breakdown: {url}
What works (based on engagement data):
What doesn't work:
.md file) before attempting to use browser automation to publish or schedule. If automation fails, you still have the approved content.LinkedIn's DOM changes frequently. These selectors are starting points. Always verify with a snapshot before interacting.
URL: https://www.linkedin.com/in/{username}/recent-activity/all/
Posts: .feed-shared-update-v2
Post text: .feed-shared-text
Reactions count: .social-details-social-counts__reactions-count
Comments count: .social-details-social-counts__comments
Trigger: Click "Start a post" on feed page
Text area: contenteditable div inside the modal (.ql-editor or [role="textbox"])
Post button: button with text "Post" (becomes blue/active when text is entered)
Schedule icon: Clock icon button next to Post button
Top-level: .comments-comment-box__form [role="textbox"]
Reply box: Appears after clicking "Reply" on a comment, nested under that comment
Submit: Button with text "Comment" or "Reply" inside the comment form
LinkedIn requires authentication. Do not attempt to log in. Tell the user to sign in manually in the Chrome profile, then retry.
LinkedIn uses a rich text editor (contenteditable). If typing doesn't work:
document.querySelector('[role="textbox"]').innerText = 'your text' followed by dispatching an input eventAfter clicking "Post", LinkedIn may show a brief confirmation. The post sometimes doesn't appear at the top of the feed immediately. Navigate to the activity page to verify.
LinkedIn dynamically loads content. If elements from a snapshot are gone, take a fresh snapshot. Comment sections especially change as threads expand/collapse.
development
Sets up, configures, and optimizes Google Analytics 4 (GA4) properties. Evaluates websites for proper GA4 implementation, tracking codes, and configuration improvements. Uses the Google Analytics Admin API for programmatic setup or provides manual integration paths via gtag.js or Next.js Third Parties.
development
Open-source intelligence on people, companies, domains, and B2B accounts. Use when the user wants to investigate, vet, research, or build a dossier on a target — phrases like "OSINT", "due diligence", "background check", "research this person", "look into [company/domain]", "vet this prospect/vendor", "what does X do", "is this account worth pursuing", "find me a contact at", "who's the buyer for", or any open-source investigation task. Disambiguates identities before reporting and grades every claim by independent source count.
development
Generate, edit, describe, restyle, restore, thumbnail, and batch-process images using xAI (Grok) or OpenAI image APIs and GPT-4o vision. Default provider is xAI ($0.02/image flat rate). Use this skill whenever the user asks to generate, create, make, draw, or design an image or picture using AI, or wants to edit, modify, transform, restyle, composite, or inpaint an existing image. Also handles image description and alt-text generation, background removal, style transfer, photo restoration, thumbnail creation, and batch generation from JSON manifests. Trigger when the user mentions DALL-E, gpt-image, Grok image, xAI image, OpenAI image generation, or wants AI-generated visuals for any purpose (logos, mockups, illustrations, thumbnails, icons, concept art, memes). Also trigger for batch image generation, generating a set or series of images, processing multiple images from a manifest, or creating consistent image collections. If the user says "make me an image of...", "generate a picture", "edit this photo to...", "describe this image", "remove the background", "make this look like watercolor", "restore this old photo", "create a thumbnail", "generate a batch of images", or "process this image manifest", this is the skill to use.
testing
Agentic OS Orchestrator. Process and execute tasks from the shared .agent/state/tasks.json queue. Use when the user asks to 'check the queue', 'process tasks', or run the heartbeat.