PitchMap — Competitive Pricing and Feature Matrix That Updates Itself So You Stop Losing Deals to Information You Did Not Have
Sales reps lose deals because they had no idea the competitor added a free tier last month. PitchMap monitors competitor pricing pages and feature lists weekly and pushes structured diffs to your Slack or CRM so your pitch deck is never six months behind reality.
Difficulty
intermediate
Category
Sales Enablement
Market Demand
High
Revenue Score
7/10
Platform
Web App
Vibe Code Friendly
No
Hackathon Score
🏆 7/10
What is it?
B2B SaaS founders and sales reps constantly discover competitor changes in the worst possible way — during a sales call. The current workaround is a Notion page someone updates quarterly, which is always wrong. PitchMap runs a weekly spider against a list of competitor URLs, extracts pricing tiers and feature bullets using Claude vision, diffs against last week's snapshot, and sends a structured Slack digest showing exactly what changed and why it matters. At $49-$149/month, it costs less than one lost deal. Built on Playwright for headless browsing, Claude vision for extraction, Supabase for snapshots, and BullMQ for scheduling — shippable in 2 weeks. Unlike generic site monitoring tools, PitchMap understands pricing structure and generates battle-card-ready summaries automatically.
Why now?
Claude vision API can now reliably parse complex pricing page layouts as of mid-2026, making semantic extraction (not just text diff) finally viable at $0.01 per scan — the intelligence gap between generic monitoring tools and what sales teams actually need is now closeable by a solo builder in 2 weeks.
- ▸Playwright spider captures full pricing page HTML and screenshot weekly on schedule (Implementation note: BullMQ job on Upstash Redis queues per-competitor crawl, Playwright runs on Vercel Edge or Railway).
- ▸Claude vision extracts structured pricing tiers (name, price, feature list) from screenshot and compares to last week's Supabase snapshot.
- ▸Slack digest pushed every Monday morning showing only changed items — price changes, new tiers, removed features — in plain English.
- ▸One-click battle card generator that formats competitor comparison as a shareable PDF for sales team.
Target Audience
B2B SaaS founders and sales teams at companies with 2-10 competitors — estimated 50,000+ SaaS companies in the $1M-$20M ARR range actively tracking competitors.
Example Use Case
A SaaS founder tracking 4 competitors adds their pricing URLs on Monday morning. Friday, PitchMap detects that Competitor B quietly dropped their Pro tier price by $30 and added SSO to the free plan. The Slack digest arrives before the next sales call — rep adjusts pitch on the fly and wins the deal.
User Stories
- ▸As a B2B SaaS founder, I want a Slack digest every Monday showing exactly what changed on competitor pricing pages, so that my sales pitch is never based on six-month-old information.
- ▸As a sales rep, I want a one-click battle card showing my product versus three competitors with current pricing, so that I can handle objections in real time without Googling during a call.
- ▸As a product manager, I want to see when a competitor adds a feature we do not have, so that I can prioritize the roadmap before customers start asking about it.
Done When
- ✓Scan: done when adding a competitor URL triggers a Playwright capture and Claude extracts a structured pricing JSON visible in the dashboard within 5 minutes.
- ✓Diff detection: done when a pricing change on a competitor page results in a change entry in the dashboard with a plain-English description of what changed.
- ✓Slack digest: done when the configured Slack channel receives a formatted Monday morning message listing all competitors with changes in the past 7 days.
- ✓Battle card export: done when clicking export generates a downloadable PDF comparing the user's product against all tracked competitors with current pricing and top 5 features per plan.
Is it worth building?
$79/month × 100 companies = $7,900 MRR at month 4. Math: 2,000 cold emails to SaaS founders (sourced from ProductHunt launches) at 3% conversion = 60 trials, 40% trial-to-paid = 24 customers in month 1.
Unit Economics
CAC: $50 via ProductHunt launch and cold email (content and time cost). LTV: $1,422 (18 months at $79/month). Payback: under 1 month. Gross margin: 85%.
Business Model
SaaS subscription
Monetization Path
$49/month solo (5 competitors, weekly scans), $149/month team (20 competitors, daily scans, Slack and CRM push, battle card generator).
Revenue Timeline
First dollar: week 2 (free scan converts to paid). $1k MRR: month 2 (13 customers at $79). $5k MRR: month 5 (65 customers via ProductHunt and cold email). $10k MRR: month 10 (130 customers plus annual plan upsells).
Estimated Monthly Cost
Playwright on Railway ($20/month), Claude vision API (200 scans/week at $0.01 each): $40, Upstash Redis: $10, Supabase: $25, Vercel: $20, Resend: $10, Stripe fees: $25. Total: ~$150/month at 30 customers.
Profit Potential
Sustainable at $5k-$15k MRR. High retention because competitive landscapes change constantly and no one wants to rebuild the tracker.
Scalability
High — expand to G2 and Capterra review monitoring, LinkedIn job posting signals (hiring for sales = funding round), feature announcement blog scraping.
Success Metrics
50 signups in week 1 via ProductHunt. 20 paid by month 1. Weekly scan success rate above 90%. Average 3 change alerts per company per month (proves value).
Launch & Validation Plan
Build a free one-time competitor scan on the landing page — enter a URL and get a structured pricing table in 30 seconds. Count how many people complete it before writing billing code.
Customer Acquisition Strategy
First customer: post the free scan tool on r/SaaS and r/startups, DM the top 10 commenters who mention competitor tracking pain, offer free team plan for 60 days. Ongoing: ProductHunt launch with free scan as hook, cold email to SaaS founders scraped from recent ProductHunt launches, Twitter/X posts showing the weekly diff digest GIF.
What's the competition?
Competition Level
Medium
Similar Products
Visualping detects page changes but sends raw diffs with no intelligence. Kompyte is enterprise-priced ($500+/month). Crayon targets enterprise sales teams at $2k+/month. PitchMap wins on price, intelligence, and SaaS-founder-specific output format.
Competitive Advantage
Claude vision understands pricing structure semantically — not just text change detection. Competitors like Visualping and Hexowatch detect any page change (including cookie banners) with no intelligence. PitchMap extracts meaning and delivers battle-card-ready summaries.
Regulatory Risks
Scraping public pricing pages is legal in most jurisdictions (hiQ v. LinkedIn precedent for public data). Do not scrape login-gated data. GDPR: only store publicly available page content. Terms of service of some sites prohibit scraping — include disclaimer. Low regulatory risk for pricing pages specifically.
What's the roadmap?
Feature Roadmap
V1 (launch): Playwright capture, Claude vision extraction, weekly scan, Slack digest, change feed dashboard. V2 (month 2-3): battle card PDF export, daily scan option, email digest fallback, manual re-scan button. V3 (month 4+): G2 review monitoring, team seats, CRM push to HubSpot and Salesforce, API access.
Milestone Plan
Phase 1 (Week 1-2): Railway Playwright service, Claude extraction, Supabase snapshots, diff logic, dashboard — done when end-to-end scan completes on a real pricing page. Phase 2 (Week 3-4): BullMQ weekly scheduler, Slack digest, Stripe billing, free scan on landing page — done when first paying customer receives a Slack digest with a real detected change. Phase 3 (Month 2): 20 paying customers, ProductHunt launch, battle card export shipped.
How do you build it?
Tech Stack
Next.js, Playwright for headless page capture, Claude API vision for pricing extraction, Supabase for snapshot storage, BullMQ on Upstash Redis for weekly job scheduling, Resend for email digests, Stripe — build with Cursor for Playwright and extraction logic, v0 for dashboard UI.
Suggested Frameworks
Playwright, Claude API vision, BullMQ
Time to Ship
2 weeks
Required Skills
Playwright headless browser, Claude vision API, BullMQ job scheduling, Next.js, Stripe.
Resources
Playwright docs, Claude vision API docs, Upstash Redis and BullMQ docs, Supabase quickstart.
MVP Scope
app/page.tsx (landing with free scan CTA), app/dashboard/page.tsx (competitor list and change feed), app/api/scan/route.ts (triggers Playwright capture and Claude extraction), app/api/competitors/route.ts (CRUD for tracked URLs), app/api/diff/route.ts (snapshot comparison logic), lib/playwright-runner.ts (headless capture on Railway), lib/extract.ts (Claude vision pricing parser), lib/diff.ts (structured diff generator), lib/db/schema.ts (companies, competitors, snapshots, diffs), lib/slack.ts (digest sender), .env.example.
Core User Journey
Sign up -> add 5 competitor URLs -> first scan runs in 5 minutes -> receive Monday Slack digest with structured changes -> upgrade to team plan for battle card export.
Architecture Pattern
User adds competitor URL -> BullMQ schedules weekly Playwright job -> Railway runs headless capture -> screenshot and HTML sent to Claude vision -> structured pricing object extracted -> diff against Supabase snapshot -> Slack digest sent if changes detected -> dashboard updated with change feed.
Data Model
Company has many Competitors. Competitor has many Snapshots (HTML, screenshot URL, extracted pricing JSON, captured_at). Snapshot comparison generates Diff (changed tiers, price changes, added or removed features, created_at). Company has one SlackWebhook.
Integration Points
Playwright on Railway for headless browser capture, Claude vision API for pricing extraction, Upstash Redis and BullMQ for job scheduling, Supabase for snapshot and diff storage, Slack API for weekly digest, Resend for email fallback, Stripe for billing.
V1 Scope Boundaries
V1 excludes: G2 and Capterra review monitoring, LinkedIn job signal tracking, email newsletter monitoring, PDF pricing sheet parsing, API access for customers, custom scan schedules below weekly.
Success Definition
A SaaS founder adds 5 competitor URLs, receives their first Slack digest on Monday with one real pricing change detected, and forwards it to their sales team without any editing.
Challenges
Some pricing pages use JavaScript rendering that Playwright handles but some use aggressive bot detection (Cloudflare) that will block crawls — must handle gracefully with manual fallback. Distribution is the real challenge: SaaS founders are cynical about yet another monitoring tool — lead with a free competitor scan report on the landing page to demonstrate value instantly.
Avoid These Pitfalls
Do not crawl more than once per week per competitor on launch — aggressive crawling triggers bot detection and gets your Railway IP banned. Do not promise 100% uptime on scans — some pricing pages will always block bots, build graceful degradation with manual re-scan button. Do not spend more than 3 days on the extraction prompt before shipping — ship with 80% accuracy and iterate based on real customer complaints.
Security Requirements
Supabase Auth with Google OAuth. RLS on all tables scoped to company_id. Rate limit free scan endpoint to 3 per IP per day via Upstash Redis. Input validate all URLs before queuing Playwright jobs. No sensitive data stored — only public page content.
Infrastructure Plan
Vercel for Next.js dashboard and API routes. Railway for Playwright Node.js service (dedicated IP to reduce bot detection). Supabase for Postgres, auth, screenshot storage in Supabase Storage. Upstash Redis for BullMQ job queue. Sentry for error tracking. GitHub Actions for CI.
Performance Targets
Expected: 100 companies, 500 competitors, 500 weekly scans. Playwright capture under 30s per page. Claude extraction under 10s. Dashboard load under 2s. BullMQ processes 50 concurrent scan jobs without Railway timeout.
Go-Live Checklist
- ☐Playwright scans tested on 20 real SaaS pricing pages.
- ☐Claude extraction accuracy validated at above 85% on test set.
- ☐Slack webhook delivery tested end-to-end.
- ☐Stripe payment flow tested.
- ☐Sentry error tracking live.
- ☐Custom domain with SSL configured.
- ☐Rate limiting on free scan endpoint verified.
- ☐5 beta customers received first weekly digest.
- ☐ProductHunt launch post and demo GIF ready.
First Run Experience
On first run: demo company pre-loaded with 4 famous SaaS competitor snapshots (Notion, Linear, Airtable, Loom) with last week and this week pricing JSON side by side, showing one simulated price change highlighted in the change feed. User can immediately click any competitor to see the extracted pricing table and the diff. No manual config required: demo mode works without Slack webhook or Stripe — free scan on landing page requires only a URL input.
How to build it, step by step
1. Define Supabase schema: companies, competitors, snapshots, diffs, slack_webhooks with RLS on company_id. 2. Run npx create-next-app pitch-map with TypeScript and Tailwind. 3. Set up Railway project with Playwright Node.js service that accepts a URL and returns screenshot buffer plus extracted HTML. 4. Write Claude vision extraction prompt that parses pricing tiers from screenshot into structured JSON (plan name, price, billing period, top 5 features). 5. Build diff logic in lib/diff.ts that compares two pricing JSON objects and returns human-readable change summary. 6. Set up BullMQ on Upstash Redis with weekly cron job per competitor that calls Railway Playwright service. 7. Build dashboard showing competitor list with last scanned timestamp and change feed sorted by recency. 8. Build Slack digest formatter that sends Monday morning message with only changed competitors highlighted. 9. Add free scan endpoint on landing page (no auth, one-time, rate limited to 3 per IP per day) to demonstrate value. 10. Verify: add a real competitor URL, trigger manual scan, confirm pricing JSON extracted correctly, edit the pricing page manually and re-scan to confirm diff detected and Slack message sent.
Generated
June 13, 2026
Model
claude-sonnet-4-6
Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.