Token导航 LogoToken导航

Agent Skill · 研究检索

linkedin-dm(linkedin DM 搜索)

linkedin-dm 用于处理浏览器自动化、网页检查和页面信息提取,适合在 OpenClaw 中需要让 Agent 打开页面、读取网页或验证前端流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

linkedin-dm 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为操作浏览器;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 4,819。

总安装 29,516周安装 1,194GitHub Stars 1下载 9,265核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:linkedin-dm(linkedin DM 搜索)
来源仓库:https://github.com/10madh/linkedin-dm
安装命令:
openclaw skills install linkedin-dm
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install linkedin-dm

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

通过浏览器自动化向现有一级联系人列表发送个性化 LinkedIn 直接消息。当用户想要通过 AI 个性化外展向 LinkedIn 连接发送消息时使用 - 例如培养线索、跟进事件、重新联系联系人或宣布某事。

获取包含连接名称和公司的数据文件 (CSV/TSV) 或简单列表,询问外展上下文/目标,为每个人生成定制消息,并通过浏览器自动化发送每一条消息。处理消息撰写流程、字符限制和增量状态跟踪。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install linkedin-dm;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要操作浏览器,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

linkedin-dm 怎么安装?

在终端执行 openclaw skills install linkedin-dm。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

linkedin-dm 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

linkedin-dm 需要什么权限?

权限级别是操作浏览器。该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

linkedin-dm 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

linkedin-dm 用的人多吗?

公开数据是累计安装 29,516 次,近一周安装 1,194 次,下载 9,265 次,GitHub 1 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

linkedin-dm 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
linkedin-dm

linkedin DM 搜索 · 本页

29,5161操作浏览器MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
linkedin-dm
description
Send personalized LinkedIn direct messages to a list of existing 1st-degree connections via browser automation. Use when the user wants to message LinkedIn connections with AI-personalized outreach — e.g. nurturing leads, following up after events, reconnecting with contacts, or announcing something. Takes a data file (CSV/TSV) or plain list with connection names and companies, asks for outreach context/goal, generates a tailored message per person, and sends each one via browser automation. Handles message compose flow, character limits, and incremental status tracking.

LinkedIn DM

Sends personalized LinkedIn messages to existing 1st-degree connections. Each message has:

  • A personalized opening unique to each person (based on their profile + relationship to the sender)
  • A consistent product/pitch section confirmed once by the user and reused for all messages

⚠️ Pre-flight Checklist — Confirm Before Starting

1. Connection List

Ask the user for their data file or list. Must include (or be added):

  • Person Name — full name
  • Company/Role — their current company or role
  • LinkedIn URL — optional but helpful
  • Message Status — column for tracking (add if missing)

If only a plain list is provided, offer to convert to TSV.

2. Read Sender's LinkedIn Profile (mandatory)

Before writing any messages, navigate to /in/me/ and read the sender's profile:

  • Name and current role/company
  • Career history — companies, roles, years
  • Education — college, degree, batch years
  • Location

Store these facts. They are used to identify relationship hooks with each connection.

3. Confirm the Pitch (once, upfront)

Ask the user:

*"What's your pitch / product message? This will be the consistent part of every message. Describe it in 1–2 sentences."*

Then draft a polished pitch section (2–4 sentences max, punchy and clear). Show it to the user and get explicit approval. Do not start sending until the pitch is confirmed.

Example prompt: *"Here's the pitch I'll use for everyone — confirm or edit:*

*'I'm building an AI calling agent — you give it a phone number + context, and it handles the call end-to-end. Think customer follow-ups, research calls, vendor coordination — anything phone-based that eats into your day. Happy to show you a demo if this sounds useful.'"*

4. Browser Setup

  • Option A — Chrome Browser Relay (profile="chrome"): extension attached to LinkedIn tab (badge ON) — recommended for flagged accounts
  • Option B — OpenClaw Isolated Browser (profile="openclaw"): openclaw-managed Chrome, LinkedIn logged in

5. CRM Sheet

Ask the user for a Google Sheet ID/URL to log outreach results. If they don't have one, offer to set one up (create tab + write headers). Confirm gog is authenticated (gog auth list).

If the user skips this, fall back to local linkedin_dm_progress.json but remind them the follow-up skill needs the sheet.

6. Ready Check

Only proceed once:

  • ✅ List is ready
  • ✅ Sender profile has been read
  • ✅ Pitch is confirmed by user
  • ✅ Browser is open with LinkedIn logged in
  • ✅ Sheet ID confirmed (or sidecar fallback acknowledged)

Relationship Analysis (per person)

Before writing a message, compare the connection's profile against the sender's profile to find the strongest hook. Use this hierarchy — pick the highest that applies:

PriorityHookExample opener
1Same company (current or past)"You and I both spent time at CRED…"
2Same college + overlapping years"Fellow BITS Goa 2018 batch here…"
3Same college (different years)"BITS connect here — saw your journey from…"
4Same industry/function"Both been in fintech/product for a while…"
5Mutual connection"We're both connected to [Name]…"
6Their work context (no personal hook)"Seen what you've built at [Company]…"

Combine the hook with a line about their current work to show you know what they do.


Message Structure

Send as two separate messages per person, back to back:

Message 1 — Personalized opener (unique per person)

