Three LinkedIn drafts every morning
A 7:00 recurring task that drafts three different LinkedIn posts from fresh data — your calls, your tickets, and what your industry said yesterday — in your voice.
Set it up
1. Connect the Octolens MCP — add the server URL in your client and sign in. OAuth, no API key. Per-client instructions · docs. Also connect the Linear MCP and the Granola MCP.
https://app.octolens.com/api/mcp/v22. Hand your agent the playbook — hit Copy below (it grabs the instruction plus the full playbook), fill in the placeholders, and paste it into your agent. Pasting the playbook instead of describing the idea makes the agent run this exact workflow rather than improvise its own.
Set up a recurring task, daily at 7:00, using the playbook below. I am {YOUR_NAME}, building {PRODUCT_NAME}.What it does
- ✓Reads your standing context every run: brand voice, ICP, product, a long personal interview transcript, and your full post history
- ✓Syncs your LinkedIn post history from Octolens by author, deduped — so drafts never repeat what you just posted
- ✓Pulls fresh material from three sources every run: meeting notes (Granola), an industry scan (Octolens), and what shipped (Linear) — everything from private calls anonymized
- ✓Checks the last five outputs and your recent posts so no topic, stat, or hook shape repeats without a new angle
- ✓Drafts three posts that differ in subject, shape, and length — at least two built on something that happened this week, each with hook, creative suggestion, source, and predicted engagement
- ✓Every fact must trace to a tool result or context file from that run — nothing remembered, nothing invented, nothing published
Delivers: Three ready-to-edit LinkedIn drafts in chat every morning — each traceable to fresh data, in your voice, posted by you after an edit.
Inputs
| Placeholder | Required | Description | Example |
|---|---|---|---|
| {YOUR_NAME} | Required | Who the drafts are written for | Jane Doe |
| {PRODUCT_NAME} | Required | Your product, woven in naturally — never the focus | Acme |
| {GOAL} | Required | What the posts should achieve | build an audience of devtools founders who trust me on social listening |
| {LINKEDIN_PROFILE_URL} | Required | Your profile, used to sync post history by author | https://linkedin.com/in/janedoe |
| {CONTEXT_FOLDER} | Required | Folder of standing context files: company, customers, product, personal summary, interview transcript, post history. Have Claude interview you for an hour to create the transcript | ~/claude/content-context |
| {VOICE_RULES} | Required | Your voice rules, generated from the interview transcript plus past posts — and appended to as you give feedback | Plain sentences, one number per post, no em dashes... |
| {USED_UP_MATERIAL} | Optional | Stats and stories you've already posted repeatedly | the 5x revenue story, the MCP conversion stat |
How your agent runs it
- 1
Read the standing context — Brand voice, ICP, product, personal background, the interview transcript, and full post history — kept fresh by you, read every run.
read_file - 2
Sync your post history — Your own LinkedIn posts pulled by author from Octolens, deduped and appended — today's drafts steer clear of your latest post's angles.
list_mentions_by_author - 3
Pull fresh material — Meeting notes first (anonymized), then an industry scan for live discussions and competitor moves, then Linear for what actually shipped.
list_meetingslist_mentionslist_issues - 4
Check for repetition — Recent outputs and posts are off-limits: no reused topic, stat, story, or hook shape without a stated new angle.
- 5
Draft three posts — The material decides the shape. At least two grounded in today's pulls; each with hook, creative suggestion, source, and predicted engagement.
- 6
Voice and de-slop passes, then deliver — Drafts must pass your voice rules and de-slop checks, then land in chat posts-first for a phone read. Nothing is ever published.
write_file
Tools used
list_mentions_by_authorOctolens MCPSync your own LinkedIn post history by profile URLlist_mentionsOctolens MCPIndustry scan: category, competitor, and insight mentions from the last few dayslist_meetingsGranola MCPRecent call notes and transcripts — the highest-priority sourcelist_issuesLinear MCPWhat shipped, broke, or got cut this weekread_fileYour MCP clientStanding context files: voice, ICP, product, transcript, post historywrite_fileYour MCP clientAppend to post history and save the day's drafts file
All 23 Octolens MCP tools are documented on the MCP page and in the docs.
The full playbook
Replace the placeholders, then paste this into your agent as a recurring task.
You generate three daily LinkedIn post drafts for {YOUR_NAME},
building {PRODUCT_NAME}. The posts should {GOAL}. A good day's output is
three different posts, at least two built on something that happened
this week, that {YOUR_NAME} can copy and paste with minimal edits.
Variety comes from the fresh pulls in Step 3 — a lean session that
skips them produces exactly the repetitive drafts this task exists to
prevent.
How to operate: you run unattended at about 7:00. No one is watching
and no one can answer questions mid-run, so never pause to ask
permission and never end on a statement of intent like "I'll now check
the meeting notes". Do the work. Once you have enough fresh material
for three good, different posts, write them instead of pulling more
sources.
Every number, quote, ticket, market reference, and customer detail in a
draft must trace to a tool result from this session or to a context
file you read today. If you cannot point to where a fact came from,
leave it out. If a source is unreachable (MCP down, auth expired), say
so in the output, then dig deeper in the sources that worked. Never
fill the gap with remembered or invented material.
Boundaries: read-only everywhere, with two exceptions — appending to
the post-history file and writing today's file in {CONTEXT_FOLDER}/outputs/.
Never call mutating tools. Never publish or send anything; drafts go in
the output file and the chat message only. Confidentiality: no internal
financials, no unreleased customer names, no names of individuals from
private calls — anonymize ("a prospect asked on a call this week").
Public posts surfaced by the industry scan can be credited by author
and URL.
Step 1 — Read context files (every run):
- {CONTEXT_FOLDER}/company.md — brand voice, positioning
- {CONTEXT_FOLDER}/customers.md — ICP, personas, customer quotes
- {CONTEXT_FOLDER}/product.md — features, use cases, roadmap
- {CONTEXT_FOLDER}/personal-context-summary.md — structured personal
background
- {CONTEXT_FOLDER}/interview-transcript.md — a long interview in
{YOUR_NAME}'s own words; pull exact phrasing for personal posts
- {CONTEXT_FOLDER}/post-history.md — past posts with engagement metrics
Step 2 — Sync the post history from Octolens (every run):
Call list_mentions_by_author with source linkedin and profileUrl
{LINKEDIN_PROFILE_URL}. Keep only posts {YOUR_NAME} wrote themself —
exclude posts about them by others, reposts, and duplicate URL variants
of the same post. Dedupe against the history file: skip anything whose
URL or opening line already appears. Append new posts at the top,
continuing the numbering, and update the total count. If a new post
went up recently, mention it briefly in today's chat message and keep
today's drafts off its angles, numbers, and framing.
Step 3 — Pull fresh material (every source, every run; this is where
variety comes from):
- Granola MCP (meeting notes), highest priority. Scan the last several
days of calls and read transcripts of the most promising ones. Look
for questions prospects keep asking, repeated objections, the exact
phrases customers use for their problem, something surprising someone
said, a decision that was argued about, an unexpected use case.
Anonymize everything from these calls.
- Octolens MCP (industry scan). list_mentions over the last few days:
industry-insight tags, category and competitor keywords,
high-follower authors, podcasts, newsletters. Look for a live
discussion, a surprising claim, a competitor move, a good data point,
or someone being wrong about something {YOUR_NAME} has a view on.
Record the mention URL, author, and platform for the Reference line.
- Linear MCP. Check recently updated projects and issues for what
shipped, broke, got cut, or is being argued about. Prefer a specific
ticket over a general theme.
Step 4 — Check for repetition:
Read the last ~5 files in {CONTEXT_FOLDER}/outputs/ and the top ~10
posts in the history file. Do not reuse a topic, statistic, customer
story, hook shape, or framing that appears there unless today's pull
gives a new angle — and if it does, say in the output what is new.
Treat these as used up: {USED_UP_MATERIAL}.
Step 5 — Draft three posts:
No fixed post types — let the material decide the shape: a customer
story, a reaction to something posted this week, a specific bug, a
personal story, a number that moved, a disagreement, a small
observation, a straight product update. Rules for the set:
- At least two of the three must be built on something pulled today in
Step 3; state which pull.
- The three must differ in subject, shape, and length. A 3–4 line post
alongside a longer one is good.
- Prefer the specific and small over the sweeping: one real question
from one real call beats another broad thesis.
- Weave {PRODUCT_NAME} in naturally, never as the focus. The best
posts barely mention it. Links go in the first comment, never the
body. 1,200–1,500 characters tends to perform, but vary it.
For each post include: (1) the hook — the first line before "see
more"; (2) full post text; (3) creative suggestion (image brief or "no
image needed"); (4) Source — which pull or context material it came
from and why it is not a repeat; (5) predicted engagement
(low/medium/high) with a one-line reason; (6) a Reference line (URL,
author, platform) if it draws on an industry-scan mention.
Step 6 — Voice (non-negotiable; draft in this voice from the first
word):
{VOICE_RULES}
When {YOUR_NAME} gives new voice feedback in chat, append it to this
list in the task instructions.
Step 7 — De-slop check:
If de-slop or humanizer skills are installed, run both passes in order
on all three posts, hooks included. The saved and sent versions must
come out of both passes and still satisfy every rule in Step 6 — if a
pass makes a post choppier or strips a caveat, fix that by hand.
Step 8 — Save and send:
Save to {CONTEXT_FOLDER}/outputs/[YYYY-MM-DD]-linkedin-drafts.md,
opening with a short summary: what each Step 3 source yielded
(including anything that failed and how you compensated) and which
repeats you avoided. Then send the chat message, written for a first
look on a phone: the three full posts first, ready to copy and paste,
then the per-post notes. No working shorthand, no references to tool
calls or reasoning {YOUR_NAME} didn't see, no process narration beyond
one line on sources and any failures.
Never publish anything. Every draft gets a human edit before {YOUR_NAME}
posts it from their own account.More skills
Reply on Reddit without getting banned
Five Reddit threads worth replying to every morning, each with a draft in your voice — built on the guardrails that keep replies helpful instead of salesy.
Write copy in real customer language
Mine six months of mentions for the exact words customers use to describe you, then rewrite your page copy from that vocabulary — with receipts.
Top 5 posts to reply to today
A daily shortlist of the five conversations most worth joining — each with why it matters, the right angle, and a reply draft in a human voice.
Give your agents context on what happens online
API, webhooks, and MCP on every plan. If you're paying us anything, you own your data.
No credit card required · API access on all plans · Cancel anytime