Field Note #5: Cross-posting was easy. Closing the performance loop was not.

Teedian content ops engine — brief, draft, review, cross-post with canonical discipline, performance feedback. The stage everyone skips is the one that matters most.

Subject
Teedian content ops engine
Industry
Founder-led / editorial team 3-20
Stack
Notion as source-of-truth, Claude as co-editor, Make.com cross-poster, Resend for performance digest

The case

A 5-20 person editorial team runs a calendar across a blog, LinkedIn, a newsletter, and two or three syndication destinations. Every piece needs a briefing, a draft, one or two review passes, publishing, and cross-posting with canonical links pointed at the right URL. Then someone has to check reach and engagement next week so the calendar can adjust.

Most teams do this with a Notion database, a shared inbox, Slack threads, and a Google Sheet for metrics. The cross-posting gets automated first. The performance feedback loop never closes. The calendar ships volume; nothing learns from what shipped.

The numbers

MetricBeforeAfter
Brief → published cross-post (median)~1 day~3 hours
Canonical-link integrity across syndications~40%100%
48h engagement data logged back to brief0%100%
30d SEO data logged back to brief0%~85%
Articles refreshed based on 30d data0/quarter4-6/quarter
Make.com ops/month (live calendar)~600 (free tier easily holds it)

What worked

  • Notion as source of truth, AI as co-editor. Brief and draft live in Notion. Claude reviews the outline (scores it, flags weak sections, suggests internal links). No AI-only drafts.
  • Canonical-link contract baked into the cross-post job. Per platform, the job knows where to set rel=canonical: Dev.to frontmatter, Hashnode metadata sidebar, Medium “Import a story”, LinkedIn first-comment link with UTM. Not a checklist someone might forget — code that fails if it can’t set it.
  • Three feedback checkpoints, not one dashboard. 48h measures headline + hook. 7d measures organic pickup. 30d measures SEO maturation. Different signals, different actions.
  • Per-platform format renderers, not one-size-fits-all. LinkedIn gets Unicode-formatted text (no markdown). Medium gets HTML clipboard (not markdown — Medium misparses headings). Dev.to gets markdown direct, slug-hash stripped. Newsletter gets rendered HTML, not source.

What failed

  • AI-only drafts. Two pieces in week 2 read like obvious AI output. Engagement on those two was half of human-written pieces. Backed off; Claude stays in review-only.
  • Letting Make.com handle canonical without a contract. First implementation set canonical-URL via Make.com module fields. One missed config and Medium ranked instead of the canonical home for three weeks. Now the job fails the publish step if canonical can’t be set.
  • A single engagement metric. Tried “weighted engagement score.” LinkedIn comments weigh different from Dev.to reactions weigh different from newsletter clicks. Stopped aggregating, started reporting per-platform deltas back to the brief.
  • 30d feedback that lived only in a dashboard. Nobody looked at it. Moved 30d signals into a Friday email digest that pings the editor with “these 3 articles are below CTR threshold, refresh candidate.”

The architecture

Notion brief (DB row)
   │ AI co-editor scores outline; flags weak sections
   ▼
Markdown draft (in Notion or VS Code)
   │ Style-check bot enforces brand rules
   ▼
Review (PR-style approvals — no meetings)
   │
   ▼
Publish canonical (Hugo / Astro / wherever home lives)
   │ → sitemap regen → gsc-nudge → Bing IndexNow
   ▼
Cross-post job (Make.com / n8n)
   │ Per platform: format + rel=canonical contract
   │ Fails the step if canonical cannot be set
   ▼
LinkedIn / Dev.to / Hashnode / Medium / Newsletter
   │
   ▼
Performance pull (48h, 7d, 30d) ─────► Logged back into Notion
   │                                    │
   │                                    └──► Feeds next brief
   ▼
Friday digest (Resend → editor inbox)
   • 48h: which headlines worked
   • 7d: which topics got organic pickup
   • 30d: refresh candidates (impressions up, CTR down)

Next-step checklist

  • Pick the canonical home. Only one URL should rank.
  • Codify the per-platform format renderers. LinkedIn = Unicode, Medium = HTML, Dev.to = markdown, X = thread shape.
  • Build the cross-post job with a hard fail on missing canonical. Not a warning — a fail.
  • Instrument 48h / 7d / 30d performance pulls. Per platform.
  • Loop the data back into the brief — not a dashboard, an email digest the editor reads.
  • Refresh 4-6 articles per quarter based on 30d data. Update content, regenerate sitemap, re-ping search engines.
  • Keep humans in the draft. AI is a reviewer, not a writer.

Free workflow map: Content Ops Automation Map. Per-article punchlist: Notion Publishing Checklist. Full guide: Teedian AI Content Engine.


That’s the last of the five. Subscribers who made it through have seen one of every shape — compliance, RevOps, engineering, executive, founder. If a specific shape matches what you’re building right now, tell me about it and I’ll scope it.

Does this shape match what you're building?

If you want me to scope a similar system for you — I respond in 24 hours.

Request a scope