Built by me, for me

The pipeline tool Skool forgot to build.

AutoSkool is the internal system I built to actually run Freedom Stack — a real CRM pipeline for my members, segment messaging, and scheduled posts, sitting on top of Skool's own (very limited) admin.

Why it exists

Skool tells you who joined. Not where they are.

Skool's native admin gives you a member list, a CSV export, and 1:1 chat. That's it. No way to see who's new, who's engaged, who's about to churn, or who's ready to be upsold — and no way to message more than one person without doing it by hand, one at a time.

There's a paid tool that does some of this ("Skool on Easy Mode" and similar), but it's built to resell to hundreds of communities. I only run one — Freedom Stack. Paying a monthly SaaS fee for a multi-tenant tool to manage a single community never made sense, so I built the exact piece I needed instead.

THE PROBLEM

No funnel view. No segment messaging. No post-scheduling. Just a flat member list.

THE FIX

AutoSkool layers a real pipeline, bulk messaging, and scheduling on top — talking to Skool exactly like I would.

What it does

Three jobs, one dashboard.

How I actually use it

A normal week running Freedom Stack.

I open the dashboard, not Skool's admin. New members land in the pipeline automatically after each sync. As I chat with people or notice activity, I drag them along the flow:

New Engaged At Risk Churned

Chat activity is also synced automatically — if someone's gone quiet for 30+ days after I last messaged them, they get flagged At Risk on their own, no manual review needed. When that stage fills up, I queue one message to the whole segment instead of chasing each person individually. Community posts (challenges, announcements, prompts) get written in a batch and scheduled out for the week, so the feed stays active even on days I'm not online.

Under the hood

How it's actually built.

Skool doesn't expose a public API for messaging or posting — there's no endpoint to reverse-engineer, chat runs over a websocket, not plain HTTP. So instead of fighting that, AutoSkool drives a real, logged-in Skool browser tab exactly the way I would by hand.

Web dashboard

Where I actually work — the pipeline board, message composer, and post scheduler. Reads and writes to a Supabase database, which is the source of truth for everything (not Skool itself).

Chrome extension

Runs quietly in the background of a real Chrome tab logged into Skool. Every 5 minutes it checks Supabase for anything queued — messages to send, posts due to publish — and drives the actual Skool UI to do it, the same clicks and keystrokes a human would make.

Confirm once, unattended after

I approve the specific recipients and message (or the post and its schedule) once, at the moment I queue it. After that, dispatch is fully automatic — no second manual trigger, no babysitting a send button.

Chrome Extension (MV3) Supabase React Skool.com

Curious what running Freedom Stack looks like day to day?

Come see the pipeline, the community, and everything else I build for it from the inside.

Join Freedom Stack →