cxj labs

CXJ Labs · Autopilot

Content on autopilot — the actual setup

The five steps from the reel, with the real tools and the parts nobody tells you. This is the loop I run on my own account. Nothing here is theoretical.

Download the Claude Code skill (.zip)
01YOU

Connect it to Meta

Meta will tell you, for free, how any public Business or Creator account is performing. The endpoint is called Business Discovery.

graph.facebook.com/v21.0/{your-ig-id}
  ?fields=business_discovery.username(THEM){
    media{ like_count, comments_count, caption, timestamp }
  }

Give it a competitor's handle, get their recent posts back with the engagement on each.

The bit that trips people up: you need a long-lived token, and the account you query has to be a Business or Creator account too. Personal accounts return nothing and no error worth reading.

Point it at 10–20 accounts in your niche. That's your intake.

02IT

Pull what actually performed

This is where almost everyone gets it wrong, and it's the difference between the loop working and producing slop.

Do not sort by likes. A big account's bad post beats a small account's best post, so a raw leaderboard just ranks follower counts.

Instead: for each account, compute that account's own median, then keep only the posts that beat it. A 400-like post from an account whose median is 90 is a genuine outlier and worth studying. A 4,000-like post from an account whose median is 6,000 is a failure wearing a big number.

You want outliers relative to the account, not to the internet.

03IT

Work out why they work

Feed each surviving post to an LLM and ask one question: what are the 2–4 discrete moves this post makes?

Not “what is it about”. The moves. Opens on a number. Names an enemy in line two. Withholds the mechanism until slide four. That kind of thing.

The rule that makes this work: copy the mechanism, never the subject. Swapping someone else's nouns for yours is find-and-replace, and it reads like it. What transfers between accounts is structure. What doesn't transfer is the topic.

Keep the how and the what in separate buckets. They come from different places and get recombined later.

04IT

Rewrite it in your voice

Two things make the output sound like a person.

Write two structurally different takes, not two drafts. Same hook, genuinely different shapes. One will be obviously better, and you'll only know which by seeing both. A single draft has nothing to lose to.

Then run a humaniser pass against a voice profile — a document holding how you actually write: your sentence lengths, the words you never use, the punctuation you favour. Without it every output converges on the same competent, weightless register.

Feed it your own best posts. The profile is the asset, not the prompt.

05IT

Post it, then read the numbers back

Post natively. Record the permalink.

Then check at 24 hours, 72 hours, and 7 days — three checkpoints, because a post that looks flat at 24h is often still climbing.

Track non-follower reach first, above likes and above follows. It's the only number that tells you the algorithm is showing you to people who don't already know you. Likes from people who already follow you are a lagging measure of last month's work.

Those numbers feed step 2 next cycle. That's what closes the loop.

Then it does it again tomorrow

Steps 1, 2 and 3 can run unattended overnight. You wake up to evidence rather than a blank page, which is the actual unlock — the expensive part of content was never the writing, it was deciding what to write about.

One honest note, because you'll hit it. I keep three human decision points in my own version: what's worth making, which hooks live, and final approval before it posts. Not because the machine can't decide — because nothing generative should run before a person has looked, or you spend real money producing something you were always going to bin. Three decisions a day, maybe ten minutes total. Everything either side of them is automatic.

Anyone who tells you their content runs fully unattended is either not looking at the output or not paying for it.

Built this because I run a business, not a content team.

@CXJ_Labs