hive.linkedin-automation

Automates LinkedIn messaging, connection acceptance, and feed posting via browser CDP tools.

11.0k|5.7k|Updated Jan 12, 2026
One-click install
npx skills add https://github.com/aden-hive/hive --skill hive-linkedin-automation
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hive.linkedin-automation
Source: https://github.com/aden-hive/hive/tree/main/core/framework/skills/_preset_skills/linkedin-automation
Command: npx skills add https://github.com/aden-hive/hive --skill hive-linkedin-automation

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

LinkedIn automation breaks constantly due to shadow DOM, Trusted Types CSP, Lexical composers, native beforeunload dialogs, and aggressive spam filters. This Skill documents verified browser-automation flows that actually work against these obstacles.

Core Features & Use Cases

  • Profile Messaging Flow: Verified end-to-end sequence for sending direct messages through the shadow-DOM composer using coordinate clicks and browser_type_focused.
  • Connection Request Acceptance: Daily workflow to accept pending invitations with per-card scoping, randomized delays, and a 25-per-day cap to avoid spam detection.
  • Feed Post Composer: Create text posts and attach images via browser_upload against hidden file inputs, bypassing the unreachable native OS file picker.
  • Use Case: A sales operator needs to accept 20 pending connection requests each morning and send each new connection a personalized welcome message without triggering LinkedIn's rate limits or getting stuck on draft dialogs.

Quick Start

Activate the browser-automation skill first, then ask the agent to send a LinkedIn message to a specific profile URL using the verified profile message flow.

Frequently Asked Questions about hive.linkedin-automation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate sending LinkedIn messages with browser tools?

Navigate to the profile, strip onbeforeunload, click the Message link found via the /messaging/compose/ href filter, then click the composer coordinates and use browser_type_focused to insert text. Only click Send when the button's disabled state is false.

Why does typing into the LinkedIn message composer fail?

The composer is a Lexical contenteditable inside the #interop-outlet shadow root, so selector-based browser_type cannot reach it and per-character key events get dropped. Click the composer coordinates first, then use browser_type_focused with insertText.

What are LinkedIn automation rate limits for messages and connections?

Limit outbound messages to new first-degree connections to 25 per day with 5-10 second randomized delays, and connection requests to 100 per week. Exceeding these triggers throttling, checkpoint challenges, or account restrictions.

How do I attach an image to a LinkedIn post programmatically?

Do not click the media button's file picker, since the native OS dialog is unreachable via CDP. Instead call browser_upload directly against the hidden input[type='file'] element with an absolute file path, then verify the preview rendered before posting.

Why does browser automation hang after typing a LinkedIn message?

LinkedIn sets a native beforeunload draft dialog that deadlocks navigation or tab close after typing in a composer. Strip window.onbeforeunload with browser_evaluate before any navigation and run the cleanup block in a finally path.