Last Monday I wrote about WHY the founding cohort is hand-curated instead of auto-issued. Today is the HOW: the actual approval flow, because "hand-curated" without a system is just procrastination with extra steps.
The data flow, end-to-end: A waitlist signup hits the API and lands as a row in the database, then drip Email 1 fires automatically. During my weekly review I look at who engaged (opens, clicks, and better still, a reply) and walk those rows through a four-item checklist. When approving, I run one command: npm run invite:approve along with their email. That fires the invite email with a unique code, and when they can sign up, founding_cohort = true lands on their account. That flag is what the 40%-for-life discount and the Phase-2 conversion logic key off later.
I will be honest about one thing before going further: right now "weekly review" is more aspiration than habit. Direct reply volume is still low. I just flushed out the cold campaigns, so I expect engagement to ramp and the cadence to set in as real traffic accumulates. The machine is built; the rhythm around it is still forming.
The checklist I actually walk through, per application:
MRR fit: Are they at $5-50k subscription revenue? Sources: the signup form, LinkedIn, the company website. If I can't verify that, I ask in a reply email instead of guessing.
Engagement: Did they reply to Email 1 or 2 with substance? A one-line "yes please" is borderline. A specific question about their decline codes is a clear pass.
Stripe-using: Is there real evidence they run Stripe? Without evidence/confirmation they stay on the GA waitlist.
Founder availability: Did they confirm 15 minutes for a 1:1 call? This one is really important, because the feedback loop is the whole point of the cohort.
The decision rule: all four pass means approve. One soft fail means a clarifying email, and two fails means soft-reject - they keep their waitlist spot for GA, they just don't get a founding seat.
The non-obvious part, and honestly the one I'd recommend hardest: I write a 2-3 line note on every decision for approvals AND rejections. Future-me needs to remember why row 41 got a clarifying email while row 42 got a seat. Beyond the MRR and churn numbers, I write down whether the operator seems open to actually getting into their product and business with me. If they are up for that kind of conversation, it tips a borderline call, because that openness is the clearest sign they will give me the real, direct feedback this cohort exists for. A real note reads something like: "$14k MRR Stripe SaaS, asked a sharp question about insufficient_funds vs card_declined retries, said yes to a call, clearly up for a deeper product conversation. Approve." Without written reasons, the logic decays into vibes within a few weeks.
What I'm not doing yet: numeric scoring. It's pass/fail per criterion. If approval volume gets uncomfortable, a 1-3 scale per criterion is the fallback, but I'd rather not add machinery before the volume demands it.
Full honesty on where I expect this to break first: the 1:1 call. It takes the most manual time per operator, and it is also the biggest driver of a good relationship, so losing it stings. As volume grows it is the first thing that falls off, but I may keep doing it for operators who are big or interesting enough, and find a lighter path for the rest. The check I call non-negotiable today is the one I will probably have to ration first. And wave-1 invites go out next Monday, June 29. That's this flow's first contact with reality, and I expect edge cases the checklist wasn't designed for. I'll report what breaks.
If you want one of the 30 founding seats, the waitlist is open at recoverstack.dev/early-access: $5-50k MRR Stripe SaaS, free through July 31, then 40% off list for life. Now that you've seen the checklist, a reply with your actual decline-code pain is exactly what moves a flagged row to approve.
If you've run an application-gated beta or cohort, what's the one check you added after launch that you wish you'd had on day one?