CodingIdeas.ai
← Back to Ideas

ContractPulse - Vendor Renewal and Health Monitor for Bootstrapped SaaS Teams

Small SaaS teams routinely lose money on zombie vendor contracts because no one owns the renewal calendar. ContractPulse ingests your vendor invoices and emails, surfaces upcoming renewals, flags price drift, and sends Slack alerts 30 days out. It's the CFO dashboard you couldn't afford to hire.

Difficulty

beginner

Category

Business Automation

Market Demand

High

Revenue Score

7/10

Platform

Web App

Vibe Code Friendly

⚡ Yes

Hackathon Score

6/10

What is it?

Bootstrapped SaaS teams with 2-10 people have zero visibility into their vendor spend until the credit card statement arrives with a surprise renewal. ContractPulse lets founders upload PDFs or connect Gmail to auto-extract vendor names, amounts, renewal dates, and contract terms using Claude's document parsing. A dashboard shows all active vendors, upcoming renewals, and month-over-month cost drift. Slack or email alerts fire 30 and 7 days before each renewal. This is not an accounting tool — it's a vendor relationship layer that saves founders the $200/month surprise and the 2-hour scramble to cancel before the next billing cycle. Buildable in 2 weeks with Claude PDF parsing, Supabase, and a Next.js dashboard.

Why now?

Claude's April 2026 document parsing is now reliable enough to extract structured data from messy PDF invoices without fine-tuning, removing the last technical barrier that made this unshippable a year ago.

  • PDF and Gmail invoice ingestion: Claude extracts vendor, amount, renewal date, and terms automatically.
  • Renewal calendar: visual timeline of all upcoming vendor renewals with days-remaining badges.
  • Price drift alerts: flags vendors whose cost increased more than 10% year-over-year.
  • Slack and email alerts: fires 30 and 7 days before each renewal with one-click cancel reminder.

Target Audience

Bootstrapped SaaS founders and ops leads at 2-10 person companies, estimated 400k+ active on IndieHackers and r/SaaS.

Example Use Case

Dan, a solo SaaS founder, uploads 12 vendor invoices in 3 minutes, sees that his Intercom plan renews in 8 days and jumped 40% in price, cancels before being charged, and saves $420 instantly.

User Stories

  • As a bootstrapped SaaS founder, I want to upload all my vendor invoices and see upcoming renewals in one view, so that I never get surprise-charged again. As an ops lead, I want a Slack alert 30 days before each renewal, so that I have time to evaluate whether to cancel or negotiate.
  • As a founder tracking costs, I want to see year-over-year price drift per vendor, so that I can prioritize which contracts to renegotiate.

Acceptance Criteria

Invoice Parsing: done when a PDF upload returns vendor name, amount, and renewal date with over 90% accuracy on standard invoices. Renewal Dashboard: done when all vendors display with days-remaining badges sorted by nearest renewal. Slack Alert: done when a test alert fires to a connected workspace exactly 30 days before a renewal date. Stripe Paywall: done when free users with 6+ vendors are blocked and redirected to checkout successfully.

Is it worth building?

$29/month x 35 users = $1,015 MRR at month 2. $29/month x 175 users = $5,075 MRR at month 7. Math: 3.5% conversion on 5,000 free trial signups via IndieHackers and r/SaaS.

Unit Economics

CAC: $12 via IndieHackers direct outreach. LTV: $261 (9 months at $29/month). Payback: 2 weeks. Gross margin: 87%.

Business Model

SaaS subscription

Monetization Path

Free tier: up to 5 vendors. Paid $29/month: unlimited vendors, Slack alerts, CSV export, price drift analysis.

Revenue Timeline

First dollar: week 2 via beta upgrade. $1k MRR: month 3. $5k MRR: month 8.

Estimated Monthly Cost

Claude API: $30, Vercel: $20, Supabase: $25, Resend: $10, Stripe fees: $10. Total: ~$95/month at launch.

Profit Potential

Part-time viable at $3k–$6k MRR.

Scalability

Medium — can expand to team accounts, AP integration, and a vendor negotiation agent.

Success Metrics

Week 1: 150 signups. Week 2: 20 paid. Month 2: 75% retention.

Launch & Validation Plan

Post a manual vendor audit for a public bootstrapped founder on Twitter, show the savings, link to waitlist, and DM 20 r/SaaS members.

Customer Acquisition Strategy

First customer: DM 15 active IndieHackers members who post about SaaS expenses and offer 3-month free beta in exchange for weekly feedback. Ongoing: Twitter SaaS founder community, r/SaaS, IndieHackers posts, ProductHunt launch.

What's the competition?

Competition Level

Low

Similar Products

Vendr targets enterprise procurement. Paddle Billing is for SaaS revenue not vendor spend. Notion vendor trackers exist but have no automation or alerts — ContractPulse is the only automated version for sub-10-person teams.

