FollowUp — AI Recruiter Email SaaS
Interactive — try clicking around
TL;DR

Designed, built, and shipped a solo AI SaaS for recruiter follow-up emails. Then killed it and repackaged the underlying system based on what real users actually needed.

FollowUp is an AI tool that drafts follow-up emails to recruiters after job seekers apply. I designed and shipped it solo as a paid SaaS, ran it for four months, and used what I learned from real users to make a hard call about what the artifact should actually be.

The product came out of my own job search. I had been manually finding recruiters and emailing them after applying to roles, and it was working. So I productized the slice I thought was the hardest part: writing the email. After watching 21 users churn through it and talking directly to several of them, I learned the email isn't the hard part. The system underneath it is. So I killed the SaaS and repackaged the underlying automation as a $29.99 installable stack people run in their own Claude + Cowork setup.

Impact

21 (1 paid)
Signups
89
Emails Generated
194
Recruiter Emails Found
Timeline
4 months live (build to pivot)
Role
Solo founder, designer, engineer
Live Prototype
Open ↗
🎯Strategy

What drove the build

This started as a manual practice in my own job search. After applying to a role, I would find the recruiter on LinkedIn or the company site, look up their email through Hunter.io, and send a short, specific note explaining why I was a good fit. It was the single thing in my search that consistently got responses. The other thing that worked was being one of the first 200 applicants. Everything else (networking, posting, referrals) was slower.

The problem was time. Doing this well per application took 20 to 30 minutes. I was running freelance and consulting work in parallel and could not keep up.

I had been getting more comfortable with vibe coding and saw a small, sharp niche: not many people were doing recruiter outreach this way, no job tracking platform offered it, and most job seekers did not know how to find recruiter emails in the first place. So I productized the slice and shipped it.

Goals, Frustrations, and Audience

Goals

  • Productize a manual practice that was already working in my own search
  • Help job seekers stand out without giving up 30 minutes per application
  • Ship something real and paid in weeks, not months
  • Learn end-to-end vibe-coded delivery on a low-risk, well-defined problem

User Frustrations

  • Most applications disappear into ATS black holes with no human eyes ever touching them
  • Writing thoughtful follow-ups repeatedly is mentally draining
  • Generic templates feel robotic and hurt credibility
  • Finding the right recruiter or hiring manager is the hardest, most time-consuming part of the workflow
  • Most job tracking platforms ignore follow-up entirely

Personas

  • Active job seekers competing in saturated applicant pools where standing out matters more than ever
  • Tech-adjacent searchers who already use ChatGPT and want a faster, more focused workflow
  • Me, originally. I built it for myself first, which kept the framing honest
🧪Process

How it actually played out

01

Started from lived experience

The product hypothesis was not abstract. I had been doing this manually for months and knew which steps were brittle and which ones mattered. The hardest part of the workflow was finding the recruiter. The most time-consuming part was writing a personalized email that did not sound like a template. The product targeted both.

I deliberately aimed at recruiters rather than hiring managers. In my experience, hiring managers were busier, replied less often, and occasionally felt the outreach was too direct. Recruiters were used to being emailed by applicants and often appreciated it. Reaching out to a hiring manager directly is a higher-ceiling play in theory, but in practice they almost always pass the email back to a recruiter anyway. So the product matched the path that was actually working.

Before and after: manual workflow vs. product solution
Designed and built solo
02

Designed and built solo

Stack: Cloudflare Workers + Hono + Stripe, deployed on Mocha, originally on OpenAI's GPT-4o-mini and later migrated to Claude Haiku 4.5. Onboarding asked for writing samples, a background summary, and target role criteria. The core flow: paste a job description, get a personalized recruiter follow-up draft in about 30 seconds.

Key product decisions made early:

  • AI assists, never auto-sends. Drafts go to the user for review, not to anyone's inbox
  • Copy-paste workflow over Gmail OAuth. The integration cost was not worth the trust ceiling
  • Per-email cost discipline. Hunter.io lookups and AI generation are both real per-use costs
03

Shipped and listened

Soft launch via a LinkedIn post. About 20 users signed up over the next several weeks. Most fell off after the trial. One paid.

I designed and sent an 11-question survey to past users. Zero responses. Surveys from a stranger asking "why did you churn" do not get answered, even with founder-voice copy.

What worked: reaching out to people directly on LinkedIn, where I had originally posted. Five or six users replied. The feedback was consistent and useful.

Shipped and listened
Pivoted on evidence
04

Pivoted on evidence

After enough conversations and enough watching of usage data, the call to kill the SaaS got obvious. The same insights that pushed me to repackage the system were the ones that confirmed the SaaS was solving the wrong slice of the problem.

What I learned

1

Subscription pricing fights the natural arc of a job search

A job search has a clear endpoint. People sign up, apply for a few weeks, and either get a job or stop actively searching. Either way, the relationship with the product ends.

