linkedin-agent-skill README

The project's README from github.com/Jakeschincariol/linkedin-agent-skill. As one markdown file: README.md.

The LinkedIn agent skill

Eleven Claude skills that run a LinkedIn account. Free, MIT, no signup, no API key, nothing to connect.

One of them writes your posts off 21 hook formulas. One comments on other people's posts. One handles the replies under yours. One scores your profile out of 100 and rewrites what lost points. One plans the week: what to post, when, and who to engage with.

And one is the humanizer, which is the reason the rest are usable. It strips the em dashes, the slop vocabulary and the invisible watermark characters out of a draft, then scores what is left against a five-check detection panel before you ever see it.

Nothing gets posted until you say yes. These skills write. You post.

Install

Paste this into Claude:

https://github.com/Jakeschincariol/linkedin-agent-skill

Install this skill, then confirm /li-post works.

Or do it yourself, in Claude Code:

git clone https://github.com/Jakeschincariol/linkedin-agent-skill.git
cp -r linkedin-agent-skill/skills/li-* ~/.claude/skills/

Or as a plugin:

/plugin marketplace add Jakeschincariol/linkedin-agent-skill
/plugin install linkedin-agent

Project-local instead of global: copy the same folders into your repo's .claude/skills/. No Claude Code at all? Paste any single SKILL.md at the top of a chat and it runs as a mode - you lose the two Python tools, which is most of the point of /li-human, but the rest works.

Then spend ten minutes on templates/voice.md. Copy it to ~/.claude/linkedin/voice.md and fill it in, or paste three of your own posts into Claude and say "write my voice.md from these". Every skill reads that file. Skip it and everything comes out sounding like everyone else.

The eleven

command what it does
/li-post One idea into a post. Three hook options from 21 formulas, one full draft, humanized before you see it.
/li-comment Comments on other people's posts. Nine types, picked by what the post actually is. Never "Great post!".
/li-reply The thread under your own post. Sorts every comment into lead / substance / peer / support / noise, then writes in that order.
/li-profile Scores your profile against a 12-part rubric out of 100, then rewrites in fix-first order.
/li-plan The week. What to post, when to post it, and the 10 people to engage with. Writes ~/.claude/linkedin/plan.md.
/li-human The humanizer. Two scripts that actually run. See below.
/li-carousel Document posts. Slide-by-slide copy, the cover that earns the swipe, and the PDF to upload.
/li-repurpose One video, newsletter or transcript into a week of posts that each stand alone.
/li-dm The 200-character invite note, the first message, and the two follow-ups. Two.
/li-inbox Triages the inbox into lead / recruiter / peer / ask / spam, and tells you which tell gave the sequence away.
/li-audit Post-mortem on what you have already published. Ranks by engagement rate and reach multiple, not impressions.

The humanizer

/li-human ships two Python scripts with no dependencies. They run on your machine, on your text, and nothing is uploaded.

python3 humanize.py draft.txt --report      # clean it, show every change
python3 detect.py draft.txt                  # score it, five checks
python3 detect.py before.txt after.txt       # prove the delta

What comes out automatically:

What gets flagged instead of fixed: "It's not just X, it's Y", rule-of-three triads, one-word rhetorical questions, hashtag walls, reflex engagement bait, uniform sentence length. Changing the shape of a sentence needs judgement, so those are handed back for a rewrite rather than mangled by a regex.

The five checks, scored 0-100, higher is more human:

check what it measures
BURSTINESS sentence-length variation. Models write even.
SPECIFICITY numbers, names and concrete markers per 100 words
SLOP DENSITY lexicon hits per 100 words
FINGERPRINT invisible characters, em dashes, curly quotes per 1,000
VOICE contractions, person, structural tells

The verdict weights the mean at 60% and the weakest single check at 40%, because a detector only needs one signal to fire.

Run against a deliberately terrible draft:

  BURSTINESS    ##################......  73.0
  SPECIFICITY   ######################## 100.0
  SLOP DENSITY  ........................   0.0    19 stock terms, 24.1 per 100 words
  FINGERPRINT   ........................   0.0    1 invisible, 1 em dash, 3 curly quote
  VOICE         ########................  33.3    3 structural tells
  ------------------------------------------------------------
  HUMAN SCORE   ######..................  24.8   FLAGGED

After humanize.py, with the flagged structures still unrewritten:

  HUMAN SCORE   #################.......  69.7   REVIEW    (+44.9)