Competitive Advantage

No setup required beyond PDF upload — works in 3 minutes vs. hours of spreadsheet setup that competitors like Vendr require.

Regulatory Risks

Low regulatory risk. Financial data stored must follow GDPR data deletion requirements for EU users.

What's the roadmap?

Feature Roadmap

V1 (launch): PDF parsing, renewal dashboard, Slack alerts, price drift flags. V2 (month 2-3): Gmail OAuth auto-import, CSV export, multi-vendor bulk upload. V3 (month 4+): team accounts, vendor negotiation email templates, Zapier integration.

Milestone Plan

Phase 1 (Week 1-2): PDF parsing + dashboard ships, 5 beta users upload real invoices. Phase 2 (Week 3-4): Slack alerts + Stripe billing live, first paid conversion. Phase 3 (Month 2): ProductHunt launch, 35 paid users target.

How do you build it?

Tech Stack

Next.js, Claude API, Supabase, Stripe, Resend, Slack Webhooks — build with Cursor for backend, v0 for dashboard UI

Suggested Frameworks

Supabase JS, Anthropic SDK, pdf-parse

Time to Ship

2 weeks

Required Skills

Claude document parsing, Next.js, Supabase, Slack webhook integration.

Resources

Anthropic PDF parsing docs, Slack incoming webhooks docs, Supabase quickstart.

MVP Scope

pages/dashboard.tsx, pages/vendors/[id].tsx, api/parse-invoice.ts (Claude), api/slack-alert.ts, components/VendorCard.tsx, components/RenewalTimeline.tsx, lib/claude.ts, lib/supabase.ts — all generated with Cursor + v0.

Core User Journey

Upload invoices -> see vendor dashboard in 60 seconds -> receive first renewal alert -> upgrade to paid to unlock Slack integration.

Architecture Pattern

User uploads PDF -> Claude API extracts structured vendor data -> stored in Supabase -> cron job checks renewal dates daily -> Slack webhook fires alert -> dashboard renders live data.

Data Model

User has many Vendors. Vendor has many Invoices. Invoice has one ParsedContract. Vendor has one RenewalAlert schedule.

Integration Points

Claude API for invoice parsing, Supabase for database, Slack Webhooks for alerts, Resend for email alerts, Stripe for payments.

V1 Scope Boundaries

V1 excludes: Gmail OAuth auto-import, AP system integrations, multi-user team accounts, mobile app, vendor negotiation features.

Success Definition

A bootstrapped founder uploads invoices, receives a Slack alert for an upcoming renewal they forgot about, cancels the vendor, and stays subscribed for month two.

Challenges

The hardest non-technical problem is convincing founders that this is worth $29/month when they already have a spreadsheet they never update — the product must deliver an immediate aha moment on first invoice upload or churn is instant.

Avoid These Pitfalls

Do not try to auto-cancel subscriptions on behalf of users — liability nightmare and too much auth complexity for v1. Do not underestimate how bad invoice PDFs look — build a manual override for when Claude mis-parses. First 10 paying customers will come from direct outreach not SEO — do not spend time on blog content before month 3.

Security Requirements

Supabase Auth with Google OAuth, RLS on all user and vendor tables, 60 req/min rate limit per IP, PDF content never logged beyond extraction, GDPR deletion endpoint required.

Infrastructure Plan

Vercel for frontend and API, Supabase for Postgres and auth, Supabase Storage for PDF files, GitHub Actions for CI, Sentry for errors — total infra under $100/month at launch.

Performance Targets

50 DAU and 400 req/day at launch, Claude invoice parsing under 6 seconds per PDF, dashboard load under 2s LCP, static assets via Vercel CDN.

Go-Live Checklist

  • Security audit complete
  • Payment flow tested end-to-end
  • Sentry live
  • Vercel Analytics configured
  • Custom domain with SSL
  • Privacy policy and terms published
  • 5 beta users signed off
  • Rollback plan documented
  • ProductHunt and IndieHackers launch posts drafted.

How to build it, step by step

1. Run npx create-next-app contractpulse --typescript. 2. Install @supabase/supabase-js, @anthropic-ai/sdk, pdf-parse, stripe. 3. Create Supabase tables: users, vendors, invoices, alerts. 4. Build PDF upload endpoint that passes text to Claude for structured extraction. 5. Build vendor dashboard with RenewalTimeline component using v0. 6. Add Supabase cron via pg_cron to check renewals daily. 7. Build Slack webhook alert endpoint. 8. Add Stripe checkout gating the Slack alert feature. 9. Add Resend email fallback for non-Slack users. 10. Deploy to Vercel and test with 5 real invoice PDFs.

Generated

April 11, 2026

Model

claude-sonnet-4-6

← Back to All Ideas