CtrlK
BlogDocsLog inGet started
Tessl Logo

linkedin-message-writer

Research LinkedIn profiles and write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies. Takes LinkedIn URLs as input, researches each person (profile data + recent posts via Apify), and generates messages tailored to each lead's background, interests, and recent activity. Exports tool-ready CSVs for Dripify, Expandi, Botdog, PhantomBuster, or generic format. No LinkedIn cookies or login required.

64

Quality

81%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

81%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong operational skill: fully sequenced workflow with explicit validation gates, concrete API calls and export formats, and disciplined conciseness. The main improvement opportunities are scripting the run/dataset ID retrieval and character-counting steps, and trimming the repeated character-limit statements.

DimensionReasoningScore

Conciseness

The body is dense with operational content (exact curl calls, per-tool CSV column specs, cost tables) with almost no explanation of concepts Claude already knows — no time is spent explaining what LinkedIn or CSV files are. There is minor padding and repetition ('That's it. One env var. Nothing else.', the 200/300-char limit stated in the table, the key rules, the intake question, and the writing process), which keeps it at 'efficient; minor instances that could be trimmed' rather than a 5.

4 / 5

Actionability

Guidance is largely executable: copy-paste curl POST calls to named Apify actors with real endpoints and JSON payloads, polling endpoints, exact CSV column layouts for five tools, per-unit costs, and an error-to-fix table. Minor gaps keep it below 'fully copy-paste ready across common cases': the {RUN_ID}/{DATASET_ID} values are placeholders with no example of extracting them from the run-status response, and character-counting is instructed but not scripted.

4 / 5

Workflow Clarity

Phases 0–5 are clearly sequenced with explicit validation checkpoints and feedback loops appropriate to a batch operation: confirm lead count before research, generate 3–5 samples and iterate with the user (max 3 rounds), enforce character limits with a rewrite-not-truncate recovery loop, retry-once/skip-and-report error handling, and a hard gate — 'Do NOT mark as done without explicit user confirmation'. This matches the anchor for clear sequence with explicit validation steps and error-recovery loops, so the batch-operation cap does not apply.

5 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), so this is a self-contained single-file skill judged on internal structure: clean section headers, well-organized tables, and no nested references, making it easy to navigate. It sits at 'good structure; most content appropriately placed' rather than 5 because ~330 lines of reference material (the message-types reference and per-tool CSV formats) could plausibly live in separate reference files.

4 / 5

Total

17

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly specific, third-person description with strong trigger keywords and minimal conflict risk. Its only notable weakness is the absence of an explicit 'Use when...' clause, which caps completeness and leaves activation conditions implied rather than stated.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user wants to write LinkedIn messages, do LinkedIn outreach, or connect with leads on LinkedIn' — this would raise completeness from 3 to 5.

Include a few more natural synonyms users would say, such as 'LinkedIn outreach', 'reach out to leads', or 'connect with these leads', to broaden trigger coverage.

The phrase 'message requests' could name the shared-context scenario (group/event members) to further sharpen the niche, though this is a minor refinement.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with comprehensive coverage: 'Research LinkedIn profiles', 'write personalized messages for any LinkedIn message type — connection requests, InMails, DMs, message requests, post comments, and comment replies', 'Exports tool-ready CSVs for Dripify, Expandi, Botdog, PhantomBuster'. It enumerates six message types and five export targets, matching the anchor for multiple specific concrete actions; it is also consistently third-person ('Researches', 'Takes', 'Exports').

5 / 5

Completeness

The 'what' is clear and explicit (research profiles via Apify, write six message types, export tool-specific CSVs), but there is no 'Use when...' clause or equivalent explicit trigger guidance — 'Takes LinkedIn URLs as input' only weakly implies when to use it. Per the judging guideline, a missing 'Use when...' clause caps completeness at 3 even with a strong 'what'.

3 / 5

Trigger Term Quality

Good keyword coverage with natural terms users would say: 'LinkedIn', 'connection requests', 'InMails', 'DMs', 'post comments', 'personalized messages', 'LinkedIn URLs', 'leads'. A few common natural phrases are missing, e.g. 'LinkedIn outreach', 'reach out', 'connect with' — solidly at the 'good coverage, a few natural terms missing' anchor rather than the comprehensive synonym coverage of a 5.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (LinkedIn outreach messaging with named tools Dripify/Expandi/Botdog/PhantomBuster and the differentiator 'No LinkedIn cookies or login required'); the enumerated message types and tool names are distinct triggers unlikely to collide with other skills.

5 / 5

Total

17

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
gooseworks-ai/goose-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.