linkedin-speak
LinkedIn Speak
Translate ordinary text into gloriously overcaffeinated LinkedIn-speak, or strip a bloated post back down to plain English.
Verified against the observable Kagi Translate rollout and press examples published in March and April 2026.
Decision Tree
- If the user wants a deterministic parody of LinkedIn announcement culture, run
scripts/linkedin_speak.py --mode translate. - If the user pasted a breathless growth-journey post and wants the actual meaning, run
scripts/linkedin_speak.py --mode reverse. - If they want both versions for comparison, run
scripts/linkedin_speak.py --mode both --format json. - If they want a side-by-side check against Kagi's public web translator, add
--compare-kagi-url. - If they want tasteful professional editing instead of satire, stop and use
{{ skill:better-writing }}instead.
Quick Reference
| Task | Command | Why |
|---|---|---|
| Translate plain text into LinkedIn-speak | python3 scripts/linkedin_speak.py "I finished the project." |
Fast happy path with deterministic output |
| Reverse a corporate-cringe post into plain English | python3 scripts/linkedin_speak.py --mode reverse "Thrilled to announce..." |
Removes hype, hashtags, and filler |
| Compare both directions as JSON | python3 scripts/linkedin_speak.py --mode both --format json "I got a new job." |
Easier to feed another tool |
| Dial the cringe up or down | python3 scripts/linkedin_speak.py --intensity 5 "We shipped the feature." |
Controls sentence count, hype, and hashtags |
| Drop hashtags and emoji | python3 scripts/linkedin_speak.py --no-hashtags --no-emoji "I fixed the bug." |
Keeps the parody cleaner |
| Build a Kagi comparison URL | python3 scripts/linkedin_speak.py --compare-kagi-url "I built a dashboard." |
Opens the same input in Kagi's public web UI |
| Run the local probe suite | python3 scripts/probe_linkedin_speak.py |
Verifies core translation behavior |
Scope
Positive triggers
- "translate this into linkedin speak"
- "make this sound like a linkedin influencer"
- "turn this into a corporate announcement"
- "reverse this linkedin post into plain english"
- "add hashtags and fake gratitude"
- "give me the full growth mindset cringe version"
Negative triggers
- actual multilingual translation
- subtle resume polish
- sober launch notes
- legal, HR, or investor communications
- real executive ghostwriting
Working Rule
Default to the deterministic local translator first. It is reproducible, fast, and does not depend on external APIs. Use the Kagi comparison link only when the user wants to compare the local parody against the public LinkedIn Speak translator.
What The Script Actually Does
- expands a plain statement into a short announcement arc
- chooses an opener, reflection sentence, gratitude sentence, emoji, and hashtags deterministically from the input text
- maps common actions like shipping, learning, hiring, speaking, leading, fixing, and launching onto predictable corporate phrasing
- reverses inflated posts by stripping hashtags, emoji, boilerplate hype, and vague self-congratulation
Reading Guide
| Need | Read |
|---|---|
| CLI flags, input methods, and Kagi comparison links | references/configuration.md |
| Output patterns, intensity rules, and deterministic heuristics | references/patterns.md |
| Full command catalog and JSON output shape | references/commands.md |
| Failure modes, limits, and where the parody can get too repetitive | references/gotchas.md |
Gotchas
- The translator is intentionally satirical, not subtle. If the user wants "better LinkedIn copy," this skill is the wrong tool.
- The reverse translator removes hype heuristically. It will simplify the message well, but it cannot perfectly recover every omitted fact if the original post never stated them plainly.
- Deterministic output means the same input stays stable across runs. That is useful for tests and memes, but it also means the phrasing can feel formulaic on repeated use.
- Kagi's public LinkedIn Speak implementation is not a documented API. This skill uses a local engine by default and only emits a comparison URL for the web UI.
- Hashtag selection is keyword-driven. If the input is too vague, the fallback tags will lean generic on purpose.
More from jpcaparas/skills
markdown-new
Use markdown.new when the user explicitly wants markdown.new, Cloudflare Markdown for Agents, URL-to-Markdown conversion, file-to-Markdown conversion, crawl-to-Markdown, or the hosted markdown.new editor. Trigger on: 'markdown.new', 'convert this URL to markdown', 'crawl this docs site into markdown', 'file to markdown', 'upload this PDF to markdown', 'markdown.new API', or 'markdown editor'. Do NOT trigger for generic web search/scraping when another tool is enough, or for editing local Markdown without using the markdown.new service.
32skill-creator-advanced
Advanced skill creator for mission-critical, installable skills — API wrappers, progressively-disclosed technical documentation, CLI tool integrations, and complex multi-reference skills. Use when creating or improving skills that demand rigorous progressive disclosure, verified examples, tested operations, cross-harness compatibility, smart placement into the right repo-local or global skills directory, and self-improvement feedback loops. Triggers on: 'advanced skill', 'create API skill', 'create wrapper skill', 'production skill', 'installable skill', 'improve this skill for progressive disclosure', 'rigorous skill', 'mission-critical skill', or when skill-creator's output needs to be more thorough. Also use when upgrading an existing skill to production quality.
32azure-devops-wiki-markdown
Use when writing, fixing, or reviewing Azure DevOps wiki Markdown, Mermaid diagrams, `_TOC_` and `_TOSP_`, collapsible `<details>` blocks, query-table embeds, `@` mentions, work-item links, KaTeX math, HTML video embeds, code fences, or Azure DevOps surface-specific support differences across Wiki, PR, README, Widget, and Done fields. Triggers on Azure DevOps wiki, markdown guidance, Mermaid sequence/graph/timeline/ER diagrams, proposal decision trees, table-of-subpages, query-table, code fence aliases, line-break bugs, and wiki page formatting. Do NOT use for GitHub-only Markdown, generic Mermaid authoring outside Azure DevOps, or non-Azure documentation platforms.
30ripgrep
Prefer ripgrep (`rg`) for text search, recursive codebase search, ignore-aware grep replacement, filename discovery via `rg --files`, and machine-readable search output. Use when the user asks to search for text, find occurrences, inspect a large tree, locate files by name or pattern, or when `grep`, `grep -R`, `find | grep`, or manual file reads would be slower. Triggers on: 'search for', 'find occurrences', 'grep', 'grep -R', 'ripgrep', 'rg', 'find files', 'look for pattern'. Do NOT trigger for reading entire files, structured JSON queries better handled by `jq`, or filesystem metadata tasks that need `find` or `fd`.
29synthetic-search
Use this skill when the user explicitly wants Synthetic Search, the Synthetic API, `api.synthetic.new`, `SYNTHETIC_API_KEY`, or zero-data-retention web search with raw `curl`/`jq` examples. It covers live-verified search requests, quota checks, and a zero-dependency Node helper for readable output. Triggers on: 'Synthetic Search', 'Synthetic API', 'api.synthetic.new', 'SYNTHETIC_API_KEY', 'Synthetic quotas'. Do NOT trigger for general browser automation, full-site crawling, or unrelated search providers.
29tweet-replicate
Rebuild a public X/Twitter status into a deterministic local replica with a frozen snapshot, local HTML/CSS, Playwright capture, X-like media-frame fill behavior, a high-quality MP4 master, and a companion GIF capped under 24 MB. Use when asked to replicate a tweet/X post, freeze a status into video, make a tweet look like X offline, or create rerenderable tweet assets with a saved build folder. Trigger on: 'replicate this tweet', 'turn this X post into MP4', 'make this tweet into a GIF too', 'freeze this status locally'. Do NOT use for plain tweet text extraction, raw media download only, live X browser capture, authenticated pages, DMs, or promises of a pixel-perfect private X renderer.
29