AI-written text gives itself away with a few dashes and some stock words. linkedin-agent-skill is a set of skills that scrubs those tells before it shows you a draft, and scores the draft before handing it over. Eleven free skills for Claude run a whole LinkedIn account.
linkedin-agent-skill, built by Jake Schincariol, is open source under the MIT license. It was released as v1.0 at 7:58 a.m. KST on September 8, 2026, with 11 skills and two Python tools, and as of 7:10 p.m. KST on October 2 it has 1,053 GitHub stars.
It writes posts, prepares comments and replies, reviews your profile, and even builds a weekly posting plan. It doesn't post anything to LinkedIn automatically. A person presses the final button.
Eleven skills run one LinkedIn account
| Command | What it does |
|---|---|
/li-post | Writes a post from one idea. It offers three openings from 21 hook formulas, builds a full draft, and humanizes it before showing it to you. |
/li-comment | Writes a comment on someone else's post. It picks two drafts from nine types to match the post. |
/li-reply | Sorts the comments on your post into lead, substance, peer, support, and noise, and writes replies in priority order. |
/li-profile | Scores your profile on 12 items out of 100 and rewrites the copy starting with the lowest-scoring parts. |
/li-plan | Writes a weekly plan, including what to post and when and 10 people to engage with, to ~/.claude/linkedin/plan.md. |
/li-human | Cleans up a draft with two Python scripts and scores it on five checks. |
/li-carousel | Creates slide-by-slide copy, a cover, and a PDF to upload for document-style posts. |
/li-repurpose | Reworks one video, newsletter, or transcript into a week of posts that each stand on their own. |
/li-dm | Writes a 200-character invitation note, a first message, and two follow-ups. |
/li-inbox | Sorts your inbox into lead, recruiter, peer, ask, and spam and explains the signals that keep recurring. |
/li-audit | Analyzes the content you've posted and ranks it by engagement rate and reach multiple rather than impressions. |
/li-post chooses from 21 hook formulas in all. One example opens with an insider story drawn from experience: "After 9 years in agency sales, here is the part nobody puts in the job posting." Others call out the reader directly, like "If you are still writing your posts in the LinkedIn composer, stop.", or lead with the result, like "3 clients, 11 days, zero calls booked. Here is the exact sequence."
Comments don't stop at "Great post," either. They fall into nine types: a comment that adds supporting numbers, one that fills in a missing condition, a polite disagreement, one that expands on a single sentence, one that asks the key question, one that offers firsthand experience, one that corrects a fact, one that shifts the perspective, and a one-liner under 12 words. It picks the two that fit the post and drafts them.
Profile scoring is out of 100. The headline gets 12 points; the first two lines of the About section, the rest of the About section, the current role, and activity in the last 7 days get 10 each; featured section, experience detail, and recommendations get 8 each; and banner, photo, top 3 skills, and contact info with a custom URL get 6 each.
| Item | Points |
|---|---|
| Headline | 12 |
| First two lines of About, About body, current role, activity in the last 7 days | 10 each |
| Featured section, experience detail, recommendations | 8 each |
| Banner, photo, top 3 skills, contact info and custom URL | 6 each |
| Total | 100 |
The weekly plan bundles post topics, timing, and 10 people to engage with, and saves it to a file. Instead of requesting each recurring account task separately, you can run them as one flow in a voice you've defined.
The core is a humanizer that cleans the draft first
/li-human runs on two Python tools with no dependencies. For invisible characters, it cleans up 17 kinds of formatting characters. For punctuation, it turns em dashes into commas and en dashes into hyphens, curly quotes into straight quotes, and ellipsis characters into three dots.
The cliche dictionary holds 113 expressions. It swaps in plain language for phrases like delve, leverage, robust, seamless, crucial, testament to, in today's fast-paced world, and let that sink in. It preserves capitalization, leaves URLs alone, and you can edit the dictionary yourself.
It doesn't auto-fix the 11 signals that need context to judge, such as sentence shape; it flags them. These include contrast structures like "It's not just X, it's Y" or "Not only X but also Y," three-item lists, one-word rhetorical questions, "Here's what I learned" lesson announcements, rocket, fire, lightbulb, sparkle, and target emoji, five or more hashtags, "As an AI" self-references, a conclusion that starts with "In conclusion," and a closing call for reactions. Instead of forcing structure changes with regular expressions, it hands them back for a person to rewrite.
The cleaned text is checked on five of the tool's own criteria. Each runs 0 to 100, and a higher score means the tool judges the writing more human.
| Check | What it looks at |
|---|---|
| BURSTINESS | How much sentence length varies |
| SPECIFICITY | Numbers, names, and concrete markers per 100 words |
| SLOP DENSITY | Matches against the cliche dictionary per 100 words |
| FINGERPRINT | Invisible characters, em dashes, and curly quotes per 1,000 characters |
| VOICE | Contractions, first and second person, and structural style signals |
The overall score weights the average of the five checks at 60% and the lowest check score at 40%. In the sample draft, the score was 24.8 (FLAGGED) before cleanup and 69.7 (REVIEW) after automatic cleanup with the structural signals still unfixed, a gain of 44.9 points. The two scripts run only on your computer and don't upload your writing anywhere, and the five checks are heuristics the tool uses on its own.
python3 humanize.py draft.txt --report
python3 detect.py draft.txt
python3 detect.py before.txt after.txtAfter installing, tell it your voice first
You can get started by pasting the repository URL and an install request into a Claude chat.
https://github.com/Jakeschincariol/linkedin-agent-skill
Install this skill, then confirm /li-post works.If you use Claude Code, install it with two plugin commands.
/plugin marketplace add Jakeschincariol/linkedin-agent-skill
/plugin install linkedin-agentTo download and install it yourself, clone the repository and copy the skill folders.
git clone https://github.com/Jakeschincariol/linkedin-agent-skill.git
cp -r linkedin-agent-skill/skills/li-* ~/.claude/skills/After installing, copy templates/voice.md to ~/.claude/linkedin/voice.md and fill it in. You can also give Claude three of your own posts and ask, "Write my voice.md based on these posts." Every skill reads this file, so capturing your phrasing and rhythm helps tune the output to your voice.
Even without Claude Code, you can paste the one SKILL.md you need at the top of a conversation. With that method, the two Python tools that /li-human uses are missing, so you can't do the automatic character cleanup and scoring, but the instructions in the other skills still work.
A person presses the last button
It is free under the MIT license, and it needs no sign-up, API key, or LinkedIn account connection. The skills write the posts but don't publish them to your account. Nothing gets posted until you say it's good, so you review the result and post it yourself.
Because the material is in English and built for LinkedIn, you'll have to try it yourself to see how well it fits writing in other languages.
Where do you think AI-written text gives itself away the most?
To see how to start designing screens with a Claude Code skill, read the introduction to Claude Code's /design skill. For an example of applying several AI skills to team work, see AI agent skills for marketing teams. For a way to check the style of AI-made output, also take a look at AI slop and web design.
