analyze
Skill1 starsChanged 7 months agoMITView on GitHub
Rank and tier LinkedIn profiles from scraped data using AI analysis in leads, advisors, or vcs mode
70 other projects use a version of this.
Adopted by
Most recently taken up by
- ansvisor/ansvisortheir own version, first seen Nov 8, 2026
- ai-search-guru/getcito-worlds-first-open-source-aio-aeo-or-geo-tooltheir own version, first seen Nov 8, 2026
- nisarth/claude-skills-storetheir own version, first seen Nov 8, 2026
- jhlee0409/proc-janitortheir own version, first seen Nov 8, 2026
- Beskars-Code/Skillstheir own version, first seen Nov 6, 2026
- Gabriel-Lafrance/Skillstheir own version, first seen Nov 6, 2026
Used with
Projects with it also use constitution, revise and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ArvorCoSkillconstitution
Create or update the project constitution - personalized governance and coding principles. Use when starting a project or updating project standards. Triggers on: create constitution, update principles, set project rules.
Also in 4 projects that use this
stormlightlabsSkillrevise
Address review comments on an open pull request and push the fixes. Use for /edit, /revise, or when asked to respond to review feedback on a PR number.
Also in 3 projects that use this
DockerSkillwrite
Write or edit reader-facing technical prose for immediate comprehension. Use for documentation, PR titles and descriptions, release notes, design documents, user-facing explanations, and substantive comments. Also use when asked to make writing clearer, more natural, less AI-generated, or easier to read. For documentation fixes, handles edits, formatting, self-review, and commits after research identifies what to change. Do not use for code-only tasks with no prose deliverable.
Also in 6 projects that use this
ArvorCoSkillspecify
Create feature specification from natural language description. Use when starting a new feature or creating a spec. Triggers on: create spec, specify feature, new feature spec.
Also in 5 projects that use this
H-mmerSkillsubmit
Draft and submit a vulnerability report to the bug bounty platform. Reads scope.yaml for platform/program, uses brain + findings for content. Always drafts first for review.
Also in 3 projects that use this
GoogleSkillquality
Evaluates whether a GitHub issue is spam, empty, needs more information, or is OK to proceed.
Also in 3 projects that use this
- +1 more from ArvorCo
Other versions70 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 70
- anthropics/knowledge-work-plugins★ 35ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- oxsecurity/megalinter★ 2.6ksame name
- H-mmer/pentest-agents★ 815same name
- ai-search-guru/getcito-worlds-first-open-source-aio-aeo-or-geo-tool★ 432same name
- hardisgroupcom/sfdx-hardis★ 432same name
- nwiizo/tfmcp★ 373same name
- hsantanna88/clo-author★ 262same name
- hugosantanna/clo-author★ 262same name
- ansvisor/ansvisor★ 233same name
60 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 8 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 60 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Look for (in priority order):
- Very specific: line 30
Data isolation: ONLY read files from the output/$0/ folder.
- Distinctive: line 31
No cross-referencing: NEVER use the plugin user's own connections to enrich, filter, or cross-reference these results.
- Distinctive: line 33
Natural language reasoning: Do NOT use keyword matching, regex filters, or static rules to score profiles.
- Very specific: line 37
If output/$0/ does not exist, tell the user: "No data found for $0.
- Distinctive: line 38
If the data file exists but is empty or contains no profiles, report: "Data file for $0 is empty (0 profiles).
- Very specific: line 39
If meta.json is missing, proceed without it — the data file is sufficient.
- Distinctive: line 45
Read the data file. Report: "Found X profiles for [person] scraped on [date]."
- Distinctive: line 49
Before launching agents, calculate and display an estimate for the user:
- Distinctive: line 149
After ranking, display a completion summary:
- Distinctive: line 188
Always include the full LinkedIn URL for each person.
“Common” is measured: kept by at least 6 in 10 of the 60 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
LinkedIn Profile Analysis & Ranking
Analyze scraped LinkedIn profiles and produce a ranked, tiered list of the top 30 matches based on the user's criteria and analysis mode.
Arguments
$0— Person name (matches the output folder from scraping)$1— Ranking criteria in natural language$2— Analysis mode:leads(default),advisors, orvcs
Data Source
Read from: ${CLAUDE_SKILL_DIR}/../../output/$0/
Look for (in priority order):
search-results.json— Search result profilesconnections.json— Connection profiles
Also read meta.json for context (who was scraped, when, source URL).
CRITICAL RULES
- Data isolation: ONLY read files from the
output/$0/folder. NEVER open, read, or reference data from any other person's folder. - No cross-referencing: NEVER use the plugin user's own connections to enrich, filter, or cross-reference these results.
- No scripts: YOU are the analyst. Never generate a Python/JS/shell script to do the analysis.
- Natural language reasoning: Do NOT use keyword matching, regex filters, or static rules to score profiles.
Error Handling
- If
output/$0/does not exist, tell the user: "No data found for $0. Run/linkedin:scrape $0 <type> <url>first." - If the data file exists but is empty or contains no profiles, report: "Data file for $0 is empty (0 profiles). Try re-scraping."
- If
meta.jsonis missing, proceed without it — the data file is sufficient.
Analysis Process
Step 1: Load and report
Read the data file. Report: "Found X profiles for [person] scraped on [date]."
Step 1.5: Estimate and report
Before launching agents, calculate and display an estimate for the user:
- Batch size: ~175 profiles per batch
- Number of batches: ceil(profile_count / 175)
- Number of agents: min(batch_count, 3) per wave; if more than 3 batches, multiple waves
- Estimated input tokens: batches x (175 x 45 tokens/profile + 800 tokens system prompt)
- Estimated output tokens: agents x 1,500 tokens + 4,000 tokens for merge
- Estimated time: 45-90 seconds per wave (agents run in parallel)
Display to the user:
Analysis plan: [X] profiles -> [N] batches across [M] agents Estimated tokens: ~[T]K input, ~[O]K output Estimated time: [E] seconds
Step 2: Batch and analyze
Split profiles into batches of ~175. Launch agents in waves of up to 3 parallel agents.
Each agent receives the batch of profiles (as JSON), the user's ranking criteria, and a mode-specific system prompt.
Mode: leads (default)
You are a senior sales strategist analyzing LinkedIn profiles.
Goal: Find the best matches for: [CRITERIA]
Read each profile's name and headline carefully. For each one, think about:
- Does this person's role suggest they'd be a decision-maker, budget-holder, or champion for this goal?
- Does their company/industry sound like the right fit?
- What's their seniority level — can they actually sign a deal or make an introduction?
- Is there anything in their headline that signals urgency or active need?
Think like a sales strategist, not a search engine. A "VP Engineering" at an AI company is a very different lead than a "VP Engineering" at a construction firm — context matters.
Mode: advisors
You are an executive talent scout building an advisory board for a startup.
Goal: Find the best advisor candidates for: [CRITERIA]
Read each profile's name and headline carefully. For each one, think about:
- Does this person have deep domain expertise relevant to the company's needs?
- Have they built or scaled companies themselves (operator experience)?
- Do they have a track record of advising, board membership, angel investing, or mentoring?
- Would their industry credibility and network open meaningful doors?
- Does their headline signal willingness to advise (angel investor, advisor, board member, mentor, speaker)?
- Would they fill a genuine skill gap vs. duplicating existing strengths?
Think like a founder assembling a world-class advisory board, not a recruiter filling a role. The best advisors combine relevant experience with a genuine willingness to help.
Mode: vcs
You are a fundraising strategist evaluating investor fit for a startup raise.
Goal: Find the best investor matches for: [CRITERIA]
Read each profile's name and headline carefully. For each one, think about:
- Does this person's fund or firm invest at the right stage and in the right sector?
- Are they a partner or decision-maker, or a junior associate with limited check-writing authority?
- Do their portfolio companies suggest thesis alignment without creating conflicts?
- Does their background suggest they'd add value beyond capital (operational help, intros, domain expertise)?
- Is there anything in their headline that signals active deployment (e.g., "investing in...", "backing...")?
Think like a founder choosing investors they'll work with for 10 years, not a spray-and-pray fundraiser. Fit matters more than fame.
Common instructions (appended to all modes)
Return your top 15 candidates as a JSON array:
[{ "name": "...", "headline": "...", "profileUrl": "...", "reason": "1 sentence why" }]Be selective. Only include people who genuinely fit. Returning 5 great matches is better than 15 mediocre ones.
End your response with a stats line: "Reviewed [N] profiles. Selected [M] candidates. Top pick: [name] — [reason]."
Between waves (if more than 3 batches), report:
Wave 1/2 complete: [M] candidates from [N] profiles ([B] batches). Starting wave 2...
Step 3: Merge, rank, and report
Collect results from all agents. Deduplicate by profileUrl. Re-rank the combined candidates into a final top 30, assigning tiers based on mode:
Leads tiers
- Tier 1 (ranks 1-12): Strongest fit — contact first
- Tier 2 (ranks 13-22): Strong fit — pursue after Tier 1
- Tier 3 (ranks 23-30): Adjacent — may need qualification
Advisors tiers
- Tier 1 (ranks 1-12): Ideal advisors — reach out immediately
- Tier 2 (ranks 13-22): Strong candidates — worth a serious conversation
- Tier 3 (ranks 23-30): Worth a conversation — explore fit
VCs tiers
- Tier 1 (ranks 1-12): Top targets — reach out first
- Tier 2 (ranks 13-22): Strong fit — pursue actively
- Tier 3 (ranks 23-30): Worth exploring — may need qualification
After ranking, display a completion summary:
Analysis complete
- Profiles reviewed: [total]
- Candidates surfaced by agents: [count]
- Final top 30 selected
- Agents used: [count] ([waves] wave(s))
- Estimated token usage: ~[T]K input, ~[O]K output
Output
Mode-specific labels
| Mode | Header | File prefix |
leads | Top 30 Leads | ranked-leads / top-30-leads |
advisors | Top 30 Advisors | ranked-advisors / top-30-advisors |
vcs | Top 30 Investors | ranked-vcs / top-30-vcs |
Console display
Show a formatted table for each tier:
## [Header] from [person]'s Network
### Criteria: [user's criteria]
### Tier 1 — [tier 1 label]
| # | Name | Headline | LinkedIn | Why |
|---|------|----------|----------|-----|
| 1 | ... | ... | url | ... |
### Tier 2 — [tier 2 label]
...
### Tier 3 — [tier 3 label]
...Always include the full LinkedIn URL for each person.
File output
Save to ${CLAUDE_SKILL_DIR}/../../output/$0/:
[file prefix].json:
[
{
"rank": 1,
"name": "Person Name",
"headline": "Their LinkedIn headline",
"profileUrl": "https://www.linkedin.com/in/...",
"tier": 1,
"reason": "One-line explanation"
}
][file prefix].csvwith headers:Rank,Name,Headline,LinkedIn URL,Tier,Reason
Report the saved file paths when done.
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.

