Skip to main content

Sales CRM & RFP (Split)

This PRD has been split into two focused PRDs. The combined scope (41+ build rows, 7 stories, 5 jobs) exceeded scope limits.

  • Sales CRM — Contacts, pipeline, follow-ups, relationship linking (Jobs 1, 2, 4, 5)
  • RFP Engine — Answer library, auto-fill, Go/No-Go, bid tracking (Job 3)

The original spec, pictures, and prompt-deck are preserved below for reference.

Scorecard

DimensionScoreEvidence
Pain5/53-5 tools per deal. 20-40h per RFP. Copy-paste from Word docs. 22% win rate.
Demand4/5App live with real data. No competitor has native RFP workflow.
Edge3/5Vertical CRM + AI auto-fill + compounding library. No proprietary data yet.
Trend4/5AI vertical SaaS fastest growing. Construction tech accelerating.
Conversion3/5$30-80/seat vs Salesforce $75-300. Internal use only. Needs pilot.
Composite7205 x 4 x 3 x 4 x 3

Kill signal: Contacts but no deals = rolodex. Ventures but no answers = project board.

Kill date: 2026-03-24. Auth unblocked 2026-02-28. Next blocker: S0 wiring (dormant algorithms + Stripe).

Issues

#SeverityWhat HappensFix
24HIGH/crm/companies — "You don't have permission to read company." Entire company module blocked.Add company:read permission to admin/owner role.
20MEDIUMNo delete button anywhere in contact UI. CRUD incomplete.Add delete action to contact detail or edit page.
25LOWCRM Overview shows "Some Data Unavailable" alert banner. Likely related to company permission error.Fix company permission (#24), alert should clear.

Resolved

#ResolvedEvidence
142026-03-09Deal detail routes work. /crm/deals/:id loads with value, stakeholders, linked RFP, activity.
152026-03-09Calendar at /calendar works. Team Calendar + Week View. Empty state links to Plans.
192026-03-09Contact create works. "Commission Verified" contact created and visible in list.
112026-03-07Proposals is now a dropdown menu (Ventures, My Queue, Library, Review Queue). Navigates to /rfp.
132026-03-07Pipeline is now a dropdown + CRM overview page with stats.
52026-03-07Pagination works: Page 2 shows different contacts (11-20 of 28).
62026-03-07Search "Matt" filters to 1 contact. Counter, table, cards all update.

Context

Questions

What seeds the auto-fill flywheel — and what happens if the library stays empty?

  • If the hidden objection is "I don't want to enter data," does answer-once-auto-fill-forever actually overcome it, or does it require a critical mass nobody will create?
  • At what library size does the compounding become visible enough to change behavior?
  • Which of the 3 dormant algorithms would produce the most visible value if wired in 1 day?