CtrlK
BlogDocsLog inGet started
Tessl Logo

linkedin-outreach

End-to-end LinkedIn outreach campaign builder. Takes leads from Supabase, upstream skills, or CSV. Aligns on campaign goal and tone, writes personalized LinkedIn message sequences (connection request + follow-ups + optional InMail), presents for review, and exports for the user's outreach tool (Dripify, Botdog, Expandi, or manual CSV). Logs to Supabase outreach_log.

66

Quality

80%

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

Fix and improve this skill with Tessl

tessl review fix ./skills/outreach/capabilities/linkedin-outreach/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

77%

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

A highly actionable, well-sequenced skill with concrete code, mappings, and approval/validation gates for batch and database operations. Its weaknesses are mild internal repetition that could be trimmed and a monolithic structure where referenced template files are not bundled as cleanly signaled one-level-deep references.

Suggestions

Move the per-signal sequence templates (pain-language.md, competitor-engagement.md, etc.) into a references/ bundle so the in-body template table links to real, discoverable files, improving progressive disclosure.

Consolidate the cooldown material: keep the Phase 1 procedural steps and reduce the separate 'Cooldown Enforcement Rules' section to a cross-reference rather than restating the same 84-day/cross-channel logic.

Trim redundancy between the Character Limits table and the Writing Guidelines section by stating each limit once and linking the detail.

DimensionReasoningScore

Conciseness

Largely operational content (tables, code, mappings) with little concept-overhead, but at 423 lines it repeats some material — the Cooldown Enforcement Rules section restates Phase 1 cooldown logic, and character limits are stated in one table then restated in Writing Guidelines — so it could be tightened.

2 / 3

Actionability

Fully executable guidance: copy-paste Python (SupabaseClient import, check_cooldown, log_outreach), a concrete PostgREST filter table, exact per-tool CSV column mappings, hard character limits with the rewrite-don't-truncate rule, and precise file paths.

3 / 3

Workflow Clarity

Clear Phase 0–6 sequence with explicit validation/approval gates (structure approval before copy, Phase 5 Hard Approval Gate, Phase 6 DB writes gated on prior approval), plus a calibration loop and character-count enforcement feedback for batch operations.

3 / 3

Progressive Disclosure

The body points to external paths (templates/sequence-templates/*.md, templates/tone-presets.json, tools/supabase/*) but no references/scripts/assets bundle directories exist, so these are not navigable bundle files; everything lives in one 423-line monolithic file with templates referenced rather than cleanly split.

2 / 3

Total

10

/

12

Passed

Description

82%

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 strong, specific, third-person description that concretely enumerates actions and natural trigger terms with a clear LinkedIn niche. Its only gap is the absence of an explicit 'Use when...' trigger clause, which caps completeness.

Suggestions

Append a 'Use when...' clause naming natural triggers (e.g., 'Use when the user wants to run a LinkedIn outreach campaign, connect with qualified leads on LinkedIn, or build LinkedIn message sequences').

Keep the tool list (Dripify, Botdog, Expandi) but ensure the when-clause is explicit rather than only implied by the capability list.

DimensionReasoningScore

Specificity

Lists multiple concrete actions ("Takes leads from Supabase, upstream skills, or CSV", "writes personalized LinkedIn message sequences (connection request + follow-ups + optional InMail)", "presents for review", "exports for the user's outreach tool (Dripify, Botdog, Expandi, or manual CSV)", "Logs to Supabase outreach_log").

3 / 3

Completeness

Clearly answers 'what' with detailed capabilities but has no 'Use when...' clause or equivalent explicit trigger guidance in the description; per the rubric a missing when-clause caps completeness at 2 even though the 'what' is strong.

2 / 3

Trigger Term Quality

Includes natural terms users would say ("LinkedIn outreach campaign", "LinkedIn message sequences", "connection request", "follow-ups", "InMail") plus concrete tool names users reference.

3 / 3

Distinctiveness Conflict Risk

Niche is sharply defined by the LinkedIn channel, message-sequence framing, and named tools (Dripify/Botdog/Expandi), making it clearly distinguishable from sibling cold-email-outreach and unlikely to trigger wrongly.

3 / 3

Total

11

/

12

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.

Validation15 / 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.