MarketingRuns daily
Octolens+Linear

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.

MCP server URL
https://app.octolens.com/api/mcp/v2

2. 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.

Instruction + full playbook
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
Mentions come from every platform Octolens monitors:RedditRedditX (Twitter)X (Twitter)LinkedInLinkedInHacker NewsHacker NewsGitHubGitHubYouTubeYouTubeBlueskyBlueskyStack OverflowStack OverflowTikTokTikTokDEV.toDEV.toNewsNewsNewslettersNewslettersPodcastsPodcastsWebWeb

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

PlaceholderRequiredDescriptionExample
{YOUR_NAME}RequiredWho the drafts are written forJane Doe
{PRODUCT_NAME}RequiredYour product, woven in naturally — never the focusAcme
{GOAL}RequiredWhat the posts should achievebuild an audience of devtools founders who trust me on social listening
{LINKEDIN_PROFILE_URL}RequiredYour profile, used to sync post history by authorhttps://linkedin.com/in/janedoe
{CONTEXT_FOLDER}RequiredFolder 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}RequiredYour voice rules, generated from the interview transcript plus past posts — and appended to as you give feedbackPlain sentences, one number per post, no em dashes...
{USED_UP_MATERIAL}OptionalStats and stories you've already posted repeatedlythe 5x revenue story, the MCP conversion stat

How your agent runs it

  1. 1

    Read the standing contextBrand voice, ICP, product, personal background, the interview transcript, and full post history — kept fresh by you, read every run.

    read_file
  2. 2

    Sync your post historyYour 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. 3

    Pull fresh materialMeeting notes first (anonymized), then an industry scan for live discussions and competitor moves, then Linear for what actually shipped.

    list_meetingslist_mentionslist_issues
  4. 4

    Check for repetitionRecent outputs and posts are off-limits: no reused topic, stat, story, or hook shape without a stated new angle.

  5. 5

    Draft three postsThe material decides the shape. At least two grounded in today's pulls; each with hook, creative suggestion, source, and predicted engagement.

  6. 6

    Voice and de-slop passes, then deliverDrafts 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 URL
  • list_mentionsOctolens MCPIndustry scan: category, competitor, and insight mentions from the last few days
  • list_meetingsGranola MCPRecent call notes and transcripts — the highest-priority source
  • list_issuesLinear MCPWhat shipped, broke, or got cut this week
  • read_fileYour MCP clientStanding context files: voice, ICP, product, transcript, post history
  • write_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.

Three LinkedIn drafts every morning — playbook
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.
7-day free trial

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