AGENT SKILLBY JPCAPARAS
LinkedIn speak
AT A GLANCE
LinkedIn speak is an agent skill for social media. Translate ordinary text into gloriously overcaffeinated LinkedIn-speak, or strip a bloated post back down to plain English. It is published by jpcaparas in the jpcaparas/skills GitHub repository (14 stars), which does not specify a license. To add it, run npx skills add jpcaparas/skills --skill linkedin-speak
- SOURCE REPOSITORY
- jpcaparas/skills (opens GitHub in a new tab)
- REPO STARS
- SOURCE REPOSITORY
- LICENSE
- Not specifiedCHECK THE REPO
- CATEGORIES
- SKILL.MD SIZE
- 20 KB553 LINES
QUICK ANSWER
- WHAT IT IS01
- Translate ordinary text into gloriously overcaffeinated LinkedIn-speak, or strip a bloated post back down to plain English. The value is a focused slice of social content judgment, useful when several similar skills cover the same ground.
- INPUTS02
- Context for social content: your goals, audience, constraints, and any source material the skill asks for.
- OUTPUT03
- A ready-to-use result for social content: the analysis, copy, or recommendations the agent produces.
INSTALL
One command adds this skill from its source repository.
npx skills add jpcaparas/skills --skill linkedin-speakREAD THE SKILL.MD BELOW BEFORE YOU RUN IT. SKILLS INSTRUCT YOUR AGENT.
SKILL.MD
The full file, as published in the source repository. Copy it, download it or open it on GitHub.
ON THIS PAGE · 52
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.
Supporting file: AGENTS.md#
linkedin-speak#
Canonical instructions live in SKILL.md.
Use this skill when the user wants parody LinkedIn language, overblown corporate-announcement voice, deterministic hashtag-heavy rewrites, or reverse translation from thought-leader fluff back into plain English.
This skill is intentionally comedic and reproducible. It is not a substitute for tasteful editing or real translation.
Supporting file: README.md#
linkedin-speak#
Installable parody skill for translating plain English into deterministic LinkedIn-speak and back again.
linkedin-speak is a fun, reproducible wrapper around a local heuristic engine that mimics the viral "LinkedIn Speak" style popularized by Kagi Translate's novelty language launch in March 2026.
What it covers#
- deterministic plain-English to LinkedIn-speak translation
- reverse translation from bloated post to blunt English
- adjustable cringe intensity
- optional emoji and hashtag control
- Kagi web-UI comparison links for side-by-side checking
Key files#
SKILL.md— authoritative instructionsscripts/linkedin_speak.py— translator and reverse-translator CLIscripts/probe_linkedin_speak.py— lightweight behavior probereferences/patterns.md— transformation rules and examplesreferences/gotchas.md— limits, edge cases, and anti-patterns
Supporting file: agents/openai.yaml#
interface:
display_name: "linkedin-speak"
short_description: "Translate plain English into deterministic LinkedIn-speak parody or reverse inflated posts back into blunt English"
default_prompt: "Turn this text into LinkedIn-speak or decode a bloated LinkedIn post back into plain English"Supporting file: evals/evals.json#
{
"skill_name": "linkedin-speak",
"created_by": "skill-creator-advanced",
"evals": [
{
"id": 1,
"name": "translate-basic-update",
"prompt": "Translate 'I got a new job.' into LinkedIn-speak with deterministic hashtags.",
"expected_output": "A hype-heavy announcement with a career-change framing, an emoji, and relevant hashtags.",
"assertions": [
{
"text": "Output includes a celebratory opener",
"type": "functional"
},
{
"text": "Output includes hashtags related to career growth",
"type": "functional"
}
],
"files": [
"scripts/linkedin_speak.py",
"references/patterns.md"
],
"tags": [
"smoke",
"translate"
]
},
{
"id": 2,
"name": "reverse-bloated-post",
"prompt": "Reverse 'Thrilled to announce...' into plain English.",
"expected_output": "A much shorter statement with hype, emoji, and hashtags removed.",
"assertions": [
{
"text": "Reverse output removes emoji and hashtags",
"type": "functional"
}
],
"files": [
"scripts/linkedin_speak.py",
"references/gotchas.md"
],
"tags": [
"edge-case",
"reverse"
]
},
{
"id": 3,
"name": "negative-not-for-subtle-editing",
"prompt": "Help me gently polish this executive update without sounding silly.",
"expected_output": "The skill should not be the first choice because the user wants tasteful editing, not parody.",
"assertions": [
{
"text": "Description and scope clearly mark subtle editing as a negative trigger",
"type": "policy"
}
],
"files": [
"SKILL.md"
],
"tags": [
"negative"
]
},
{
"id": 4,
"name": "disclosure-kagi-comparison-flow",
"prompt": "Show me how to compare the local translator against Kagi Translate's web UI.",
"expected_output": "The response should point to the configuration reference and the compare URL flag.",
"assertions": [
{
"text": "Configuration docs mention compare mode and the Kagi URL shape",
"type": "disclosure"
}
],
"files": [
"references/configuration.md"
],
"tags": [
"disclosure"
]
}
]
}Supporting file: metadata.json#
{
"version": "1.0.0",
"organization": "JP Caparas",
"date": "April 2026",
"abstract": "Fun installable skill that deterministically translates plain English into exaggerated LinkedIn-speak and reverses corporate-thought-leader posts back into blunt English. Ships a local Python CLI, probe script, evals, and reference docs, with optional comparison links to Kagi Translate's public LinkedIn Speak web UI.",
"references": [
"https://www.xda-developers.com/tool-translates-your-thoughts-into-linkedin-speak/",
"https://kagifeedback.org/d/10140-march-19th-2026-small-web-expansion-and-translate-goes-viral",
"https://alternativeto.net/news/2026/3/kagi-translate-introduces-linkedin-speak-for-satirical-corporate-style-announcements/"
]
}Supporting file: references/commands.md#
Commands#
Use scripts/linkedin_speak.py for the actual translation work and scripts/probe_linkedin_speak.py for verification.
Main CLI#
Translate#
python3 scripts/linkedin_speak.py "I got a new job."Reverse#
python3 scripts/linkedin_speak.py \
--mode reverse \
"Thrilled to announce that I’m starting a new chapter today! Grateful for everyone who made this possible. 🚀 #GrowthMindset #Leadership"JSON#
python3 scripts/linkedin_speak.py \
--mode both \
--format json \
--intensity 4 \
"We launched the dashboard."Example JSON shape:
{
"mode": "both",
"input": "We launched the dashboard.",
"translation": "Excited to share ...",
"reverse": "We launched the dashboard.",
"metadata": {
"intensity": 4,
"hashtags_included": true,
"emoji_included": true,
"kagi_compare_url": "https://translate.kagi.com/?from=en&to=linkedin&text=We%20launched..."
}
}Stdin#
cat ./draft.txt | python3 scripts/linkedin_speak.py --mode translate --format textFile Input#
python3 scripts/linkedin_speak.py --input-file ./draft.txt --mode reverseProbe#
Run the built-in behavior probe:
python3 scripts/probe_linkedin_speak.pyThe probe checks that:
- translate mode produces a hype-style opener
- reverse mode removes hashtags and emoji
- JSON mode returns the expected keys
- the Kagi comparison URL is generated correctly
Validator And Test Commands#
python3 scripts/validate.py skills/linkedin-speak
python3 scripts/test_skill.py skills/linkedin-speakRead Next#
references/configuration.mdfor setup and input rulesreferences/patterns.mdfor the translation heuristicsreferences/gotchas.mdfor limits and edge cases
Supporting file: references/configuration.md#
Configuration#
Use scripts/linkedin_speak.py as the deterministic engine. It reads text from a positional argument, stdin, or --input-file.
Prerequisites#
python3- plain UTF-8 text input
No external API key is required.
Input Sources#
| Source | Example |
|---|---|
| Positional argument | python3 scripts/linkedin_speak.py "I got a new job." |
| Stdin | printf '%s' "I shipped the feature." | python3 scripts/linkedin_speak.py |
| File | python3 scripts/linkedin_speak.py --input-file ./status.txt |
Core Flags#
| Flag | Meaning |
|---|---|
--mode translate | Plain English to LinkedIn-speak |
--mode reverse | LinkedIn-speak to plain English |
--mode both | Returns both directions in one response |
--format text | Human-readable output |
--format json | Structured output with metadata |
--intensity 1..5 | Controls hype, sentence count, and default hashtag volume |
--no-hashtags | Suppress trailing hashtags |
--no-emoji | Suppress the celebratory emoji |
--compare-kagi-url | Include a prefilled Kagi Translate URL for manual comparison |
Kagi Comparison Mode#
Kagi's LinkedIn Speak feature is publicly visible through the web translator, but no documented public API surfaced during research. Use --compare-kagi-url when the user wants a manual side-by-side check:
python3 scripts/linkedin_speak.py \
--compare-kagi-url \
"Today, I've completed an interesting project!"That prints a URL like:
https://translate.kagi.com/?from=en&to=linkedin&text=...Open it in a browser to compare the local deterministic output against Kagi's live web UI.
Read Next#
references/commands.mdfor exact command shapes and output structurereferences/patterns.mdfor the transformation rulesreferences/gotchas.mdfor the parody limits and edge cases
Supporting file: references/gotchas.md#
Gotchas#
1. Vague Inputs Produce Generic Cringe#
If the input is something like good day or it worked, the engine will fall back to generic growth-and-gratitude language because it has no specific nouns to map onto better hashtags or action phrases.
Fix:
- include the actual action, project, role, or topic
- use
--intensity 1if the user wants a smaller joke
2. Reverse Mode Removes The Joke, Not Just The Noise#
Reverse mode strips hype aggressively. That is the point. If a user actually wants a polished but still warm tone, use {{ skill:better-writing }} instead of this skill.
3. Deterministic Means Repeatable Patterns#
The translator uses hash-based selection so the same input stays stable. That helps tests, but heavy reuse can expose the same sentence shapes repeatedly.
Fix:
- change the input wording slightly
- change
--intensity - turn hashtags or emoji off for a different feel
4. Kagi Comparison Is Web-Only#
Research found public web routing for LinkedIn Speak but no documented public API contract. This skill therefore treats Kagi as a comparison target, not a hard dependency.
5. Satire Can Overshoot#
Do not use this skill for press releases, performance reviews, layoffs, legal notices, or other contexts where parody can backfire.
Read Next#
references/patterns.mdfor how the parody engine decides what to sayreferences/configuration.mdfor the safe invocation patterns
Supporting file: references/patterns.md#
Patterns#
The translator is deterministic by design. It should feel playful, not random.
Translation Pattern#
The forward translator turns a plain statement into an announcement arc with these stages:
- opener
- accomplishment restatement
- reflection on growth, collaboration, or momentum
- gratitude or forward-looking sentence
- emoji and hashtags, unless disabled
The exact wording is chosen by hashing the normalized input. That keeps identical inputs stable across runs.
Intensity Levels#
| Intensity | Behavior |
|---|---|
1 | One short opener plus one grounded summary sentence |
2 | Adds a gratitude or reflection sentence |
3 | Default. Adds both reflection and gratitude plus 3-4 hashtags |
4 | Adds stronger hype and 4-5 hashtags |
5 | Maximum cringe: bigger opener, extra framing, and the most flamboyant closer |
Action Detection#
The engine scans for action verbs and nouns, then reframes them:
| Signal | Typical framing |
|---|---|
shipped, launched, released | "brought something into the world" |
finished, completed, wrapped | "crossed the finish line" |
learned, studied | "invested in growth" |
hired, joined, new job | "starting a new chapter" |
spoke, presented | "shared ideas with an incredible room" |
fixed, debugged | "turned a challenge into momentum" |
built, created | "built something meaningful" |
Hashtag Selection#
Hashtags are derived from topic keywords first, then padded with generic LinkedIn staples.
Topic-aware tags include:
- product work:
#Innovation,#ProductManagement - shipping or launch work:
#Launch,#Execution - leadership work:
#Leadership,#Teamwork - learning work:
#GrowthMindset,#ContinuousLearning - hiring or career change:
#CareerGrowth,#NewBeginnings - data or dashboards:
#Analytics,#DataStrategy
Generic fallback tags:
#GrowthMindset#Leadership#Collaboration#Innovation#LearningInPublic#CareerDevelopment
Reverse Pattern#
The reverse translator does not attempt perfect semantic parsing. It follows a reliable simplification path:
- strip emojis and hashtags
- delete stock hype phrases like "thrilled to announce" and "grateful for the opportunity"
- collapse extra whitespace and repeated punctuation
- shorten inflated framing to a plain action sentence
- trim the output to the most factual clauses
Example Pairs#
| Plain input | LinkedIn-speak |
|---|---|
I got a new job. | Thrilled to share that I'm starting a new chapter with a new role. Moments like this are a reminder that growth compounds when great people invest in you. Grateful for everyone who helped me get here, and excited for what comes next. 🚀 #CareerGrowth #NewBeginnings #GrowthMindset #Leadership |
We launched the dashboard. | Excited to announce that we officially brought a new dashboard into the world today. This was a strong lesson in alignment, execution, and building with intention. Proud of the team for turning momentum into something real. 🚀 #Launch #Analytics #Collaboration #Innovation |
Read Next#
references/commands.mdfor exact invocation patternsreferences/gotchas.mdfor the rough edges and comedy limitsscripts/linkedin_speak.pyfor the authoritative implementation
Supporting file: skill-card.prompt.md#
Nano Banana 2 image generation prompt for the linkedin-speak README skill badge.
Create a polished rectangular raster badge for a GitHub README. Aspect ratio: 16:9. Style: consistent side-scrolling 16-bit pixel game art, crisp pixel edges, low-noise, premium editorial composition, layered parallax background, simple geometric props, restrained detail. Subject: a megaphone transforming a small plain block into an overbright beam of geometric confetti. Composition: one central readable illustration, a few supporting environmental elements, generous negative space, no crowded UI, no poster collage, no photorealism, no mockup frame. Forbidden objects unless unavoidable: pages, documents, signs, posters, terminal windows, dashboard windows, browser windows, charts with axes, speech bubbles, calendars with grids, spreadsheets, tickets with markings, maps with markings, and social media post mockups. Blank-surface rule: any paper, book, ticket, screen, terminal, dashboard, chart, browser, sign, speech bubble, social post, calendar, spreadsheet, map, or interface surface must be visually blank or represented only by solid unlabeled rectangles, bars, dots, connectors, and simple icons. Do not draw interior strokes that resemble writing. Palette: deep midnight navy background, cool teal and blue shadows, one warm amber accent, limited saturated highlights, cohesive with the rest of the README skill-card collection. Lighting: soft game-like glow, clear silhouette separation, no blur, no grain, no lens effects. No visible text, no letters, no numbers, no typography, no captions, no labels, no logos, no watermarks, no pseudo-text, no glyph-like marks, no UI copy, no code characters, no punctuation, no checkmarks, no question marks. Return only the image.
Supporting file: templates/input-examples.md#
Example Inputs#
Plain To LinkedIn#
I got a new job.We launched the dashboard.I fixed the production bug.I spoke at a meetup about observability.I finished the migration today.
LinkedIn To Plain English#
Thrilled to announce that I’m stepping into a new chapter today! Grateful for every conversation that shaped this journey. 🚀 #CareerGrowth #LeadershipHonored to share that our incredible team officially shipped a meaningful update for customers this week. So proud of what collaborative execution can unlock. #Innovation #Teamwork
FAQ
07 QUESTIONS
01What is the LinkedIn speak agent skill?
Translate ordinary text into gloriously overcaffeinated LinkedIn-speak, or strip a bloated post back down to plain English. It is listed under social media in the 100xLab agent skills directory.
02How do I install LinkedIn speak in Cursor, Claude Code, or Codex?
Run npx skills add jpcaparas/skills --skill linkedin-speak in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only LinkedIn speak, not every skill in the repository.
03What does the LinkedIn speak SKILL.md cover?
The SKILL.md includes sections on Decision Tree, Quick Reference, Scope, Positive triggers, Negative triggers and Working Rule. Read the full text on this page or in plain markdown at /resources/agent-skills/jpcaparas-skills--linkedin-speak--9m4ka/raw.
04Which agents can use LinkedIn speak?
LinkedIn speak installs with the cross-agent skills installer (npx skills add), which sets it up for agents such as Claude Code, Cursor and Codex. Each agent loads the SKILL.md when you ask for the skill by name.
05What license is LinkedIn speak under?
No license was detected on the jpcaparas/skills repository, so the license is not specified. Check with jpcaparas before you redistribute or build on the skill.
06Is LinkedIn speak free to use?
Reading and installing LinkedIn speak costs nothing, because it is published in a public GitHub repository. The repository specifies no license, so ask jpcaparas before you reuse or redistribute it.
07Where is the source of LinkedIn speak?
LinkedIn speak comes from https://github.com/jpcaparas/skills, which has 14 GitHub stars. The SKILL.md is at https://github.com/jpcaparas/skills/blob/HEAD/skills/linkedin-speak/AGENTS.md. The author is jpcaparas.
Need an agent workflow built around your stack?
Tell us the workflow you want automated. We reply within 4 working hours (IST).
ATTRIBUTION
LinkedIn speak was written by its original authors and is published in jpcaparas/skills (opens GitHub in a new tab) under no license stated in the repository. All rights stay with the original authors.
100xLab did not write, maintain or endorse this skill. This page lists it for discovery. Repo stars belong to the source repository, not to the skill. Review any skill before you install it.