Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器clawhub未标认证来源可访问clear审计提醒

linkedin-followup链接跟进

Agent Skill

linkedin-followup 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

22,448

周安装

917

GitHub Stars

公开资料未说明

下载量

7,263
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

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

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

命令行安装

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

ClawHubOpenClaw
openclaw skills install linkedin-followup

简介

通过 Google 表格管理 LinkedIn 外展线索 - 按姓名搜索、阅读实时对话线索、更新状态并发送上下文后续消息。在 linkedin-dm 之后使用,通过管道移动潜在客户(已发送 → 已回复 → 已安排通话 → 演示完成 → 已关闭)。

SKILL.md

name
linkedin-followup
description
Manage LinkedIn outreach leads from Google Sheets — search by name, read live conversation threads, update status, and send contextual follow-up messages. Use after linkedin-dm to move leads through the pipeline (Sent → Replied → Call Scheduled → Demo Done → Closed).
metadata

linkedin-followup

Manage ongoing LinkedIn conversations from a central Google Sheet CRM. Read threads, draft context-aware replies, send messages, and keep the sheet updated — all from one skill.


Pre-flight Checklist

Before doing anything:

  1. Sheet ID — Confirm the CRM sheet ID (from linkedin-dm setup). Default: 1eEZDGcr1dIbSC782mNkxvD7pVrF8rOFySWCVZ1RXkhM, tab: Sheet1 (or Outreach if renamed).
  2. gog auth — Run gog auth list. If no tokens: see gog auth setup below.
  3. Browser — Open the openclaw browser profile and confirm LinkedIn is logged in. Navigate to /feed/ first.
  4. Mode — Identify which mode the user wants (see Modes).

Sheet Schema

The CRM sheet uses these columns (A–P):

ColFieldNotes
ADate SentISO date
BPerson NameFull name
CRole / Title
DCompany
ELinkedIn URLProfile URL
FRelationship HookHook used in opener
GOpener SentMessage 1 text
HPitch SentMessage 2 text
ICampaignBatch label
JStatusCurrent pipeline stage
KNotesContext and history
LLast UpdatedISO timestamp
MLast Reply DateWhen they last replied
NLast Reply (preview)First 200 chars of their last reply
OConversation LogFull thread (see format below)
PNext ActionWhat to do next (agent or human)

Status values: SentRepliedCall ScheduledDemo DoneFollow Up SentNo ResponseClosed WonClosed Lost

Conversation Log format (column O):

[2026-02-13 17:05 SENT] Hey Rishabh, we both had stints at CRED...
[2026-02-13 17:05 SENT] I'm building an AI calling agent...
[2026-02-15 09:30 RECEIVED] Hey! Sounds interesting, tell me more.
[2026-02-15 09:45 SENT] Happy to show you a live demo — are you free Thursday?

If columns M–P don't exist yet, add them first:

gog sheets update <SHEET_ID> "Sheet1!M1:P1" \
  --values-json '[["Last Reply Date","Last Reply (preview)","Conversation Log","Next Action"]]' \
  --input USER_ENTERED

Modes

Mode 1 — Quick Status Update

User says: *"Mark Rishabh as Replied"* or *"Rishabh got back to me, he's interested"*

  1. Find the row — Search the sheet for the person:
   gog sheets get <SHEET_ID> "Sheet1!A:P" --json

Match by name (col B) or LinkedIn URL (col E). Get the row number.

  1. Update status (col J) and last updated (col L):
   gog sheets update <SHEET_ID> "Sheet1!J<ROW>:L<ROW>" \
     --values-json '[["Replied","","<ISO_TIMESTAMP>"]]' \
     --input USER_ENTERED
  1. If the user provides reply content, also update:

- Col M: Last Reply Date - Col N: Last Reply preview (first 200 chars) - Col O: Append to Conversation Log - Col P: Next Action (what should happen next)

  1. Confirm update to user.

Mode 2 — Full Follow-up (Read + Draft + Send)

User says: *"Follow up with Rishabh"* or *"Send a follow-up to everyone who replied"*

Step 1 — Load the person's data from sheet

gog sheets get <SHEET_ID> "Sheet1!A:P" --json

Find their row. Load: Name, Company, Role, LinkedIn URL, Opener Sent, Pitch Sent, Status, Notes, Conversation Log, Next Action.

Step 2 — Navigate to their LinkedIn profile

Always go to feed first (anti-detection):

https://www.linkedin.com/feed/

Wait 2–4 seconds. Then navigate to their profile URL (col E).

Step 3 — Open message thread and read conversation

Click the Message button on their profile. Wait for the conversation bubble to load.

Scrape the full thread with JavaScript:

