Skip to content

Start Here

The FCR Dashboard is an internal sales & account-management intelligence platform. It pulls FCR’s data (CRM, billing, HubSpot deals, GBP, ads, search, keywords, census/area) into BigQuery, puts an AI advisor (Claude) on top, and surfaces it in three places reps already work: a web dashboard, the HubSpot deal sidebar, and Roam chat. All three are clients of one back-end.

Web UI (Pages) HubSpot card Roam chat ← 3 surfaces (clients)
└───────────────┼──────────────┘
ONE Worker: fcr-dashboard-api ← all logic, at the edge
(133 routes, Claude advisor, crons, queue)
│ reads
┌───────────────┼───────────────┬───────────────┐
BigQuery Vectorize KV external/live
(warehouse) (semantic search) (cache) (CRM, Google, Ahrefs, Meta)
│ writes (ETL)
n8n workflows (cron) + BQ scheduled queries

Three things to internalise:

  1. One monolith Worker does all the compute, at Cloudflare’s edge. The UI is static; Roam/HubSpot are surfaces.
  2. The Worker reads; n8n writes. ETL into BigQuery is owned by n8n cron jobs + BQ scheduled queries. The Worker is mostly read-only over that data.
  3. Precompute over live. The slow work (GBP, crawls, enrichment) is precomputed into cached “deal briefs” so reps get instant answers.
SurfacePathShips to
Worker (API + advisor + crons)worker/src/** (entry index.js, router.js, 126 handlers/)one edge bundle on CF
Web UI (React/Vite)src/**CF Pages (fcr-dashboard-ui)
HubSpot cardhubspot-extension/src/**HubSpot UI-extension sandbox
Deploy + lint configscripts/ (deploy-worker.sh, eslint config)

Repo: github.com/FCR4IE/DASHBOARD. Source of truth for all three surfaces.

Terminal window
git clone https://github.com/FCR4IE/DASHBOARD.git && cd DASHBOARD
# get .env.local from a teammate (CF tokens, API keys — never committed)
npm install
npm run dev # UI locally
cd worker && npx wrangler dev # Worker locally

Maintained in docs/. If you change architecture, update the relevant page and the counts — they’re verified, not guessed.

Ask the docsRAG over this site
Ask anything about the FCR Dashboard platform — architecture, BigQuery, the worker routes, billing rules, the LRC stack, scoring… Answers are grounded in this documentation, with source links.
How does the deal-brief refresh work? Which routes are Worker vs n8n? How is account health scored?