hunter-linkedin
Skill12 starsChanged 29 days agoMITView on GitHub
The LinkedIn Optimizer. Rewrites the user's LinkedIn headline, About, skills and experience for the job they want, using only what is true, then checks the draft against LinkedIn's field limits (headline, About, skills count, position title and description) and against the keywords of the target job description, with a before/after report: coverage, required terms, what was gained and what is still missing. The user pastes the final text into LinkedIn themselves. Use when the user says "optimize my LinkedIn", "rewrite my headline", "fix my About section", "LinkedIn for this job", "what skills should I list", or "make recruiters find me".
In this repository10 other files it gives its agents.
- hunter-applySkill
- hunter-connectorSkill
- hunter-coverSkill
- hunter-followupSkill
- hunter-interviewSkill
- hunter-researchSkill
- hunter-resumeSkill
- hunter-salarySkill
- hunter-scoutSkill
- hunter-trackerSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 57
Never add a skill, title, employer, degree, date or number they do not have.
- Very specific: line 83
Write draft: a headline that says the role and the two or three strongest true skills.
- Distinctive: line 115
Never invents experience, skills, titles, degrees, dates or numbers.
- Distinctive: line 116
Never logs in to LinkedIn, scrapes it, edits a profile or sends anything: LinkedIn's terms forbid bots and automated messaging, and this …
- Distinctive: line 118
Never claims a profile change will get the user hired or found.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
hunter-linkedin
Recruiters search LinkedIn by keyword, and the hiring manager will open the profile before the coffee chat. This skill makes the profile say what the user really does in the words the job description uses, inside LinkedIn's limits, and shows the before and after.
What the user typed after /hunter-linkedin: $ARGUMENTS
Tool in this folder (standard library Python, never touches LinkedIn):
python3 "${CLAUDE_SKILL_DIR}/profile.py" --helpWhat it reads and writes
hunter/linkedin.json:{"current": {...}, "draft": {...}}, each withheadline,about,skills(a list) andexperience(title,company,description). Shape and the reel's example:linkedin.example.json.- The target job description as a text file, for example
hunter/jd/<role-id>.txt(copy it from the posting the scout found). - Truth sources for the check:
hunter/profile.jsonskills and the resume (--resume hunter/resumes/<role-id>.md). limits.json: the limits and where each one comes from.
LinkedIn's limits
| Field | Limit | Source |
| Headline | 220 characters | widely reported; the editor's live counter is the authority |
| About | 2,600 characters | widely reported; the editor's live counter is the authority |
| Skills | 100 skills | LinkedIn Help 35265: "You can add a maximum of 100 skills to your profile." |
| Position title / description | 100 / 2,000 characters | widely reported |
| Invitation note | 200 characters, 3 a month without Premium | LinkedIn Help 46662 |
profile.py limits prints them with their sources.
The rules
- Only what is true. Rewrite and reorder the user's real experience. Never add a skill, title, employer, degree, date or number they do not have. The check lists every term the draft claims that the resume, the profile skills and the current LinkedIn never mention: ask the user about each one before it stays.
- LinkedIn's terms forbid automation. Its User Agreement (section 8.2, quoted on LinkedIn Help a1341387) prohibits bots and automated methods that access the site, add contacts or send messages, and software that scrapes profiles. So this skill never logs in, never scrapes and never edits the profile. The user pastes the text and clicks Save themselves.
- No promises. LinkedIn shows profile strength and search appearances in the user's own dashboard. This tool measures keyword coverage only and does not predict either.
Steps
- Get the real profile into
current: the user pastes their headline, About, skills and experience (or saves their profile as a PDF from LinkedIn and shares the text). Save the job description as text and read its keywords:
python3 "${CLAUDE_SKILL_DIR}/profile.py" keywords --job hunter/jd/google-swe.txtWeight 3 means required or minimum qualifications, 2 the body of the posting, 1 preferred or bonus.
- Write
draft: a headline that says the role and the two or three strongest true skills; an About that opens with what the user builds and one or two proven results; skills ordered so the required terms come first; experience bullets from/hunter-resume(a strong verb, a number, the outcome). Check and compare:
python3 "${CLAUDE_SKILL_DIR}/profile.py" compare --job hunter/jd/google-swe.txt --resume hunter/resumes/base.md python3 "${CLAUDE_SKILL_DIR}/profile.py" check --job hunter/jd/google-swe.txt --jsonExit 1 means a field is over its limit. Fix every OVER line, then ask the user about every "Confirm these are true" term.
- Show the before/after table and the final text, field by field, ready to paste. The user pastes it into LinkedIn and saves.
Example: the reel
Jordan Reyes (fictional) had the default headline "Software Engineer at
Brightline Labs", an empty About and six generic skills. Against a Software
Engineer, Cloud Infrastructure job description, the draft headline becomes
"Software Engineer · Distributed systems, ML infrastructure and fast,
reliable APIs" (82 characters), the About tells the payments API story with
its real numbers (p99 latency down 38% across 4M requests a day), and the
skills put Go, Distributed Systems and System Design first. compare shows
keyword coverage 22% before and 86% after, required terms 2/8 to 7/8, and
C++ still missing: the posting asks for it, Jordan does not have it, so it
stays out. Jordan pastes the draft into LinkedIn himself.
What it never does
- Never invents experience, skills, titles, degrees, dates or numbers.
- Never logs in to LinkedIn, scrapes it, edits a profile or sends anything: LinkedIn's terms forbid bots and automated messaging, and this pack obeys.
- Never claims a profile change will get the user hired or found.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

