返回资讯中心
外部精选
软件工程
#开发者实时流

Show HN: LinkedIn-ops – Zero-dependency CDP automation built for AI agents

High-reliability, multi-agent-safe LinkedIn automation engine and CLI built on Chrome DevTools Protocol (CDP).

Hacker News 最新shashtag2026/11/1 · 今天10 分钟阅读

以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。

High-reliability, multi-agent-safe LinkedIn automation engine and CLI built on Chrome DevTools Protocol (CDP).

Disclaimer & Responsible Use: linkedin-ops is an independent open-source tool built for developer automation research, testing, and workflow automation via local Chrome DevTools Protocol (CDP). This project is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. Automated interaction with LinkedIn must comply with applicable platform terms and policies. Always maintain realistic human delays and respect LinkedIn rate limits to safeguard account health.

  1. Install dependencies

npm install

  1. Run automated setup

node index.mjs setup

The setup wizard automatically:

npm run doctor

or: node index.mjs doctor

Checks CDP port 9222 reachability, browser version, user agent, and verifies an authenticated LinkedIn session.

node index.mjs connect --profile="https://www.linkedin.com/in/username" --note="Hi, loved your post on distributed systems..."

(Dry-run mode navigates and fills the note without submitting. Add --send only when ready to live submit).

Automated Runtime Fallback: Daily commands ping port 9222. If Chrome is closed, linkedin-ops automatically launches it using your configured profile. If Chrome is already running without remote debugging enabled, it detects the profile lock and prompts to restart cleanly.

Cross-Process Mutex Locking: Serializes execution across concurrent agents and processes (linkedin.lock). Prevents session collisions, focus-stealing, and rate-limiting.

Isolated Ephemeral Tabs: Each operation spawns its own dedicated Chrome tab via PUT /json/new and connects directly via target ID.

Auto-Cleanup: Guarantees tab destruction (/json/close/<targetId>) in a finally block on success or failure, eliminating zombie tab leaks.

CLI Usage

Automated setup wizard

node index.mjs setup

Pre-flight health check

node index.mjs doctor

Connection invitation with personalized note (dry-run)

node index.mjs connect --profile="https://www.linkedin.com/in/username" --note="Hi, loved your post..."

Live connection invitation

node index.mjs connect --profile="https://www.linkedin.com/in/username" --note="Hi, loved your post..." --send

Direct message to 1st-degree connection

node index.mjs dm --profile="https://www.linkedin.com/in/username" --message="Checking in on our conversation." --send

Comment on a LinkedIn post

node index.mjs comment --url="https://www.linkedin.com/posts/..." --text="Great insights on distributed systems!" --send

Company people search (e.g. recruiters)

node index.mjs search --company="Google" --keywords="recruiter" --limit=10 --json

Inspect or force-release active mutex lock

node index.mjs lock node index.mjs lock release

Programmatic Library Usage

import { withLock, withDedicatedTab, sendConnectionInvite } from 'linkedin-ops';

await withLock('outreach-task', async () => { await withDedicatedTab({ port: 9222 }, async (cdp) => { const result = await sendConnectionInvite(cdp, { linkedinUrl: 'https://www.linkedin.com/in/username', note: 'Hi, loved your work on distributed systems.', send: true }); console.log(result); }); });

Batch Campaigns

For multi-profile outreach and candidate sweeps, see campaigns/batch-connect.example.mjs:

Copy template to your personal user campaigns folder

cp campaigns/batch-connect.example.mjs campaigns/my-outreach.mjs

Run the campaign safely with mutex locking and isolated tab lifecycles

node campaigns/my-outreach.mjs

(User campaigns and harvested datasets in data/ and campaigns/ are gitignored and never committed to source control).

DATA_CONTRACT.md: Strict definition of the System Layer vs User Layer boundaries.

Architecture Blueprint: Deep dive into CDP socket lifecycle, locking mechanisms, and tab management.

License

MIT © 2026 Karada.ai. See LICENSE for details.

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →