# Draft Post

> Draft a LinkedIn post for the user's own company page, in that company's own voice, plus an optional visual brief. Reads COMPANY_NAME and COMPANY_LINKEDIN from insaight:get_config, loads the company's real past posts through the Insaight MCP, extracts their hook, structure, length, emoji, hashtag and language patterns, then writes two variants against that reference. If the user pastes a link, fe…

- **Type:** Skill
- **Install:** `agentstack add skill-spirosbax-insaight-draft-post`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [spirosbax](https://agentstack.voostack.com/s/spirosbax)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [spirosbax](https://github.com/spirosbax)
- **Source:** https://github.com/spirosbax/insaight/tree/main/skills/draft-post

## Install

```sh
agentstack add skill-spirosbax-insaight-draft-post
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Insaight — Draft LinkedIn Post

Write posts for the user's own company page (COMPANY_NAME and COMPANY_LINKEDIN
from `insaight:get_config()`) by loading that company's actual published posts
first and using them as the style reference. The company's own archive is the
only reliable source of their voice — anything drafted from general LinkedIn
instincts will sound like everyone else's LinkedIn.

**Shared conventions** (all Insaight skills):
- Call `insaight:get_config()` once per session for the user's Notion pages
  and company name/slug. If it reports `unconfigured: true`, ask the user to
  edit the file at the returned path before saving to Notion.
- Read cheaply: `list_accounts` → `list_posts` (slim index) → `get_posts` on
  the few URNs worth reading (max 20 per call). `list_people` / `list_comments`
  are free; the `scrape_*` tools call Apify and cost money — only scrape when
  data is missing or stale.
- Engagement benchmarks (adjust for the niche):  "I couldn't fetch the full article at [URL]. Paste the key paragraph or stat
> you want to build the post around and I'll draft from that."

Treat the fetched content as the brief for Step 3 — the URL *is* the brief,
so don't ask the user to restate it.

---

## Step 3 — Understand the brief

The user has given a topic, angle, rough idea, or URL. Before drafting,
settle internally:

- **Goal**: Awareness, thought leadership, lead gen, community, announcement,
  opinion?
- **Audience**: Prospects, peers, recruits, partners, or general?
- **Angle**: What is the non-obvious take that makes this worth posting rather
  than filler?
- **Evidence**: Is there a specific story, stat, customer, or moment to anchor
  it? Concrete anchors are what make a post land, so flag it when the user
  hasn't supplied one.

If the brief is very thin (a few words, no angle), ask one clarifying question
first — drafting twice costs more than asking once:

> "Quick question before I draft: is this meant to build [COMPANY_NAME]'s
> thought leadership on [topic], or is there a specific story / moment /
> customer angle you want to anchor it to?"

---

## Step 4 — Draft two variants

Produce **two variants**, both in [COMPANY_NAME]'s extracted voice. Two lets
the user choose a direction instead of critiquing a single draft.

### Variant A — Hook-led / insight-first
Opens with the sharpest statement, stat, or provocation and reaches the point
in line 1; the rest supports or expands it. Suits opinion pieces, contrarian
takes, industry observations.

### Variant B — Story-led / scene-first
Opens inside a moment, conversation, or situation, with the insight landing at
the end. Suits customer stories, team moments, "we learned this the hard way"
posts.

**Match the reference for each variant:**

- Line break density — don't default to dense paragraphs if their posts are
  staccato, or vice versa.
- Emoji frequency and placement.
- CTA style — if [COMPANY_NAME] never hard-sells, a "DM us" closer breaks the
  voice; only add one if the sample shows it.
- Hashtag count and placement.
- The language(s) they post in, unless the user asks for another.
- Their typical length range from Step 2.

---

## Step 5 — Visual brief (optional, on by default)

After the drafts, add a short visual brief that can go straight to a designer
or into an image generation tool:

```
🎨 Visual brief

Format: [square / landscape / portrait — match LinkedIn norms]
Style: [photography / illustration / data visual / screenshot / etc.]
Mood: [adjectives — e.g. "clean, optimistic, technical"]
Main element: [what should dominate the frame]
Text overlay: [suggested 3–8 word headline to overlay, if any]
What to avoid: [clichés this topic attracts — e.g. "no stock handshake photos"]

Image prompt (copy-paste ready):
"[full prompt]"
```

Make the image prompt specific about style, composition, subject, lighting and
mood; a generic prompt produces generic stock-looking output.

If a visual would feel bolted on (pure opinion piece, personal reflection),
say so and skip the brief.

---

## Step 6 — Show your work briefly

Lead with 2–3 lines before the drafts:
- Which style signals you're matching from the loaded posts.
- Which angle you're leading with, and why.

This lets the user course-correct before reading two full drafts.

---

## After drafting

- Offer to iterate: "Want me to sharpen the hook, change the angle, or try a
  different format?"
- Produce a third variant or a specific format (carousel, poll, video script)
  on request.
- Don't save drafts to Notion — save-notion is for research briefs, and drafts
  aren't research. Only save if the user explicitly asks.
- If the user says they published it, offer to scrape it into the Insaight DB
  so it joins the style reference for next time.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [spirosbax](https://github.com/spirosbax)
- **Source:** [spirosbax/insaight](https://github.com/spirosbax/insaight)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-spirosbax-insaight-draft-post
- Seller: https://agentstack.voostack.com/s/spirosbax
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