The last stretch to PASS is the part the script deliberately leaves to you.

The fine print, which is the honest part

These skills do not post to LinkedIn, and they should not. There is no official API for posting to a personal profile without an approved partner app, and automating the site with a browser or a third-party tool violates LinkedIn's User Agreement and gets accounts restricted. So every skill here ends the same way: a copy-ready block, and you paste it. That is not a limitation bolted on afterwards, it is the design. It is also why the approval gate is real rather than a setting.

The five checks are local heuristics, not detector APIs. They are modelled on the signals public detectors key on, and they run entirely on your machine. They are not GPTZero, Originality, Copyleaks, Winston or Turnitin, they do not call those services, and they cannot promise those verdicts. Fixing what they measure tends to move those numbers, because they are measuring the same underlying things. That is the whole claim. Nobody can honestly sell you "undetectable", and anybody who does is selling you something.

The invisible-character pass is real and it is narrow. It removes the zero-width and format characters that end up in generated text and survive a copy-paste. That is a genuine, checkable fingerprint. It is not a claim about defeating a cryptographic watermarking scheme, and this repo does not make one.

Nothing here fabricates. No invented metrics, clients or outcomes go under your name. If a draft needs a number you have not given, it comes back with {{your number}} in it and a flag, every time.

Files

skills/li-post/hooks.json        21 hook formulas: template, example, what it is for, how it gets ruined
skills/li-human/slop.json        the lexicon: 113 terms, 17 invisible classes, 11 structural tells
skills/li-human/humanize.py      the three cleaning passes
skills/li-human/detect.py        the five-check panel
skills/li-profile/rubric.json    the 100-point profile score
templates/voice.md               your voice profile. Fill this in first.

Credit

Made by Jake Schincariol, opusjake.ai. The full write-up is at opusjake.ai/r/linkedin-agent.

License

MIT. Take it, change it, ship it.

linkedin-agent-skill (Jakeschincariol/linkedin-agent-skill)

Searching Database…

这是什么?一套十一个免费 Claude 技能的工具包,帮你打理 LinkedIn 账号:按 21 种开头公式写帖文、评论、回复、给你的个人资料打分、规划一周内容,还有一个能在你发布前去掉 AI 腔调的人性化改写器。
这是独立应用,还是我要添加到 Claude 里的东西?它是一组 Claude Skills(SKILL.md 文件加两个零依赖的 Python 脚本),设计为在 Claude Code 内部或作为插件运行;你甚至可以把单个 SKILL.md 粘贴到普通 Claude 对话里,它也能作为一种轻量模式工作。
使用它需要 API 密钥或登录 LinkedIn 吗?不需要。无需注册、无需 API 密钥,也没有任何需要连接的东西;人性化改写器的两个 Python 脚本同样是零依赖、完全本地运行。
它真的会自动发布到 LinkedIn 吗?不会,而且它就是刻意这样设计的:向个人主页发帖没有官方 API,而用浏览器或第三方工具自动化操作 LinkedIn 违反其用户协议,所以每个技能最后都会输出一段可直接复制的文本,由你自己粘贴。
人性化改写器会把我的草稿上传到别处吗?不会。这两个脚本完全在你自己的机器上处理你的文本,不会有任何内容外发。
人性化改写器承诺文本检测不出来吗?不承诺。这五项检查是模仿公开检测器所用信号的本地启发式规则,并不是调用 GPTZero、Originality 或 Copyleaks 之类的服务,作者也明确表示没有人能诚实地承诺文本检测不出来。
voice.md 是什么,为什么重要?它是 ~/.claude/linkedin/voice.md 处的一个文件,你用自己写的东西(或三篇真实帖文)来填充,这样每个技能都能贴合你的文风;跳过它,你的帖文就会写得和其他人一个样。
不用 Claude Code 也能用这些技能吗?可以。你可以把单个 SKILL.md 粘贴到任意 Claude 对话的开头,它就会作为一种模式运行,但你会失去两个 Python 人性化改写脚本,而这正是 /li-human 的主要价值所在。
/li-plan 技能实际产出什么?它会把每周内容计划写入 ~/.claude/linkedin/plan.md,涵盖发什么内容、什么时候发,以及当周要互动的 10 个人。
Size
0.1 MB
Stars
2.2K
Updated
CommitSep 07
Age
1mo
Commits · 90 Days