Skip to content

Guide · Agent skill

How to use the LinkedIn Automation agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The LinkedIn Automation skill (hive.linkedin-automation) is a set of written notes that teaches an AI agent how to operate LinkedIn through a browser tool without getting stuck on its hidden controls, security rules and dialogs. It is for developers and sales or recruiting teams who already run an agent against a logged-in browser session. After this guide you will know what the skill covers, how to install it, how to ask an agent to use it, and what risks to check first.

LinkedIn Automationaden-hive/hive · Apache-2.0

Quick start

  1. 1Download and unzip the skill. Download the ZIP from this page and unzip it so the hive.linkedin-automation folder with SKILL.md is in place.
  2. 2Place it in the skills folder. Move the folder into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. Alternatively, upload it in the Claude apps under Settings, then Capabilities, then Skills.
  3. 3Install the browser-automation dependency. Make sure hive.browser-automation is installed, since this skill requires it.
  4. 4Log in to LinkedIn in the browser. Sign in to the LinkedIn account the agent will use inside the browser session it controls.
  5. 5Ask for a specific task. Describe one concrete LinkedIn action, such as messaging a named profile or accepting pending invitations.
  6. 6Review the result. Check the screenshots and the message or action before you rely on it, because LinkedIn layouts change.

What the skill makes the agent do

The skill is a single instruction file, SKILL.md. It documents verified flows for profile messaging, connection-request acceptance, feed composition and search on LinkedIn. It explains why LinkedIn is hard to automate: its messaging controls sit inside shadow DOM, its strict Trusted Types content security policy silently drops some innerHTML edits, its editor is a Lexical composer, and native beforeunload dialogs can hang the browser bridge.

Because of these problems, the notes tell the agent to take a screenshot, pick the target from the image, and click by pixel coordinates instead of relying on CSS selectors, which LinkedIn changes often. The skill depends on the hive.browser-automation skill for general browser rules.

How to install the LinkedIn Automation skill

Download the skill ZIP from this page and unzip it. For a personal setup, place the unzipped skill folder in ~/.claude/skills/. For a single project, place it in that project's .claude/skills/ folder. You can also upload the skill in the Claude apps under Settings, then Capabilities, then Skills.

Install hive.browser-automation as well. This skill declares it as a required dependency, and the notes assume it is already present.

  • Personal: ~/.claude/skills/
  • Project only: .claude/skills/ inside the project
  • Claude apps: Settings → Capabilities → Skills, then upload

Check what you need before you start

The skill needs a browser-automation toolset that provides browser_navigate, browser_screenshot, browser_click_coordinate, browser_type and browser_evaluate. It also needs a LinkedIn account that is already logged in within that browser session.

The skill runs scripts (JavaScript is executed in the page through browser_evaluate) and uses the network, because it operates a live LinkedIn site.

  • hive.browser-automation skill (declared dependency)
  • A browser toolset with the tools listed above
  • A logged-in LinkedIn account

How to trigger the skill with natural requests

Ask the agent for a LinkedIn task in plain language and make sure the browser tools are available. The notes instruct the agent to activate browser-automation first and then follow the LinkedIn-specific guidance. Requests that name the goal work best, for example asking the agent to open a specific profile and send a message, to accept pending invitations, or to search LinkedIn for a term.

Give the agent the exact profile URL or search term where you can. The profile flow in the notes starts from a profile address of the form linkedin.com/in/ followed by the username.

  • Message a specific person's profile in my logged-in browser
  • Accept pending connection requests from the invitation manager
  • Search LinkedIn for a company name and report the results

Example: the verified profile message flow

The notes give a step-by-step profile message flow. The agent loads the profile, disables the beforeunload handler to prevent a draft-dialog deadlock, finds the Message link (which is an anchor, not a button, and appears several times), clicks it by coordinates, waits for the composer to slide in, selects the largest visible composer textarea, clicks to focus it, and then inserts the text with browser_type_focused.

The first step in the flow loads the profile page and then waits briefly so the page can finish loading before queries run.

  • Click-first focus is required for the Lexical composer
  • Text is inserted into whatever element is focused, so the click must land on the composer
browser_navigate("https://www.linkedin.com/in/<username>/", wait_until="load") sleep(3)

Safety notes and limits

The skill changes page behaviour: its profile flow overrides the page's onbeforeunload handler. It also runs JavaScript in a logged-in session, so review the SKILL.md file and only run it against accounts you are allowed to automate.

The notes describe LinkedIn's spam filters as aggressive, and automated messaging can violate LinkedIn's terms and get accounts restricted. The file also warns that LinkedIn changes class names and layout often, so flows may break. The inline message path from the invitation manager is marked as not reliably automatable, and the notes say to use the profile page instead.

  • Do not use it for bulk or unsolicited outreach
  • Expect breakage when LinkedIn changes its layout
  • Use the profile page route rather than the inline iframe message button

Tips for reliable runs

Take a screenshot first on every LinkedIn page. If a selector query returns an empty list even once, the notes advise stopping and clicking by coordinates rather than trying another selector. Wait a few seconds after each navigation so the page can hydrate before you query it.

  • Screenshot, then coordinates, then type
  • Do not keep guessing selectors after an empty result
  • Allow about 3 seconds after navigation and about 2 seconds for the composer to open

What people use it for

  • A developer building an agent workflow that messages a specific profile from a logged-in browser session
  • A recruiting team testing how an agent could handle connection-request acceptance on the invitation page
  • An engineer adding LinkedIn-specific browser guidance to an existing hive.browser-automation setup

Frequently asked questions

How do I install the LinkedIn Automation agent skill?

Download the skill ZIP from this page and unzip it into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. You can also upload it in the Claude apps under Settings, then Capabilities, then Skills. Install hive.browser-automation too, because this skill depends on it.

What does the LinkedIn Automation skill require?

It requires the hive.browser-automation skill, a browser toolset that provides browser_navigate, browser_screenshot, browser_click_coordinate, browser_type and browser_evaluate, and a LinkedIn account that is logged in within that browser.

Is the LinkedIn Automation skill free to use?

The source gives its licence as Apache-2.0 and does not list any price. Check the repository licence terms for full details before you use or redistribute it.

Is it safe to automate LinkedIn messaging with this skill?

The notes warn that LinkedIn's spam filters are aggressive and that automated messaging can violate its terms and get accounts restricted. Use it only for legitimate, individual actions on accounts you are allowed to automate, not bulk or unsolicited outreach.

Why does the agent keep clicking by coordinates instead of CSS selectors?

LinkedIn hides controls in shadow DOM and iframes and changes class names often, so selectors break. The notes recommend a screenshot, then click by pixel coordinates, which works regardless of those changes.

What should I do if a LinkedIn automation step fails?

Take a screenshot to see the current page. If a selector returned an empty result, stop trying new selectors and click the target by coordinates. If the page is stuck on a beforeunload dialog, the profile flow's approach of disabling that handler is the documented fix.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Choose this skill if you are a developer or a sales or recruiting team already running an agent in a logged-in browser and want LinkedIn-specific guidance for messaging, invitations and search. Pick something else if you need bulk outreach, a stable supported integration, or a setup without the browser-automation dependency, since LinkedIn's layout and rules can change at any time.

Download the skill