const events = Array.from(document.querySelectorAll('.msg-s-message-list__event'));
const messages = [];
events.forEach(el => {
  const groups = el.querySelectorAll('.msg-s-event-listitem');
  groups.forEach(g => {
    const nameEl = g.closest('.msg-s-message-group')?.querySelector('.msg-s-message-group__profile-link');
    const bodyEl = g.querySelector('.msg-s-event-listitem__body');
    const timeEl = g.closest('.msg-s-message-group')?.querySelector('.msg-s-message-group__timestamp');
    if (bodyEl?.textContent?.trim()) {
      messages.push({
        sender: nameEl?.textContent?.trim() || 'unknown',
        time: timeEl?.textContent?.trim() || '',
        text: bodyEl.textContent.trim()
      });
    }
  });
});
return JSON.stringify(messages);

If the thread is empty or not loading, scroll up in the conversation bubble to load older messages.

Step 4 — Analyse the conversation

With the full thread loaded + their profile data, determine:

  • What did they say last? — Identify the most recent message from them.
  • What's the intent? — Interested / wants more info / asked a question / cold / objection / not interested.
  • What's the right next message? — See Response Playbook below.
  • Tone — Mirror their tone (casual vs formal, brief vs detailed).

Step 5 — Draft the follow-up

Write a response that:

  • Directly addresses what they said last
  • Doesn't re-pitch unless they asked for it
  • Moves toward a specific action (demo, call, intro, forward to team)
  • Is brief — 2–4 sentences max
  • Feels human, not templated

Show the draft to the user and ask for approval before sending:

Draft reply to [Name]: [message] Send this? (y / edit / skip)

Step 6 — Send the message

Same JS evaluate method as linkedin-dm:

const active = document.querySelector('.msg-overlay-conversation-bubble--is-active .msg-form__contenteditable');
if (active) { active.focus(); document.execCommand('insertText', false, '<message>'); }

Then find and click Send.

Step 7 — Update the sheet

After sending:

gog sheets update <SHEET_ID> "Sheet1!J<ROW>:P<ROW>" \
  --values-json '[["<new_status>","<last_reply_date>","<last_reply_preview>","<updated_conversation_log>","<next_action>","<ISO_TIMESTAMP>"]]' \
  --input USER_ENTERED

Mode 3 — Batch Review

User says: *"Who needs a follow-up?"* or *"Check my outreach"*

  1. Load all rows from the sheet.
  2. Filter by status and time:

- Sent older than 3 days → candidate for "No Response" or gentle follow-up - Replied → needs a response - Follow Up Sent older than 5 days → consider "No Response" - Call Scheduled → check if call happened, update status

  1. Present a table of candidates:
   Name             Status    Last Updated    Suggested Action
   Rishabh Nayan    Replied   2026-02-14      Reply to their message
   Shorya Saini     Sent      2026-02-10      Follow-up nudge (4 days)
   Shantam Mohata   Sent      2026-02-13      Too soon (today)
  1. User picks who to action, then enter Mode 2 for each.

Response Playbook

Use these as a guide — always adapt to the actual conversation:

They saidIntentYour move
"Sounds interesting, tell me more"CuriousShort explanation + offer a specific demo slot
"How does it work?"Exploring2-line description + invite to a 15-min call
"We already use [X]"ObjectionAcknowledge, explain differentiation, offer demo
"Send me more details"Soft interestShare a Loom/deck/link + follow up in 2 days
"Not relevant right now"Soft noRespect it, leave door open: "No worries, I'll ping you in a few months"
"Who else is using it?"Trust-buildingShare a relevant use case, offer intro to a user
[No reply in 4 days]SilenceLight nudge: "Hey [Name], just checking — any thoughts?"
[No reply in 8 days]ColdOne final message, then mark No Response

Anti-Detection Rules

Same rules as linkedin-dm:

  • Always go to /feed/ before navigating to a profile
  • Wait 2–4 seconds after loading feed
  • Max 15–20 messages per session (combined sends across follow-ups)
  • Space out follow-ups: don't ping multiple people in rapid succession
  • Natural delays between typing and sending (1–2 seconds)

gog Auth Setup

If gog auth list returns empty, the user needs to set up Google OAuth credentials:

  1. Go to console.cloud.google.com
  2. Create a project (or select existing)
  3. Enable Google Sheets API (APIs & Services → Library)
  4. Create OAuth credentials: APIs & Services → Credentials → Create → OAuth client ID → Desktop App
  5. Download client_secret_<id>.json
  6. Run:
   gog auth credentials set /path/to/client_secret.json
   gog auth add your@gmail.com --services sheets
  1. A browser window will open — log in and grant access
  2. Verify: gog auth list

Fallback (no gog): All sheet reads/writes can be done manually via browser — open the sheet in the openclaw browser and update cells directly. Less automated but functional.


Session Limits

  • Max 15–20 follow-up messages per session
  • Log every send immediately to sheet (don't batch)
  • If gog is unavailable, log to local linkedin_followup_log.json and sync to sheet next session

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

95.57%
按下载量换算6,941

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

未展示

权限和风险

操作浏览器

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

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills