A production-grade GTM intelligence engine for BRE Group — targeting the £50B+ global green building certification market across UK and USA.
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.
| 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 |
| 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 |
| # | 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 |
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
- 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
- Physical address in all emails
- Opt-out footer with unsubscribe mechanism
- Subject line validation (no deceptive subjects)
- From address validation
- Python 3.9+
- Docker & Docker Compose (for PostgreSQL)
- API keys: SerpAPI, ScraperAPI, Apollo, Anthropic, Companies House
# 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 -dpython3 agent.py --dry-runThis loads 5 synthetic signals, scores them, creates mock-enriched leads, matches personas, and displays the dashboard. No external API calls are made.
# 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_outAfter a full pipeline run, the engine produces:
-
Rich Dashboard — Signal counts by source/country, persona distribution, tier breakdown, queue stats, top lead, estimated pipeline value
-
Delivery Queue — Prioritized outreach messages with:
- 3-touch email sequence per lead
- LinkedIn connection request + InMail
- Timezone-aware scheduling
- Compliance footers (GDPR/CAN-SPAM)
-
Daily Report (
results/daily_pipeline_YYYY-MM-DD.json) — Full pipeline summary with lead cards, outreach previews, and compliance metadata -
Performance Report (
results/performance_report_YYYY-MM-DD.json) — Scoring weight performance, persona conversion rates, source quality metrics
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