skills/timescale/marketing-skills/linkedin-article-writer

linkedin-article-writer

Installation
SKILL.md

LinkedIn Article Writer

Convert blog posts and other content into first-person LinkedIn articles with voice-matched writing, SEO metadata, and a companion social post. Works with two input types: Tiger Den content items (published or indexed) and raw blog drafts (pasted text, uploaded files, Google Docs) that aren't in Tiger Den yet.

When to use this skill

  • Turning a published blog post or Tiger Den content item into a LinkedIn article
  • Converting a blog draft (not yet published) into a LinkedIn article
  • When someone says "LinkedIn article," "long-form LinkedIn," "repurpose this for LinkedIn," or "turn this blog into a LinkedIn piece"
  • When social-post-writer hands off a LinkedIn article request

When NOT to use this skill

  • Short LinkedIn posts (150-300 words) — use social-post-writer
  • Social media campaign planning — use social-post-writer
  • X/Twitter posts or threads — use social-post-writer
  • Writing a blog post from scratch — use brand-voice-writer

Step 0: Pre-flight check

Read REFERENCES.md from the plugin root and run the pre-flight check described there. Call list_marketing_references() to verify Tiger Den is reachable. If it fails or the tool is not found, STOP — do not continue. Follow the error handling in REFERENCES.md.

Also fetch the No Fly List before doing any work:

get_marketing_reference(slug: "no-fly-list")

This is a list of customers who cannot be publicly referenced. Load these names as a hard constraint: never include any No Fly List customer in any output — not as named examples, proof points, customer quotes, case study references, or any other mention. If the user requests content featuring or referencing a No Fly List customer, stop and inform them that this customer cannot be publicly referenced. If a No Fly List name appears in source material you are working from, omit it from all outputs.

Instructions

1. Gather inputs

Determine the source content and author. Ask the user for anything not provided.

Source content — one of:

  • Tiger Den content item: The user provides a content ID, title, or URL. Search Tiger Den with search_content if they give a topic or partial title. Fetch the full text with get_content_text once identified.
  • Raw blog draft: The user pastes text, uploads a file, or shares a Google Doc link. Work from the provided text directly.