Monthly subscriptions create built-in churn no product improvement can fully solve. A one-time sprint price ($29 to $49 for 90 days) maps to how job searches actually work and removes the "should I cancel this?" anxiety that makes people disengage even before they would otherwise.

2

The email is not the hard part. The system underneath it is.

The conversations I had with users surfaced a pattern. "I already use ChatGPT for this." "I expected it to remind me when to follow up." "I wanted it to find the hiring manager's email for me." None of those are wrong.

All of them point to the same thing: the user does not need help writing a single email. They need help finding roles fast enough to be early, knowing who to contact, knowing when to follow up, and not letting any of it slip while they are also trying to live their life. The follow-up email is the visible artifact. The system around it is the actual work.

3

Multi-tenant personalization has a real quality ceiling

In parallel, I had been refining a personal version of the same workflow inside Claude Cowork. It produced significantly better emails than the SaaS, even though they were the same idea.

The difference was depth of context: hardcoded background, an opinionated voice profile, full job descriptions, and a robust set of skill files refined over weeks. The multi-tenant SaaS could not easily replicate that for arbitrary users with limited inputs.

There is a real ceiling on how personalized a generic prompt can be when each user provides three writing samples and a 200-character background.

💡Solution

What I shipped: FollowUp

A focused, opinionated SaaS that did one thing.

  • Onboarding asked for writing samples, a background summary, and role criteria
  • Email generation took a pasted job description and returned a personalized recruiter draft
  • Drafts stayed in-app. The user copied, edited, and sent themselves
  • Stripe billing with a free trial and a $9/month Pro tier
  • Migrated mid-flight from OpenAI to Claude Haiku, both for output quality and for cost control
FollowUp homepage
Pricing page

Pricing

Profile setup

Profile setup

Onboarding: Welcome

Onboarding — Welcome

Onboarding: About you

Onboarding — About you

Onboarding: Your voice

Onboarding — Your voice

Setup complete

Setup complete

Dashboard — empty state

Dashboard — empty state

Job details — contacts found

Job details — contacts found

What I shipped instead: the Job Search Stack

The artifact that actually worked was the personal Cowork-based system I had built for myself in parallel. After confirming it worked for someone other than me (a friend tried it last week and reported it saved a significant amount of time and was already running cleanly), I packaged it for sale.

What's in the stack:

  • A Google Sheet template wired to Apps Scripts for dedup and queue management
  • A Cowork skill that scrapes Jobright 4 times a day, filtered to your role criteria
  • A Cowork skill that scrapes ATS boards (Greenhouse, Lever, Ashby, Workday) on the same schedule
  • A Cowork skill that pre-opens queued job tabs every morning for human-in-the-loop review and apply
  • A Cowork skill that catches application confirmation emails, finds the recruiter through Hunter.io, drafts a personalized email using a voice profile and resource file, and saves it to Gmail drafts
  • Setup instructions, troubleshooting notes, and a search criteria template

Pricing: $29.99 one-time. Distribution is the next problem to solve.

Job Search Stack diagram
Outcome

What I measured

Usage data, cost data, and direct user conversations.

Usage: 37 emails generated, 78 recruiter emails found, 21 signups, 1 paid conversion, 4 months live
Cost data: Per-generation cost across both OpenAI and Anthropic models, Hunter.io lookup spend, infrastructure cost on Cloudflare Workers and Mocha
Conversations: Five to six direct LinkedIn DMs with past users after the formal survey returned zero responses

What users actually told me

"I already use ChatGPT for this."

"I expected it to remind me when to follow up."

"I wanted it to find the hiring manager's email for me."

"I stopped looking for jobs for a while."

These are the kind of responses you cannot get from a survey. They came from honest one-on-one conversations with people who had no reason to be polite.

Results and reflection

The honest version: the SaaS did not work as a business. 21 signups, 1 paid, $18 in revenue across 4 months. But the underlying system did work, when used as intended. The personal Cowork-based version generates emails I am happy to send and runs reliably enough that my own job search has become something I check in on rather than something I have to remember to do.

The lesson I will carry into every future build is to validate the artifact, not just the idea. I had a working manual practice. I productized one slice of it without testing whether that slice was the part users would pay for. They didn't. They wanted help with the system that surrounded the email.

The pivot to an installable stack solves three problems at once. It matches the actual shape of the user's need (the whole workflow, not one step). It removes the multi-tenant personalization ceiling (the user supplies their own context, deeply). And it sidesteps the structural subscription churn problem (one-time price, no ongoing relationship to manage).

What's next

Distribution: figure out where this sells. Direct on LinkedIn, a simple landing page, a marketplace, or some combination

Audience: the buyer is technical enough to set up Cowork, Google Sheets, and Apps Scripts. That narrows the market but probably sharpens it

Productization: a small amount of polish on the setup experience and a one-pager that explains the daily routine clearly

The subscription product taught me what the actual artifact should be. The next thing to figure out is whether I can sell it.

Want to know how any specific piece works? Get in touch.