How Evan's List built a zero-backend AI Readiness Scorecard and dynamic proposal engine — 21 questions, an industry-benchmarked score, and a fully customized proposal. No server. No database. 100% client-side.
Writing AI proposals manually is slow, inconsistent, and doesn't scale.
Prospects receive a benchmarked 0–100 score before seeing any proposal — making the tool value-first.
The entire system runs client-side. URL parameters carry state. PII never touches a URL.
Every component is live, deployed to Cloudflare Pages, and production-hardened.
21-question guided flow with conditional branching. Q6 (sub-industry) only appears when drill-down data exists. Q15 (cloud provider) only when cloud-specific data location is selected. Every question's text adapts to previous answers — company name, team size, department all flow through.
Animated 0–100 score displayed before any proposal. Four weighted categories: AI Experience, Infrastructure Readiness, Org Readiness, and Use Case Clarity. Industry benchmarks for 13 verticals. Score flows into the proposal as a URL parameter, displayed as a badge with tier label and color.
ProposalGenerator JS class populates every section from 13 role-specific JSON files. ROI calculator projects hours saved × team size × hourly rate. Compliance multipliers (1.3× single, 1.5× multi-framework). Timeline premiums (1.5× ASAP). Volume-tiered infrastructure pricing with GPU hardware sizing for on-prem deployments.
At form completion, EmailJS fires two emails simultaneously: a branded AI Readiness insight email to the prospect (no identity parroting — score insight and gap analysis only), and a full context brief to Evan with identity, score, role, budget, timeline, and decision authority. PDF and email preview pages included.
OWASP-aligned implementation: PII stored in sessionStorage (same-origin, tab-scoped, never in URLs). Cloudflare Pages _headers enforce CSP, X-Frame-Options DENY, X-XSS-Protection, nosniff, and strict Referrer-Policy. Tailwind CDN pinned to exact version. No console logging in production. Camera, mic, and geolocation disabled via Permissions-Policy.
For teams >5, a Phase 1 (5-user pilot) vs Phase 2 (full rollout) pricing comparison is shown side-by-side. Share button adapts to the prospect's existing tools — Gmail, Outlook+Teams, Slack, or generic copy-link. Budget mismatch notice warns when the selected budget won't cover the estimate.
Click any item for details.
Built the full intake flow with conditional branching, adaptive text, progress bar animations, and a complete scoring rubric across 4 categories.
Built the full proposal.js ProposalGenerator class that hydrates every section of proposal.html from URL params and role JSON files — with pricing, ROI, hardware, and pilot calculations.
Implemented OWASP-aligned PII handling, Cloudflare security headers, EmailJS dual-email flow, and PDF/email preview pages.
Deployed to Cloudflare Pages with custom domain, wrangler CLI, and zero build step — static files served at the edge globally.
The scorecard inverts the traditional sales dynamic — instead of asking a prospect to sit through a pitch, you hand them something valuable first. A benchmarked score with a gap analysis earns the right to show a proposal.
— The Evan's List Approach
Evan's List builds AI tools that work in production — scored, shareable, and secure.