IntentShift - NLP Exit Intent Classifier for SaaS Cancellation Flows
Most SaaS cancellation surveys are graveyards of checkbox data nobody reads. IntentShift uses NLP to classify open-text cancellation reasons into actionable churn drivers with confidence scores, then triggers the right retention playbook automatically.
Difficulty
intermediate
Category
NLP & Text AI
Market Demand
High
Revenue Score
8/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
🏆 7/10
What is it?
SaaS founders lose customers every week and have no idea why because their cancellation surveys produce raw text that never gets analyzed. IntentShift ingests cancellation survey responses via webhook or CSV, classifies each into a structured churn taxonomy (price sensitivity, missing feature, competitor switch, lifecycle end, support failure), and surfaces the top three drivers in a weekly digest. When a high-confidence price-sensitivity signal is detected, it can fire a Stripe coupon or a Slack alert to the founder. Built on a fine-tuned zero-shot classification model via HuggingFace Inference API, no GPU required. Shippable in two weeks by a solo developer.
Why now?
HuggingFace Inference API made zero-shot classification cheap enough for indie products in 2025, and the April 2026 vibe-coding wave means more solo SaaS founders than ever are shipping fast and losing customers without knowing why.
Target Audience
Solo SaaS founders and small product teams with 50+ monthly churns — estimated 80k indie SaaS products on the market with this exact gap.
User Stories
- ▸As a solo SaaS founder, I want my cancellation survey responses auto-classified by churn reason, so that I stop guessing why users leave.
- ▸As a product manager, I want a weekly email digest of my top churn drivers ranked by frequency, so that I can prioritize roadmap fixes.
- ▸As a growth-focused founder, I want IntentShift to automatically apply a Stripe discount when a cancellation is classified as price-sensitive, so that I recover customers without manual intervention.
Acceptance Criteria
Classification: done when a webhook payload with free-text cancellation reason returns a taxonomy label and confidence score in under 3 seconds. Dashboard: done when churn driver distribution chart loads with real data in under 2 seconds. Digest: done when weekly email correctly lists top 3 churn drivers with counts. Automation: done when a price-sensitivity label above 0.8 confidence triggers a Stripe coupon without manual action.
Is it worth building?
$29/month x 60 customers = $1,740 MRR at month 3. $79/month x 50 customers + $29/month x 100 customers = $6,850 MRR at month 8. Assumes 4% conversion from r/SaaS cold outreach.
Unit Economics
CAC: $15 via IndieHackers outreach. LTV: $348 (12 months at $29/month). Payback: 1 month. Gross margin: 88%.
Business Model
SaaS subscription ($29/month for up to 500 classifications, $79/month for unlimited)
Monetization Path
Free tier: 50 lifetime classifications. Paid plans unlock volume and Slack/Stripe automation triggers.
Revenue Timeline
First dollar: week 3 via beta upgrade. $1k MRR: month 3. $5k MRR: month 7.
Estimated Monthly Cost
HuggingFace Inference API: $30, Vercel: $20, Supabase: $25, Resend: $10, Stripe fees: ~$20. Total: ~$105/month at launch.
Success Metrics
Week 2: 10 beta accounts with live webhook data. Month 2: 40 paid accounts. Month 3: 85% retention rate.
Launch & Validation Plan
DM 30 indie SaaS founders on X offering free CSV classification of their last 100 cancellations in exchange for a 15-minute feedback call.
Customer Acquisition Strategy
First customer: reply to founders posting churn complaints on r/SaaS and r/indiehackers offering to classify their last 50 cancellations for free via CSV upload. Ongoing: IndieHackers weekly newsletter sponsorship at $200/issue, ProductHunt, cold DMs on X.
What's the competition?
Competition Level
Medium
Similar Products
Baremetrics tracks churn metrics but ignores qualitative signals. ChurnKey handles cancellation UX but does no NLP. Intercom can tag conversations manually — none auto-classify open-text churn reasons.
Competitive Advantage
Zero-shot NLP means no training data required per customer, Stripe coupon automation closes the loop that Baremetrics and ChurnKey ignore.
Regulatory Risks
Low regulatory risk. GDPR: end-user cancellation text may contain PII — provide data deletion API and document retention policy.
What's the roadmap?
Feature Roadmap
V1 (launch): webhook ingest, CSV import, zero-shot classification, weekly digest email. V2 (month 2-3): Slack alerts, Stripe coupon automation, trend charts. V3 (month 4+): custom taxonomy fine-tuning, Intercom integration, team seats.
Milestone Plan
Phase 1 (Week 1-2): classification pipeline working, dashboard live, CSV import done. Phase 2 (Week 3-4): Stripe billing, webhook endpoint, Resend digest, beta users. Phase 3 (Month 2): Slack automation, 40 paid accounts, retention loop proven.
How do you build it?
Tech Stack
Next.js, HuggingFace Inference API (zero-shot classification), Supabase, Stripe, Resend, Python FastAPI for classification microservice — build with Cursor for all backend routes.
Suggested Frameworks
HuggingFace Transformers (zero-shot), FastAPI, LangChain
Time to Ship
2 weeks
MVP Scope
pages/api/classify.ts, pages/api/webhook.ts, lib/huggingface.ts, lib/churnTaxonomy.ts, pages/dashboard.tsx, pages/api/digest.ts, components/ChurnDriverChart.tsx, supabase/schema.sql, scripts/csvImport.ts.
Core User Journey
Connect webhook or upload CSV -> classifications appear in dashboard in under 60 seconds -> weekly digest email arrives -> click to see top churn driver -> upgrade to enable Slack alerts.
Architecture Pattern
Cancellation survey webhook fires -> Next.js API route -> HuggingFace zero-shot classifier -> taxonomy label + confidence score stored in Supabase -> weekly digest email via Resend -> high-confidence price signal triggers Stripe coupon via API.
Data Model
Account has many SurveyResponses. SurveyResponse has one ChurnLabel, one confidence score, one raw text, and one created_at. Account has one WeeklyDigest schedule.
Integration Points
HuggingFace Inference API for zero-shot NLP classification, Supabase for data storage, Stripe for subscription billing and coupon API, Resend for weekly digest emails, Slack webhook for real-time alerts.
V1 Scope Boundaries
V1 excludes: multi-seat team accounts, custom taxonomy training, Salesforce integration, mobile app, and in-app cancellation widget.
Success Definition
A SaaS founder connects their cancellation webhook, receives a weekly churn driver digest, fires a retention coupon based on an IntentShift signal, and recovers one churned customer without touching code again.
Challenges
The hardest problem is convincing founders to add IntentShift to their cancellation flow before they have churn data — classic cold-start chicken-and-egg. Must offer a CSV import demo with sample data so the value is visible on signup.
Avoid These Pitfalls
Do not build a custom ML training pipeline — zero-shot classification is accurate enough for v1 and saves 6 weeks. Do not over-engineer the taxonomy before testing with real customer data. Finding first 10 paying customers will take longer than building — budget 3x more time on founder community outreach than on classification accuracy tuning.
Security Requirements
Supabase Auth with Google OAuth. RLS on survey_responses table. API key auth for webhook endpoint. Rate limit 100 classifications/min per account. PII scrubbing option on raw text storage.
Infrastructure Plan
Vercel for Next.js. Railway for FastAPI microservice. Supabase for Postgres. GitHub Actions for CI. Sentry for errors. Estimated infra: $50/month at launch.
Performance Targets
200 DAU at peak, 2,000 classifications/day. Classification API under 2s. Dashboard load under 1.5s. No caching needed at launch volume.
Go-Live Checklist
- ☐Security audit complete
- ☐Payment flow tested end-to-end
- ☐Sentry live
- ☐Monitoring dashboard configured
- ☐Custom domain with SSL
- ☐Privacy policy and terms published
- ☐5 beta SaaS founders signed off
- ☐Rollback plan: revert Railway and Vercel deploys
- ☐ProductHunt and IndieHackers launch posts drafted.
How to build it, step by step
1. Run npx create-next-app intentshift --typescript and set up Supabase project. 2. Create FastAPI microservice with HuggingFace zero-shot pipeline using facebook/bart-large-mnli model. 3. Define churn taxonomy labels: price, missing feature, competitor, lifecycle, support. 4. Build pages/api/classify.ts to call FastAPI and store result in Supabase. 5. Build pages/api/webhook.ts to accept survey payloads and queue for classification. 6. Build dashboard with ChurnDriverChart using Recharts showing label distribution over time. 7. Add CSV import script that batch-classifies historical cancellations. 8. Integrate Stripe billing for monthly plan with usage limit enforcement. 9. Build Resend weekly digest that summarizes top three churn drivers with trend arrows. 10. Deploy FastAPI to Railway, Next.js to Vercel, test end-to-end webhook flow.
Generated
April 9, 2026
Model
claude-sonnet-4-6