[Relationship hook — 1 sentence]
[Acknowledgement of their work/role — 1 sentence]

Target: 100–180 chars. Feels like a genuine reach-out from someone who knows them.

Message 2 — Pitch (identical for everyone, confirmed upfront)

[Product description — 1–2 sentences]
[Relevant use case for their role — 1 sentence]
[Soft CTA — 1 sentence]

Target: 150–250 chars. Clear, punchy, no filler.

Why two messages?

  • Opener lands first — they see it before the pitch, feels more personal
  • Pitch is clearly a separate thought, not buried at the end
  • Mirrors how a human would actually message a connection

Fallback: If sending two messages is technically difficult (e.g. bubble re-focusing issues), use Shift+Enter twice between the opener and pitch to create a paragraph break within a single message.

Do not:

  • Open with "I hope you're well" or "I came across your profile"
  • Use the same opening for multiple people
  • Change the pitch section per person

Batch Preview Before Sending

Generate messages for the entire list first. Present them in a table:

NameCompanyRelationship Hook UsedMessage Preview
Shorya SainiRazorpaySame BITS batchHey Shorya, BITS Goa 2018 batch…

Get user approval on the full batch before opening the browser. Allow edits per row.


Sending Flow (Per Person)

  1. Navigate to /feed/ — mandatory, no exceptions, no skipping
  2. Wait 3–5 seconds
  3. Search connections at linkedin.com/mynetwork/invite-connect/connections/ — type name in "Search by name"
  4. Handle results:

- 1 match → confirm name + headline → click to open profile - Multiple matches → show user, ask which one - 0 matches → mark Not a Connection, skip

  1. Read their profile if not already done (for personalisation)
  2. Click Message button on their profile
  3. Send Message 1 — personalized opener only, send it
  4. Send Message 2 — pitch only, send it immediately after
  5. Confirm both delivered
  6. Log to CRM sheet — append row via gog sheets append with all fields (see CRM Tracking section)

See references/browser-workflow.md for exact browser automation steps.


Status Values

StatusMeaning
SentMessage delivered this session
Already MessagedRecent conversation exists — skip
Not a ConnectionNo Message button or not in connections search
Profile Not FoundCould not identify the right person
SkippedUser chose to skip
FailedBrowser error — retry next session

Anti-Detection Rules

  • /feed/ before every single profile — non-negotiable
  • 3–5 second wait after feed loads
  • Max 15–20 messages per session
  • Stop immediately if LinkedIn warns about messaging rate — tell the user

CRM Tracking — Google Sheet

After each message is sent, append a row to a Google Sheet. This sheet is the source of truth for all outreach — current session and future follow-up.

Sheet Setup

Ask the user for a Google Sheet ID or URL at the start of the session (or offer to create a new one). The sheet should have a tab named Outreach with these columns:

ColFieldNotes
ADate SentISO date, e.g. 2026-02-13
BPerson NameFull name
CRole / TitleTheir current headline from LinkedIn
DCompanyCurrent company
ELinkedIn URLProfile URL
FRelationship HookWhat hook was used (e.g. "Same batch BITS Goa 2018", "Both at CRED 2022–23")
GOpener SentExact text of Message 1
HPitch SentExact text of Message 2
ICampaignShort label for this batch (e.g. "AI Calling - Feb 2026")
JStatusAlways Sent when first logged — updated by follow-up skill
KNotesAnything notable (prior conversation, context, mutual connection used)
LLast UpdatedTimestamp of last status change

Column I (Status) lifecycle — only Sent is written by this skill. The follow-up skill will update to: Replied · Call Scheduled · Demo Done · Follow Up Sent · No Response · Closed Won · Closed Lost

Appending a Row

After each message pair is sent, run:

gog sheets append <SHEET_ID> "Outreach!A:L" \
  --values-json '[["<date>","<name>","<role>","<company>","<url>","<hook>","<opener>","<pitch>","<campaign>","Sent","<notes>","<timestamp>"]]' \
  --insert INSERT_ROWS

First-Time Setup

If no sheet exists yet, tell the user:

"I'll need a Google Sheet to track outreach. Share an existing sheet ID/URL, or I can create one with the right columns."

To create a new sheet, use Drive (or ask user to create one and share the ID). Then write the header row:

gog sheets update <SHEET_ID> "Outreach!A1:L1" \
  --values-json '[["Date Sent","Person Name","Role / Title","Company","LinkedIn URL","Relationship Hook","Opener Sent","Pitch Sent","Campaign","Status","Notes","Last Updated"]]' \
  --input USER_ENTERED

Local Sidecar (fallback)

If Google Sheets is not set up, fall back to a local linkedin_dm_progress.json:

{
  "campaign": "AI Calling - Feb 2026",
  "pitch": "confirmed pitch text",
  "rows": [
    {
      "date": "2026-02-13",
      "name": "Shorya Saini",
      "role": "Senior Analytics Specialist",
      "company": "Razorpay",
      "url": "https://linkedin.com/in/shorya-saini",
      "hook": "Same batch BITS Goa 2018",
      "opener": "Hey Shorya...",
      "pitch": "I'm building...",
      "status": "Sent",
      "notes": ""
    }
  ]
}

平台分布

OpenClaw

85.93%
按下载量换算7,961

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

未展示

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills