Agent skill

hive.linkedin-automation

Read before automating LinkedIn with browser_* tools. LinkedIn combines shadow DOM (#interop-outlet), strict Trusted Types CSP that silently drops innerHTML, Lexical composer, native beforeunload dialogs that hang the bridge, and aggressive spam filters — each has bitten us at least once. Verified flows for profile messaging, connection-request acceptance, feed composition, and search. Requires hive.browser-automation. Verified against logged-in production 2026-04-11.

aden-hivegithub.com/aden-hiveGitHub ↗
claude-codeApache-2.0
Install
npx skills add aden-hive/hive --skill linkedin-automation --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 21 KB
Bundled scripts: none
Version: 1.0
Declared author: hive
Path: core/framework/skills/_preset_skills/linkedin-automation/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 10,850
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Automates LinkedIn actions using browser-automation tooling. It covers profile messaging, connection-request acceptance, feed posting, and search-related flows. It requires hive.browser-automation and is verified against logged-in production as of 2026-04-11. The skill documents how to work around LinkedIn's shadow DOM, CSP, and dynamic elements, including explicit guidance on taking screenshots and using coordinates over selectors.

How it works

  • Activates browser-automation first and relies on visual identification (screenshots) to locate targets, then converts coordinates for clicks to reach shadow DOM, iframes, and React elements.
  • Uses direct evaluation to find, filter, and interact with profile messaging links, then focuses the modal composer via coordinate clicks and inserts text through a focused typing mechanism, followed by sending via a shadow-rooted Send button, with checks to ensure the input reached the editor before sending.
  • For connection acceptance, navigates to the invitation manager, scans cards, filters out non-targets (e.g., follow/subscribe invitations), and collects first_name and button coordinates to accept; processes up to 25 per 24-hour window with randomized delays between actions.
  • For feed posting, navigates to the feed, triggers the post composer, selects the editor, types the content, verifies the Send button is enabled, and posts when ready. When attaching an image, uses a direct browser_upload to a hidden file input rather than attempting to use the OS file picker, and validates the image preview before posting.

When to use it

Use whenever automating LinkedIn actions as described: profile messaging, invitation acceptance, feed posting, and image-enabled posts. The skill emphasizes a coordinate-based approach over selectors due to frequent class-name churn and shadow DOM boundaries, and warns about unreliable inline iframe paths.

What it can touch

  • browser_screenshot
  • browser_coords
  • browser_click_coordinate
  • browser_type_focused
  • browser_type
  • browser_navigate
  • browser_evaluate
  • browser_click
  • browser_upload
  • browser_get_rect
  • sleep
  • random

Caveats

  • Requires hive.browser-automation.
  • LinkedIn imposes strict constraints: shadow DOM, CSP, and native beforeunload dialogs that can hang integrations; all guidance assumes those constraints are encountered and mitigated via the described workflow.
  • Verification notes include post-send checks and a hard cap of 25 operations per 24-hour window for connection acceptance to respect rate limits.
From the SKILL.md

# LinkedIn Automation LinkedIn is the hardest mainstream site to automate because it combines **shadow DOM** (`#interop-outlet` for messaging), **strict Trusted Types CSP** (silently drops `innerHTML`), **heavy React reconciliation** (injected nodes get stripped on re-render), **native `beforeunload` draft dialogs** (hang the bridge), and **aggressive spam filters**. Every one of those has bit us at least once. This skill documents what actually works. **Always activate `browser-automation` first.** This skill assumes you already know about CSS-px coordinates, `browser_type`/`browser_type_focused`, and `browser_shadow_query`. The guidance below is LinkedIn-specific; general browser rules are there. ## Rule #0: screenshot + coordinates, not selectors LinkedIn changes class names aggressively and hides composers inside shadow roots AND iframes. **Selectors break constantly.** Your default strategy on every LinkedIn page should be: 1. `browser_screenshot()` — see the page visually 2. Pick the target's position from the image 3. `browser_coords(image_x, image_y)` → get CSS pixels 4. `browser_click_coordinate(css_x, css_y)` — reaches shadow DOM, iframes, and React elements indifferently

What's inside
Steps it walks through
  1. Rule #0: screenshot + coordinates, not selectors
  2. Invitation manager — inline message button path is BROKEN
  3. Timing expectations
  4. Verified selectors
  5. Profile Message flow (verified end-to-end 2026-04-11)
  6. Connection request acceptance flow
  7. Feed post composer flow
  8. Posting WITH an image attached
  9. Rate limits and safety
  10. Common pitfalls
  11. Auth wall detection
  12. Deduplication pattern
  13. See also
Commands it runs
sqlite3 "<db_path>" "SELECT status FROM tasks WHERE payload LIKE '%\"profile_url\":\"<url>\"%' AND payload LIKE '%\"action\":\"<action>\"%';"
More from hive
All skills →
About this skill
What does the hive.linkedin-automation skill do?

Read before automating LinkedIn with browser_* tools. LinkedIn combines shadow DOM (#interop-outlet), strict Trusted Types CSP that silently drops innerHTML, Lexical composer, native beforeunload dialogs that hang the bridge, and aggressive spam filters — each has bitten us at least once. Verified flows for profile messaging, connection-request acceptance, feed composition, and search. Requires hive.browser-automation. Verified against logged-in production 2026-04-11.

How do I install it?

Run `npx skills add aden-hive/hive --skill linkedin-automation --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From aden-hive/hive, a repository with 10,850 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going