ESG Screening — Operations
Standing reference for the ESG Screening system. This site exists so the shape of the system, its conventions, and its operating model don't have to be re-established in every chat session or handoff.
Scope. Standing knowledge — architecture, methodology, glossary,
operating model, decision log. Not event log; for "what changed in the
last session," see Slack #esg-screening.
Audience. Rob, plus future technical collaborators (CC-on-VM sessions, Anthropic-Claude chat sessions, occasional partners brought in to the project). Operator-grade density throughout.
What this system is
ESG Screening is a McMillan Grubb internal tool for screening companies on ESG / socially responsible investing criteria, using only public data.
Two-stage architecture. Stage 1 produces an ESG score for any company (financial or non-financial) across all GICS sectors. Stage 2 combines the Stage 1 ESG score with credit and returns scoring for financial institutions only, where the original triangulation thesis applies.
Weekly automated refresh. Internal use plus selective client-facing summaries (deferred to v1.5).
This project is fully separate from Vextor. Different repo, different VM, different secrets, different Slack channel, different DNS. The shared thing is the operator. Operational patterns may look similar because those are Rob's habits — not because the projects are related.
Where to start
- New to the project, just orienting → Architecture overview
- Trying to understand the scoring → Scoring methodology
- A term doesn't make sense → Glossary
- About to start a chat session → Session protocol
- About to add a scraper → Add a scraper
- Trying to understand a past decision → Decision log
- Want to see the live product →
esg-screen.org(same Access gate)
Canonical hierarchy
When two sources disagree, the higher one wins:
- ADRs (
docs/adr/in main repo) — standing design decisions - Design note (
docs/design/DESIGN_NOTE_v2_two_stage.md) — v0.5 architecture - Migrations (
src/db/migrations/) — what the schema actually is - v0.4 workbook (
data/seed/ESG_Screening_Framework_v0.4.xlsx) — historical framework reference
Slack handoffs are the event log, not authority. This ops site is the rendered surface of items 1–4 plus the operating-model conventions. Two surfaces are canonical here and nowhere else:
Everything else, this site renders.
System state at a glance
| Property | Value |
|---|---|
| URL | esg-screen.org (product), ops.esg-screen.org (this site) |
| Repo | McMillanGrubb/esg-screening |
| Ops repo | McMillanGrubb/esg-screen-ops |
| Azure RG | rg-esg-screening |
| VM | esg-screening-01 |
| Stack | Node.js · PM2 · SQLite · node-cron · googleapis |
| Auth | Cloudflare Tunnel + Access · One-Time PIN · 5-address allow list |
| Slack channel | #esg-screening (C0B2SSR8THD) |
Team
- Rob — founder, owner
- Audrey — partner, occasional contributor
- Nick — partner, occasional contributor
Last updated
Site initial scaffold: 2026-05-19. See Git history for per-page revisions.