Author voice profile:

  • Ask who the LinkedIn article is "from" (who's posting it). If not specified, ask.
  • Call list_voice_profiles to check available profiles, then get_voice_profile with the matching name slug.
  • If no voice profile exists for the person, proceed with brand voice only and note the limitation.

Optional inputs (ask if not provided, offer sensible defaults):

  • Target audience: Who is this article for? Default: infer from the content.
  • Angle: Any specific emphasis or perspective? Default: let the content guide it.
  • Word count: Target for article body. Default: 1000 words.
  • CTA URL: Ask the user: "What URL should the CTA link to?" This is always a published, live URL, either the blog post itself, a related asset (whitepaper, anchor essay), or a product page. Do not assume or default. Always ask.

2. Load brand context

Fetch reference docs before writing:

get_marketing_context(slugs: ["brand-voice-guide"])

Read the brand voice guide and internalize the absolute rules (no em dashes, active voice, lead with the problem, short paragraphs). The voice profile from Step 1 takes precedence for sentence rhythm, tone, humor, and personality. The brand voice guide governs terminology and structural guardrails.

If Tiger Den is not connected, do not proceed. Tell the user: "This skill needs Tiger Den to load the brand voice guide and voice profiles. Run /setup to get it configured."

3. Gather context from Tiger Den (Tiger Den content only)

When the source is a Tiger Den content item, use build_linkedin_prompt to assemble context:

build_linkedin_prompt(
  content_id: "<content UUID>",
  voice_profile: "<author name slug>",
  audience: "<audience if specified>",
  angle: "<angle if specified>",
  word_count: <target word count>,
  cta_type: "<CTA label>",
  cta_url: "<CTA URL>"
)

This returns a structured prompt with the voice profile, content text, suggested related links, and target details pre-assembled. Do not output this prompt to the user. Extract the useful context from it:

  • The author's voice notes, anti-patterns, and writing samples
  • The full blog post text
  • Suggested links for the social post CTA
  • Target details

Then use that context to write the article yourself following the instructions below. The build_linkedin_prompt tool is a context-gathering shortcut, not a prompt to blindly execute.

For raw blog drafts: Skip build_linkedin_prompt. You already have the text from the user and the voice profile from Step 1. Use search_content to find 3-5 related Tiger Den content items for suggested links in the social post:

search_content(query: "<topic keywords from the draft>", limit: 5)

4. Write the four outputs

Produce exactly four outputs in this order:

Output 1: LinkedIn SEO Title

  • Under 70 characters
  • Clear and specific, no clickbait
  • Uses the author's natural phrasing, not generic marketing language
  • Test: would this person actually title their own article this way?

Output 2: LinkedIn SEO Description

  • 1-2 sentences, under 200 characters total
  • Summarizes the article's core takeaway
  • Written in the author's voice

Output 3: Article Body

Target word count (default 900-1100 words). This is a first-person LinkedIn article, not a blog repost. The article should feel like the author wrote it natively for LinkedIn, not like someone copied a blog post.

Structure:

  • Opening hook: 2-3 sentences max. No "I was sitting at my desk..." cliches. Start with an insight, a surprising fact, or a direct statement that earns the reader's attention.
  • 3-5 sections with clear subheadings: Each subheading should be specific and descriptive, not clever or cryptic. Each section follows the pattern: insight, evidence or example, implication.
  • Closing: One clear takeaway. No summary paragraph. No "In conclusion." The last paragraph should contain information, not warm feelings.
  • No CTAs, links, or promotional content in the article body. Links go in the social post only.

Paragraph rules: 2-4 sentences max per paragraph. No walls of text. First sentence of each section should stand alone as a meaningful statement. Explain jargon on first use, then use it freely.

Output 4: Social Post + First Comment

The LinkedIn post that accompanies the article when sharing. 150-250 words for the post body. The CTA link goes in a separate first comment, not in the post itself. LinkedIn's algorithm deprioritizes posts with outbound links, so keeping the post link-free and putting the CTA in the first comment preserves organic reach.

Post body structure:

  • Hook line: The first line people see before "...see more." This line alone must create enough curiosity to click.
  • 2-3 short paragraphs: Expand the hook. Give a taste of the article's value without giving away the whole thing.
  • Closing line: A natural transition to the first comment (e.g., "I wrote about this in detail. Link in the first comment." or "Full breakdown below."). Do not use "Link in bio." Keep it conversational.
  • 3-5 hashtags: Mix of broad and niche. No #ThoughtLeadership. No more than 5.

No links in the post body. All links go in the first comment.

First comment structure:

Draft a short first comment (2-4 sentences) that includes:

  • The primary CTA link, UTM-tagged using generate_utm_link(url: "<CTA URL>", source: "linkedin", medium: "social", campaign: "<topic slug>")
  • Optionally, one related link from suggested links (Step 3) if it adds value
  • A brief sentence framing why the link is worth clicking

Present the first comment separately under a "First Comment:" header so the author can copy-paste it immediately after posting.

5. Voice matching rules

These rules apply to all four outputs. Follow them exactly.

  • Read all writing samples from the voice profile before writing anything
  • Match the author's sentence length patterns, punctuation habits, and paragraph rhythm
  • Use their vocabulary and phrasing, not generic business writing
  • If they use contractions, use contractions. If they don't, don't.
  • Mirror their level of formality, humor, and directness
  • The voice notes and anti-patterns from the profile are authoritative

6. Anti-patterns (never do these)

Scan every output and remove any of the following before delivering:

  • "In today's rapidly evolving landscape" or similar AI-sounding openers
  • "Let's dive in," "Here's the thing," "Let me be clear," "At the end of the day"
  • Em dashes (—) — replace with commas, periods, or parentheses. Brand voice bans them entirely.
  • Rhetorical questions as section transitions
  • Bullet-point lists longer than 5 items in the article body
  • "I'm excited to announce" or "Thrilled to share"
  • Hashtags anywhere in the article body (only in the social post)
  • "What do you think? Let me know in the comments" or engagement bait
  • Corporate jargon: "synergy," "leverage," "ecosystem," "paradigm shift"
  • More than one exclamation mark in the entire article
  • "As [famous person] once said" quotes
  • Three consecutive sentences starting the same way
  • Negative seesaws: "It's not X. It's Y." / "Not just X, but Y."
  • Forced triples: compulsively grouping things in threes
  • Copula dodging: "serves as," "stands as," "functions as" when the sentence means "is"
  • AI vocabulary cluster: "delve," "landscape," "crucial," "showcase," "underscore," "tapestry," "foster," "bolster"
  • Hallmark-card endings: "The future looks bright." "This is just the beginning."

7. Quality checklist

Verify all of the following before delivering. If any check fails, fix it.

  • Article body is within 100 words of the target word count
  • Voice matches the writing samples (read them side by side)
  • No items from the anti-patterns list appear in any output
  • No links in the article body
  • Social post has a strong hook line (would you click "see more"?)
  • SEO title is under 70 characters
  • SEO description is under 200 characters
  • All four outputs are present and in order
  • Em dashes are completely absent
  • UTM parameters are applied to all links in the social post

Output format

Present all four outputs directly in chat as structured Markdown with clear headers:

## LinkedIn SEO Title
[title]

## LinkedIn SEO Description
[description]

## Article Body
[article]

## Social Post
[post body with hashtags, no links]

## First Comment
[CTA link + framing sentence]

If the user asks for a file, create a Markdown file with the four sections.

Hand-off

After delivering, offer to:

  • Adjust the angle, tone, or word count and regenerate
  • Run /de-slop for an additional AI-pattern scrub
  • Run /content-reviewer to evaluate the article against the quality rubric
  • Draft additional social posts for the same article using social-post-writer
  • Create an X/Twitter version of the social post

Do not auto-trigger other skills. Wait for the user to confirm the output looks good first.

Dependencies

  • Required: Tiger Den MCP server (for voice profiles, brand voice guide, content search, suggested links, UTM generation)
  • Optional: Google Drive access (if the user provides a Google Doc link for a raw draft)
Weekly Installs
1
GitHub Stars
5
First Seen
Apr 13, 2026