Sales CRM & RFP
What progress is a construction sales team trying to make when they open their CRM at 7am?
BD manager before the first meeting. CRM shows contact history, linked deals, active ventures. The answer library grows with every bid. Auto-fill counter ticks up. Each bid makes the next one faster.
Problem
A problem well-stated is a problem 80% solved
Situation: Construction sales teams use 3-5 tools per deal. 20-40 hours per RFP response. Copy-paste from old Word docs. Win rate 22%. The app is 49% live but auth broke during multi-tenancy (PostgreSQL 22P02), so nobody can log in.
Intention: A vertical CRM that learns from every bid. Answer once, auto-fill forever. Win rate >30%.
Obstacle: Auth regression locks everyone out. Answer library has zero entries. Three algorithms sit dormant in the agency lib.
Hardest Thing: The AI value prop requires seed data that requires active usage that requires working auth. Chicken-and-egg.
Features
| # | Feature | Function | Outcome | Job | State |
|---|---|---|---|---|---|
| 1 | Contact list | Browse, search, filter contacts | Find the right person in seconds | Job 1 | Live |
| 2 | Contact detail | View profile, linked ventures, linked deals | See full relationship context before a meeting | Job 1 | Live |
| 3 | Contact create | Add new contact with company | Capture a new relationship immediately | Job 1 | Live |
| 4 | Company pages | View company with all contacts and deals | Understand an organisation's full engagement | Job 1, 5 | Built |
| 5 | Deal pipeline | Visual kanban of all deals by stage | See where every deal stands at a glance | Job 2 | Live |
| 6 | Deal create | Create new deal with value and stage | Capture a new opportunity immediately | Job 2 | Live |
| 7 | Deal detail | View deal with stakeholders, linked RFP, activity | Understand everything about an opportunity | Job 2 | Live |
| 8 | Deal stakeholders | Add contacts as stakeholders with buying roles | Map the buying committee | Job 2, 5 | Live |
| 9 | Dashboard | Summary cards and pipeline overview | Know what needs attention today | Job 2 | Live |
| 10 | Monthly goals | Track pipeline and won revenue targets | Know if you're on track this month | Job 2 | Live |
| 11 | Venture kanban | Visual board of RFP projects by stage | Track every bid from discovery to submission | Job 3 | Live |
| 12 | Venture detail | View RFP questions, linked deal, linked contacts | Full picture of a bid in one page | Job 3, 5 | Live |
| 13 | Venture create | Create new RFP venture | Start tracking a new bid | Job 3 | Live |
| 14 | Venture-deal link | Bidirectional link between RFP venture and CRM deal | One project, one deal, full picture | Job 5 | Live |
| 15 | Stakeholder roles | Assign roles and influence to linked contacts | Know who decides, influences, blocks | Job 5 | Live |
| 16 | RFP questions | Manage Q&A per venture | Structure the RFP response | Job 3 | Live |
| 17 | Answer detail | Review AI answer or write manual answer | Build library one question at a time | Job 3 | Live |
| 18 | AI Loop | AI-powered answer generation across venture | Auto-generate draft answers | Job 3 | Built |
| 19 | Deck generation | Generate presentation deck from answers | Turn answers into a deliverable | Job 3 | Built |
| 20 | Document upload | Upload PDF, DOCX, TXT to ventures | Attach RFP documents to right project | Job 3 | Live |
| 21 | AI auto-fill | Auto-populate RFP answers from library | Cut 70% of RFP response time | Job 3 | Live |
| 22 | Answer library | Store approved answers for reuse | Never write the same answer twice | Job 3 | Built |
| 23 | Review queue | SME approval workflow for answers | Ensure answer quality before auto-fill | Job 3 | Built |
| 24 | RFP analytics | Track time saved, fill rate, compound growth | Prove the ROI of the RFP tool | Job 3 | Live |
| 25 | Task management | Create, assign, track tasks | Never let a follow-up fall through | Job 4 | Partial |
| 26 | Calendar | View deadlines and follow-ups by date | See the week ahead | Job 4 | Partial |
| 27 | Activity timeline | Log calls, emails, meetings per deal | Build an interaction history | Job 1, 4 | Built |
| 28 | CSV import | Bulk import contacts from spreadsheet | Onboard existing contacts in minutes | Job 1 | Not verified |
| 29 | Global search | Search across contacts, deals, ventures | Find anything from one search box | All | Partial |
| 30 | Property registry | Track physical sites as standalone entities | Link projects to real-world locations | Job 5 | Partial |
| 31 | Go/No-Go scoring | Qualification checklist for RFP decisions | Stop wasting time on unwinnable bids | Job 3 | Gap |
| 32 | Auth | Sign-in, sign-up, user management | Secure access per user | All | Live — Commissioned 2026-02-28: owner logs in, Admin role auto-assigned, no redirect loop |
| 33 | Navigation | App-wide sidebar and top nav | Move between modules without friction | All | Live |
| 34 | RFP assignments | Assign reviewers to answer queues | Distribute review work across team | Job 3 | Gap |
| 35 | Insights | Analytics and forecasts | Make data-driven decisions | Job 2 | Stub |
| 36 | Plans | Team plans and task tracking | Coordinate team activity | Job 4 | Stub |
| 37 | Agents | AI agent registry and workflows | Automate repetitive sales tasks | Job 3 | Stub |
| 38 | Sales Forecasting | Predict deal close probability | Know which deals will close and when | Job 2 | Dormant |
| 39 | Compound Rate | Track answer library growth rate | Prove the RFP tool compounds over time | Job 3 | Dormant |
| 40 | RFP Type Detection | Auto-classify uploaded documents | Skip manual tagging on every upload | Job 3 | Dormant |
| 41 | Payments | Accept subscription payments via Stripe | Get paid for the product | All | Partial |
Build Order
Depends on: Identity & Access — #32 Auth unblocked (commissioned 2026-02-28). Owner can log in. S0 wiring is next.
| Sprint | Features | What | Effort | Acceptance |
|---|---|---|---|---|
| S0 | #38, #39, #40, #41 | Wire dormant algorithms + Stripe webhooks | 6 days | Each algo renders real data. Stripe webhook fires. |
| S1 | #18, #22, #23, #21 | Seed answer library, prove compound | 5 days | Venture B auto-fills 5+ from Venture A library. |
| S2 | #4 | Company entity | COMPLETE | Shipped 2026-02-27. |
| S3 | #27 | Activity logging | 3 days | Log call from deal, appears on both timelines. |
| S4 | #25, #26 | Data quality — exercise with real data | 2 days | 5 deals, 3 ventures at different stages. |
| Park | #30, #31, #34, #29, #26 | Scale features, not loop features | — | Only after S1 proves library compounds. |
Total: ~19 days S0-S4. Kill date: 2026-03-24.
Priorities
- What if the system learned from every bid you write?
- What seeds the auto-fill flywheel?
- What 2-day fix unlocks 20 live features?
- How do six days of wiring turn dormant code into live intelligence?
- When did you last lose a bid nobody tracked?
Progress
Scorecard
Priority Score: 720 (Pain 5 x Demand 4 x Edge 3 x Trend 4 x Conversion 3) — full evidence
| # | Priority (should we?) | Preparedness (can we?) |
|---|---|---|
| 1 | Pain: 5 — 3-5 tools per deal, 22% win rate | Principles: 4 — Job validated across 3 verticals |
| 2 | Demand: 4 — 20-40h per RFP response | Performance: 4 — App live with real data |
| 3 | Edge: 3 — Answer library compounds | Platform: 5 — 20 features built, 3 algos dormant |
| 4 | Trend: 4 — AI auto-fill inevitable | Protocols: 3 — Build sequence drafted, not executed |
| 5 | Conversion: 3 — Internal use proving value | Players: 3 — Internal use, needs external pilots |
| Metric | Target | Now |
|---|---|---|
| Win rate | >30% | 22% |
| First answer to library | Within 7 days of pilot | N/A |
| Deal creation (activation) | Within 48h of onboarding | N/A |
Kill signal: Contacts but no deals = rolodex. Ventures but no answers = project board.
Auth unblocked 2026-02-28. Next blocker: S0 wiring (dormant algorithms + Stripe). Kill date: 2026-03-24.