Skip to content

Repository files navigation

BRE GTM Engine

A production-grade GTM intelligence engine for BRE Group — targeting the £50B+ global green building certification market across UK and USA.

The Intelligence Problem

BRE Group (the organization behind BREEAM, the world's leading sustainability assessment method for buildings) operates in a market where:

  • 600,000+ buildings are BREEAM certified globally across 90+ countries
  • The green building certification market exceeds £50B and is growing 10%+ annually
  • Buyers don't self-identify — they emerge from planning applications, green finance deals, ESG commitments, and regulatory mandates
  • The USA market (traditionally LEED-dominated) is seeing 90%+ YoY growth in BREEAM adoption

Traditional CRM-based outreach misses these signals entirely. This engine continuously monitors 10 signal sources, scores intent, matches to buyer personas, and generates personalized outreach — ensuring BRE Group reaches the right person at the right time with the right message.

10 Signal Sources

UK (5 Sources)

Source What We Monitor Why It Matters
UK Planning Applications New commercial/residential planning applications LPAs increasingly mandate BREEAM as planning condition
Companies House Filings New property/construction incorporations, capital raises Early signal of upcoming projects
UK Government Contracts Public sector construction contracts >£2M Government mandates BREEAM for public buildings
UK Green Finance Green bonds, sustainability-linked loans ESG covenants require certification
LinkedIn UK Sustainability manager/director hiring Signals organizational commitment

USA (5 Sources)

Source What We Monitor Why It Matters
US Building Permits Large commercial permits in growth markets Projects that could adopt BREEAM USA
SEC EDGAR ESG disclosures in public filings Board-level sustainability commitments
LEED Project Registry Active LEED projects and certifications Prime candidates for dual-certification or switching
USA Green Finance Green bonds, sustainability-linked loans Same ESG covenant logic as UK
LinkedIn USA Sustainability hiring in target sectors Same hiring signal logic as UK

7 Buyer Personas

# Persona Trigger Signal BRE Product
1 The Green Finance Borrower Green bond/SLL with ESG covenant BREEAM New Construction
2 The Planning Permission Pursuer Planning application with LPA requirement BREEAM New Construction
3 The ESG Report Builder Published ESG/sustainability report BREEAM In-Use
4 The LEED Switcher LEED certified, expanding to UK/EU BREEAM New Construction
5 The Asset Value Maximizer REIT/fund with uncertified portfolio BREEAM In-Use
6 The Public Sector Complier Government body with mandatory requirements BREEAM Academy
7 The Industrial ESG Pioneer Industrial developer with ESG-conscious tenants BREEAM New Construction

Intent Scoring

The engine uses a two-pass scoring system to balance signal quality with enrichment cost:

Pass 1 (Pre-Enrichment, 0-80 points):

  • D1: Source Relevance (0-25) — How predictive is this signal source?
  • D2: Project Scale (0-25) — Size and value indicators
  • D3: Keyword Intent (0-30) — Presence of high-intent keywords

Only signals scoring >40 proceed to enrichment (saving API credits).

Pass 2 (Post-Enrichment, 0-100 points):

  • D4: Contact Quality (0-20) — Verified email, LinkedIn, relevant title

Tier Assignment:

  • T1 (70-100): Immediate outreach, all channels
  • T2 (50-69): Outreach within 48h
  • T3 (30-49): Nurture sequence
  • T4 (0-29): Monitor for future signals

Compliance

GDPR (UK Leads)

  • Processing under Legitimate Interest (Article 6(1)(f))
  • Pre-filed Legitimate Interest Assessment
  • Suppression list with opt-out management
  • Data retention checks (24-month flag)
  • Subject Access Request support
  • Privacy footer on all outreach

CAN-SPAM (USA Leads)

  • Physical address in all emails
  • Opt-out footer with unsubscribe mechanism
  • Subject line validation (no deceptive subjects)
  • From address validation

How to Run

Prerequisites

  • Python 3.9+
  • Docker & Docker Compose (for PostgreSQL)
  • API keys: SerpAPI, ScraperAPI, Apollo, Anthropic, Companies House

Setup

# Clone and install
git clone <repo-url>
cd bre-gtm-engine
pip install -r requirements.txt

# Copy and configure environment
cp .env.example .env
# Edit .env with your API keys

# Start database
docker-compose up -d

Dry Run (No API Keys Required)

python3 agent.py --dry-run

This loads 5 synthetic signals, scores them, creates mock-enriched leads, matches personas, and displays the dashboard. No external API calls are made.

Production Run

# Full pipeline
python3 agent.py --run full

# Individual stages
python3 agent.py --run uk          # UK signals only
python3 agent.py --run usa         # USA signals only
python3 agent.py --run score       # Score unprocessed signals
python3 agent.py --run enrich      # Enrich qualifying signals
python3 agent.py --run outreach    # Generate outreach
python3 agent.py --run deliver     # Build delivery queue
python3 agent.py --run report      # Performance report
python3 agent.py --run retention   # GDPR retention check

# Filters
python3 agent.py --run full --country UK --tier 1

# Suppression management
python3 agent.py --suppress user@example.com --reason opt_out

Expected Output

After a full pipeline run, the engine produces:

  1. Rich Dashboard — Signal counts by source/country, persona distribution, tier breakdown, queue stats, top lead, estimated pipeline value

  2. Delivery Queue — Prioritized outreach messages with:

    • 3-touch email sequence per lead
    • LinkedIn connection request + InMail
    • Timezone-aware scheduling
    • Compliance footers (GDPR/CAN-SPAM)
  3. Daily Report (results/daily_pipeline_YYYY-MM-DD.json) — Full pipeline summary with lead cards, outreach previews, and compliance metadata

  4. Performance Report (results/performance_report_YYYY-MM-DD.json) — Scoring weight performance, persona conversion rates, source quality metrics

Project Structure

bre-gtm-engine/
├── agent.py                  # CLI orchestrator with Rich dashboard
├── database/
│   ├── schema.sql            # PostgreSQL schema (8 tables)
│   └── connection.py         # asyncpg connection pool
├── pipeline/
│   ├── __init__.py           # SignalRecord, LeadRecord, upsert_signals
│   ├── http_client.py        # Shared async HTTP with retry + rate limiting
│   ├── signals_uk.py         # 5 UK signal sources
│   ├── signals_usa.py        # 5 USA signal sources
│   ├── scorer.py             # Two-pass intent scoring
│   ├── enrichment.py         # Apollo, Companies House, LinkedIn enrichment
│   ├── persona_matcher.py    # 7 persona matching functions
│   ├── outreach_generator.py # Claude API outreach generation
│   ├── delivery.py           # Delivery queue + daily report
│   └── feedback_loop.py      # Metrics + weight recalibration
├── compliance/
│   ├── gdpr.py               # GDPR: LIA, opt-out, retention, SAR
│   ├── canspam.py            # CAN-SPAM: validation, footers
│   └── legitimate_interest_assessment.md
├── tests/
│   ├── fixtures/
│   │   └── synthetic_signals.json
│   ├── test_scorer.py
│   ├── test_persona_matcher.py
│   ├── test_compliance.py
│   ├── test_enrichment.py
│   ├── test_outreach.py
│   ├── test_delivery.py
│   └── test_dry_run.py       # Full pipeline integration test
├── results/                   # Generated reports
├── ARCHITECTURE.md            # System design document
├── README.md                  # This file
├── docker-compose.yml
├── requirements.txt
└── .env.example

About

GTM engine for BRE — automated prospect discovery, scoring, and outreach for real estate services

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages