Layer 0A · Foundation
Energy Intelligence Corpus
The proprietary knowledge base that makes every AI decision sector-aware instead of generic. Built from authoritative external sources, structured into discrete modules, auto-enriched weekly.
🧬 Internal · Silent · Auto-enriched weekly

The corpus is the single most important competitive asset in this pipeline. Every other tool — DiscoLike, Apollo, Claude — is available to any competitor. The corpus is not. It is built from primary authoritative sources in the energy industry, structured into modules that Claude reads before making any scoring or classification decision, and it grows automatically every week as new information enters the market.

Without the corpus, Claude scores a "Gas Originator" the same way it would score a "Sales Manager" — by title seniority only. With the corpus, Claude knows that a Gas Originator at a mid-size European utility controls spot cargo decisions worth tens of millions annually, reports to the Head of Trading, has budget authority without procurement approval below a certain threshold, and is typically reachable directly because they operate in a high-autonomy environment. That difference is worth everything in outbound.

Why this matters

Generic AI tools hallucinate energy industry nuance. They confuse a Drilling Engineer (technical, not a buyer) with a Drilling Manager (operational buyer). They think "FPSO contract" and "land rig contract" are similar signals. They don't know that a Colombian PSC award means an operator will need land rigs within 18 months. The corpus fixes this by injecting verified, structured domain knowledge at the moment of decision.

Corpus Structure — 5 Modules

📖
Module 1 — Job Title Dictionary

For every relevant energy title: what they do day-to-day, what they buy, who they report to, whether they are buyer / influencer / blocker, typical seniority signals, and how their role differs by sector. Covers 80+ titles across O&G, LNG, power trading, energy services, and consulting.

🏭
Module 2 — Product & Equipment Knowledge

Technical descriptions of products and equipment relevant to energy sales: rig types and HP classifications, LNG carrier specs, turbine types, metering systems, trading platforms, pipeline infrastructure. Enables the system to know what a buyer actually needs when a company operates certain assets.

🗺️
Module 3 — Regional Market Profiles

Per geography: regulatory environment, NOC dynamics, typical decision-making culture, key operators and service companies, seasonal activity patterns, language and communication norms. Covers Texas/Permian, Colombia/LatAm upstream, European power markets, SE Asia, West Africa.

🏢
Module 4 — Buyer Behavior Maps

Per sector: who signs the check, who influences the decision, who blocks it, typical sales cycle length in weeks, what triggers a buying decision, what language resonates. Built from industry research, SPE papers, and procurement patterns documented in trade press.

Module 5 — Signal Dictionary

Classification of news event types by their relevance as buying signals. Maps event type → urgency level → likely buyer persona → recommended outreach timing. Prevents the system from treating all energy news equally — it knows which signals actually matter.

🔄
Auto-Enrichment Layer

Weekly scrape job pulls from Tier 2 sources (trade press). New content is classified, summarised, and appended to the relevant module. You receive a weekly digest of what was added. Flag anything wrong and it gets excluded. Corpus grows and sharpens over time without manual effort.

💼
Module 6 — Jobs Intelligence Feed

Continuously scraped LinkedIn job descriptions across all energy sectors. Claude extracts structured knowledge: role definitions, reporting lines, assets operated, tools used, org structure signals. This module self-builds — every week thousands of new JDs flow in and enrich all other modules automatically. See Layer 0C for full architecture.

Source Tiers & Specific Sources

Source Type What it provides URL Trust
IEA — Int'l Energy Agency Regulatory / Research Global energy market data, forecasts, policy context, sector definitions iea.org/reports Tier 1
EIA — US Energy Info Admin Regulatory / Statistical US market data, drilling activity, rig counts, storage levels, pricing eia.gov Tier 1
FERC — Fed Energy Regulatory Regulatory US gas and power market structure, pipeline filings, market participant data ferc.gov Tier 1
SPE — Society of Petroleum Engineers Technical / Academic Drilling engineering definitions, equipment specs, operational best practices spe.org/publications Tier 1
API — American Petroleum Institute Standards / Technical Equipment standards, rig classification, well construction definitions api.org/publications Tier 1
GIIGNL — LNG industry group Industry Association LNG market definitions, cargo specs, terminal data, trade flows giignl.org/publications Tier 1
ENTSO-E — European grid Regulatory / Operational European power market structure, balancing mechanisms, TSO roles entsoe.eu/data Tier 1
ANH Colombia Regulatory Colombian upstream contracts, PSC awards, block map, active operators anh.gov.co Tier 1
S&P Global Platts Trade Press Price benchmarks, deal announcements, market commentary, LNG flows spglobal.com/commodityinsights Tier 2
Argus Media Trade Press Energy price reporting, deal flow, market structure analysis argusmedia.com Tier 2
Rigzone Trade Press Rig contracts, drilling market news, equipment specifications, job market rigzone.com Tier 2
Upstream Online Trade Press O&G project news, operator activity, contract awards, exploration upstreamonline.com Tier 2
Oil & Gas Journal Trade Press Technical articles, market analysis, refining and petrochemicals ogj.com Tier 2
LNG World News Trade Press LNG terminal news, shipping contracts, cargo deals, liquefaction projects lngworldnews.com Tier 2
Power Magazine Trade Press Power generation technology, utility operations, grid developments powermag.com Tier 2
Recharge News Trade Press Renewable energy, offshore wind, solar projects, green hydrogen rechargenews.com Tier 2
Baker Hughes Rig Count Company Data Weekly active rig count by country and basin — primary drilling activity signal bakerhughes.com/rig-count Tier 3
NOV / Varco Tech Docs Company Whitepapers Rig specifications, HP classifications, drillstring equipment definitions nov.com/resources Tier 3
SLB (Schlumberger) Publications Company Whitepapers Oilfield services definitions, completion techniques, reservoir management slb.com/resource-library Tier 3
LinkedIn Jobs — via Apify Live Industry Data Continuously scraped job descriptions across all energy sectors — primary source for Module 1 (titles), Module 2 (assets/equipment), Module 4 (org structure), Module 5 (hiring signals). Written by the industry, for the industry. See Layer 0C. apify: harvestapi Live Feed
Technical note — how Claude reads the corpus
Each pipeline run, Claude receives the relevant corpus module injected into its system prompt before processing any record. For example: when scoring a contact titled "Head of Origination" at a European gas utility, Claude first receives Module 1 (Job Title Dictionary, Origination section) + Module 3 (European power market profile) + Module 4 (Buyer Behavior Map for gas trading). The scoring decision is then made with full sector context, not just title seniority. This costs approximately $0.003 extra per record using Claude Haiku — negligible at any volume.

How the Corpus Gets Built — Process

1
Initial build — structured interview
Claude interviews you sector by sector with specific structured questions. Your answers, however casual, get converted into clean corpus entries. This is the fastest way to extract the practical industry knowledge that doesn't appear in official docs — things like "originators at utilities never go through procurement for spot deals under X volume" or "Colombian drilling managers care about rig mobilisation time more than day rate."
2
Source ingestion — Tier 1 docs
SPE papers, IEA reports, API standards, and regulatory docs are scraped and processed through Claude. Technical definitions, equipment classifications, and market structure information is extracted and formatted into the relevant corpus module. These documents change slowly — ingested once, reviewed annually.
3
Weekly auto-enrichment — Tier 2 sources
Every Monday, a scraper pulls headlines and articles from Rigzone, Upstream Online, LNG World News, Argus, and Platts. Claude classifies each article by sector, extracts signal-relevant information, and appends summaries to the Signal Dictionary module. Baker Hughes rig count data is pulled and appended to the Regional Market Profiles module. You receive a digest of what was added each week.
4
Quality control — your review
The weekly digest shows you what was added to the corpus. Anything flagged as wrong or irrelevant gets excluded. Over time, the corpus learns your standards and the false positive rate drops. This is a 10-minute weekly review — not heavy maintenance.
Layer 0B · Client Interface
ICP Interrogation Engine
Client-facing dialogue layer. Before the pipeline runs a single query, this system challenges vague inputs and extracts a precise, validated ICP definition. Uses the corpus to know which questions to ask.
🎯 Client-facing · Conversational · Precision extraction

Most outbound failures start here — at the ICP definition step. A client says "energy companies" and you build a list of energy companies. That list is useless. The interrogation engine exists to prevent this by using the corpus to identify every ambiguity in the client's description and resolve it before any data is pulled.

The engine is powered by Claude, reading the corpus to formulate the right clarifying questions. It is not a static form — it adapts based on what the client says. If they mention "drilling," it knows to ask onshore vs offshore, equipment vs services, operator vs contractor. If they say "trading," it knows to ask physical vs financial, spot vs term, gas vs power vs LNG. Each question is drawn from the corpus — these are exactly the distinctions that change the entire target list.

Why not just use a form?

Forms assume you know what to ask in advance. The corpus-powered dialogue adapts to what the client says. If a client mentions "offshore wind," the system shifts into a completely different question tree than if they said "conventional gas." A form would ask the same 10 questions regardless. This system asks 3–5 targeted questions that actually resolve the specific ambiguities in what that client said.

Example Dialogue — Land Rig Sale (Sofía / Valiat scenario)

Live conversation example — ICP interrogation for drilling equipment sale
Client
"We want to find buyers for a 2,000 HP land drilling rig. Targeting Africa, Southeast Asia, Latin America."
System
Good start. A few things will significantly narrow the target list. First — are you looking for E&P operators with active or planned drilling programs who need to contract or purchase a rig, or drilling contractors who manage rigs on behalf of operators and might want to expand their fleet?
Client
"Both actually — operators who need drilling capacity and contractors looking to add to their fleet."
System
Understood. For operators, the trigger is usually a new block award, license, or PSC — they need drilling capacity once they have acreage. For contractors, it's fleet expansion driven by contract backlog or rig replacement. Should I prioritise operators with recent block awards in the last 12 months in your target geographies, or is the contractor fleet-expansion angle equally important?
Client
"Operators with recent block awards — that's the hotter signal."
System
Good. On geography — in Latin America, Colombia is the most active for land drilling right now. In Africa, do you want all sub-Saharan markets or specific basins? In SE Asia, onshore is concentrated in Indonesia, Myanmar, and Pakistan — are all three relevant or do you have restrictions? Also, is the rig being sold outright or offered on a contract/lease basis? This changes who the decision-maker is significantly.
Client
"Outright sale. All of sub-Saharan Africa. Colombia yes. SE Asia — Indonesia and Pakistan only."
System
Perfect. For an outright sale, your primary contact at operator companies is typically the VP Drilling or Drilling Manager — they control rig selection decisions. The CFO or COO may be involved for capital approval. At contractors, target the CEO or COO directly since fleet decisions are made at the top. I now have enough to build your ICP. Shall I confirm and run?

Example Dialogue — Sales Agency Services

Live conversation example — ICP interrogation for EnergyLeads own outbound
Client
"I want to target energy companies that need outbound sales help."
System
"Energy companies" covers thousands of different business models. To focus the list — are you targeting companies that sell to other energy companies (B2B services, SaaS, equipment, consulting), or companies that sell energy products like gas, power, or LNG to end users? These are completely different buyer profiles for sales agency services.
Client
"Companies selling energy services or products to other energy companies. Like an originator selling gas, or an energy consultant selling analytics."
System
Good. Companies doing commercial outreach in energy — traders, originators, energy consultants, SaaS platforms, analytics providers. The clearest buying signal for outbound help is when a company is hiring sales or BD roles — it means they're trying to grow their commercial team and may be open to outsourcing part of that effort. Should I weight this signal heavily in the scoring?
Client
"Yes, heavily."
System
Noted. One more — company size. Your pitch works best with companies that have a commercial team but not a full sales infrastructure. That usually means 20–500 employees. Below 20 is too early-stage, above 500 they likely have in-house SDR teams. Confirm this headcount range or adjust?

What the Interrogation Produces

📋 ICP Definition Output — fed directly into Layer 1 Discovery query
sector
Confirmed sub-sector(s) — e.g. "land drilling contractors + E&P operators with active programs"
string list
buyer_personas
Confirmed decision-maker titles — e.g. "VP Drilling, Drilling Manager, CEO (contractor)"
string list
geographies
Confirmed target countries / regions with any exclusions noted
string list
headcount_range
Min–max employee count confirmed through dialogue
integer range
priority_signals
Ranked list of signals to weight heavily — e.g. "PSC award (high), hiring drilling roles (medium)"
ranked list
exclusions
What NOT to target — e.g. "pure financial traders, majors above 10,000 employees"
string list
scoring_weights
Custom weight adjustments for Layer 2 scoring — e.g. "hiring signal: +25pts, geography: +15pts"
JSON object
discovery_prompt
Natural language ICP description formatted for DiscoLike API — generated automatically
string
Layer 0C · Foundation
Jobs Intelligence Feed
A continuously running LinkedIn job scraper that harvests energy sector job descriptions at scale — powering corpus auto-build, company discovery, and signal detection simultaneously. The industry's own language, captured at source.
💼 Continuous · Triple-purpose · Self-building · Apify-powered

Every energy job description is a primary source document. Written by a hiring manager, reviewed by HR, approved by leadership — it describes in precise industry language exactly what a company does, what assets it operates, what skills it needs, who reports to whom, and what problems it's trying to solve right now. No PR spin, no website vagueness. Pure operational reality.

The Jobs Intelligence Feed harvests this at scale and continuously. Running 24/7 via Apify, it searches LinkedIn for energy sector roles across Power & Utilities, LNG, Trading, O&G, and Energy Services. Each job description is processed by Claude, which extracts structured intelligence across three dimensions: corpus knowledge (what does this title mean, what does this company operate), discovery signal (this company is hiring = they exist, they're active, they have budget), and urgency signal (seniority and function of the role determines how hot the signal is).

Why this is the most underrated data source in B2B energy

Your competitors are scraping the same Apollo databases and Rigzone articles. Nobody is systematically harvesting LinkedIn job descriptions as intelligence. A job posting tells you more about a company than their website does — it reveals the org structure they're building, the technology stack they run, the assets they operate, the problems they can't solve internally. That's the corpus. That's the signal. That's the discovery source. One pipeline, three returns.

Three Simultaneous Purposes

🧬
Purpose 1 — Corpus Fuel

Every JD feeds Module 1 (title definitions), Module 2 (assets/equipment mentioned), Module 4 (reporting lines = org structure), and Module 6 (the jobs module itself). Claude extracts structured entries. The corpus self-builds every week without manual curation.

  • Role definitions in industry's own language
  • Asset & equipment vocabulary per sector
  • Org structure patterns per company type
  • Buyer vs influencer vs blocker classifications
🔍
Purpose 2 — Company Discovery

Every unique company posting an energy job is a discovery candidate. Companies hiring = companies that exist, are active, and have payroll budget. Cross-referenced against the Companies table — new companies get stub records, known companies get activity flags updated.

  • Surface companies not in Apollo or DiscoLike
  • Validate that discovered companies are active
  • Enrich existing company records with hiring data
  • Flag companies in growth mode automatically
Purpose 3 — Signal Detection

The role being hired, its seniority, and its function determine signal strength. A VP Commercial posting = the company is building commercial capacity = they need what EnergyLeads sells. Signal scores feed directly into Layer 7 urgency scoring, pushing high-signal companies to the front of the outreach queue.

  • Commercial / BD / Sales roles = highest signal
  • C-Suite or VP level = amplified signal
  • Multiple simultaneous postings = expansion mode
  • Signal decay tracked — active vs closed postings

Pipeline Architecture — How It Runs

1
Continuous scrape loop — Apify actor
Python script runs indefinitely with configurable sleep intervals (default: every 6 hours). For each search query × location combination, it triggers the Apify harvestapi/linkedin-job-search actor, polls until completion, and fetches the full result set. Handles errors gracefully and resumes from last state. Can run for days or weeks without intervention.
2
Deduplication — Job ID as primary key
Each LinkedIn job has a unique numeric ID. Before any processing, the script checks the Jobs table in Airtable. If the Job ID already exists, the record is skipped entirely — no redundant processing, no duplicate entries. Over time, repeat runs only process genuinely new postings.
3
Claude extraction — structured intelligence from raw JD
Each new job description is sent to Claude (Haiku for cost efficiency — ~$0.001 per JD) with a structured extraction prompt. Claude returns JSON with: normalized title, seniority level, function category, segment tag, role type (buyer/influencer/blocker), assets/equipment mentioned, reporting line inference, and a 1-sentence role summary for the corpus. This costs approximately $1 per 1,000 job descriptions processed.
4
Signal scoring — per job record
Signal score (1–10) computed from extracted fields: seniority (C-Suite/VP = +4, Director = +3, Manager = +2), function (Commercial/Trading/BD = +3, Technical = +1), posting recency (under 7 days = +2, under 30 days = +1), and company match in existing DB (+1). Score stored on the job record and propagated to the parent company's urgency score in Layer 7.
5
Airtable persistence — Jobs table + company cross-reference
Full job record written to the Jobs table (new table in the EnergyLeads master base). Company name checked against Companies table: if match found, urgency score is updated and hiring_signal = true is set. If no match, a stub company record is created with domain TBD, flagged for enrichment in the next Layer 1 pass. Both operations in a single Airtable batch call.
6
Corpus module update — weekly batch
Once per week, a batch job reads all new job records from the past 7 days and runs a corpus extraction pass: new title definitions → Module 1, new equipment/asset mentions → Module 2, reporting line patterns → Module 4, high-signal hiring patterns → Module 5. Each extraction is appended to the relevant corpus module file. The corpus grows automatically without any manual input.

Search Query Library — Energy Sectors

Power & Utilities
  • energy analyst · power trader · grid operator
  • utility manager · transmission engineer
  • generation manager · energy scheduler
  • market analyst energy · regulatory affairs energy
  • energy procurement · balancing manager
  • TSO analyst · dispatch operator · PPA manager
  • renewable energy developer · grid integration engineer
🚢
LNG & Gas Trading
  • LNG trader · LNG analyst · LNG commercial
  • gas trader · commodity trader energy
  • gas marketing · LNG operations
  • cargo operations LNG · energy trading analyst
  • derivatives trader energy · gas originator
  • LNG shipping · terminal operations manager
  • gas supply manager · portfolio optimization
🛢️
Oil & Gas
  • drilling manager · VP drilling · completions manager
  • reservoir engineer · production engineer
  • asset manager upstream · exploration manager
  • petroleum engineer · subsurface manager
  • business development oil gas · commercial director E&P
🏢
Energy Services & Commercial
  • head of origination · commercial director energy
  • VP commercial energy · CCO energy
  • business development manager energy
  • energy consultant · energy sales director
  • head of business development energy
  • energy SaaS sales · energy analytics

Airtable Jobs Table — Full Schema

💼 Jobs Table — new table in app2c5p6nY5ecstrS · Dedup key: Job ID
Job ID
LinkedIn numeric job ID — primary deduplication key. Never changes for a given posting.
single line · unique
Job Title
Raw title exactly as posted by the employer
single line
Title Normalized
Claude-standardized title — e.g. "Sr. Gas Originator" → "Gas Originator"
single line
Company Name
Hiring company name from LinkedIn
single line
Company Domain
Derived domain — cross-referenced with Companies table
single line
EL-C ID
Link to Companies table if match found. Null if new company stub.
single line · FK
Location City / State / Country
Parsed from LinkedIn location field
single line × 3
Remote Type
On-site / Remote / Hybrid — from LinkedIn metadata
single select
Posted Date
Original posting date from LinkedIn
date
Scraped Date
Timestamp when this record was created by the pipeline
date
Description
Full job description text — source material for corpus extraction
long text
Seniority Tag
Claude-classified: C-Suite / VP / Director / Manager / IC
single select
Function Tag
Commercial / Technical / Operations / Finance / IT / HR / Legal
single select
Segment Tag
Power & Utilities / LNG / Trading / O&G / Energy Services / Other
single select
Role Type
Claude-classified buyer / influencer / blocker — using corpus Job Title Dictionary
single select
Assets Mentioned
Equipment, infrastructure, platforms extracted from JD — feeds Module 2
long text
Reporting Line
Inferred reporting structure from JD — "reports to Head of Trading" etc — feeds Module 4
single line
Corpus Entry
Claude-generated 1–2 sentence role summary formatted for Module 1 insertion
long text
Signal Score
1–10 computed signal score — propagated to parent company urgency in Layer 7
number
Employment Type
Full-time / Contract / Part-time
single select
Salary Min / Max
If posted — useful for market intelligence and seniority validation
number × 2
Applicants
Applicant count from LinkedIn — proxy for role demand / urgency
number
Job URL
Direct LinkedIn URL for the posting
url
Corpus Exported
Boolean — has this record been included in the weekly corpus module update batch
checkbox
Source
Always apify:harvestapi
single line
Run ID
Apify run ID for full traceability — allows reprocessing specific runs if needed
single line

Signal Score Logic

ConditionPointsReasoning
Seniority = C-Suite or VP+4Highest-authority hire = largest growth signal
Seniority = Director+3Senior hire, strong expansion signal
Seniority = Manager+2Team build-out signal
Function = Commercial / Trading / BD+3Direct signal for EnergyLeads ICP — they need pipeline
Function = Technical / Operations+1Weaker signal — company is active but not commercial-focused hire
Company already in Companies table+2Known target confirming activity
Posted within last 7 days+2Recency = urgency
Posted within last 30 days+1Still relevant
Salary data present+1Company is serious — budget confirmed

What Claude Extracts Per Job Description

📖
For the Corpus (Module 1, 2, 4)
  • Role definition — what this person does day-to-day
  • Decision authority — what they buy or approve
  • Reporting line — who they report to (org structure)
  • Assets operated — rigs, terminals, turbines, trading systems
  • Technologies required — ETRM platforms, SCADA, SAP, etc.
  • Industry vocabulary — exact terms used in this sector
  • Buyer classification — buyer / influencer / blocker
For Signals & Discovery
  • Company activity status — hiring = active + funded
  • Growth phase — building vs. replacing vs. expanding
  • Commercial intent — are they building a sales/BD team?
  • Sector confirmation — what sector does this company actually operate in
  • Geography — where are they operating (not just HQ)
  • Urgency level — seniority + recency = signal score
Cost estimate — Layer 0C
Apify scraping: ~$1–3/run (depends on volume and queries). Claude extraction: ~$0.001 per JD using Haiku. At 500 new JDs/day, monthly cost = ~$15 Apify + ~$15 Claude = ~$30/month total for a continuously self-building corpus and signal layer. This is the highest ROI layer in the entire pipeline.
Layer 1 · Processing Pipeline
Company Discovery
Pulls companies from multiple sources in parallel. The ICP definition from Layer 0B shapes every query. Output is a unified, deduplicated list of company domains with basic firmographics.
🔍 Automated · Multi-source · Deduped on domain

Discovery is where the pipeline starts generating data. Four sources run in parallel depending on which input type was provided. The outputs are merged and deduplicated on company domain before anything proceeds to scoring. This means even if the same company appears in DiscoLike results, an Apollo search, and your conference database, it is only processed once.

The key design decision here is running all sources in parallel rather than sequentially. DiscoLike gives you web-based discovery that Apollo misses. Apollo gives you structured firmographic data that DiscoLike lacks. Conference databases give you intent signals (the company showed up at an industry event) that neither tool provides. Combining all three produces a richer, larger, and more varied starting list than any single source.

Why DiscoLike over Sales Navigator

Sales Navigator indexes LinkedIn profiles, which are incomplete, outdated, and biased toward tech-sector companies. A lot of energy companies — especially mid-size independents, commodity traders, and drilling contractors — have poor LinkedIn presence but detailed, well-maintained websites. DiscoLike reads the actual website text, which means it surfaces companies that Sales Nav systematically misses. In energy specifically, this gap is significant.

DiscoLike
Primary
Natural language ICP search + lookalike domain discovery against 65M+ business websites. Reads actual website content — finds companies others miss. API access on $99/mo Starter plan.
Cost$99/mo + $3.50/1K records
InputNL description or seed domains
OutputCompany domain + firmographics
URLdiscolike.com
Apollo.io
Primary
Company and people database. Strong on structured firmographic data — industry codes, headcount, revenue ranges, tech stack. Weaker on niche energy companies but good coverage of mid-market.
Cost$49–99/mo
InputIndustry filters + geography
apollo.io
Conference DB
Owned
Internal database built from E-World 2025 and CERAWeek 2025 attendee and exhibitor data. ~32,000 contacts already processed. Companies here have demonstrated intent by showing up at industry events.
Cost$0 (already built)
InputICP filter on existing data
Signal valueHigh — event presence = intent
Builtin Scraper
Signal source
Custom Python scraper built against Builtin.com job listings. Finds energy companies actively hiring sales or BD roles — strongest possible intent signal for your agency pitch. Also runs against Indeed and LinkedIn Jobs.
Cost$0 (custom scraper)
Signal valueVery high for EnergyLeads ICP
Run frequencyWeekly
PhantomBuster CSV
Fallback
Legacy input mode. Any PhantomBuster Sales Nav export or LinkedIn scrape is parsed and cleaned into the same unified format. Deduplication catches any overlap with other sources.
Cost$0 (parsing only)
Use caseManual input, client-provided lists
Jobs Feed — Layer 0C
Signal source
Every company posting an energy job is a live discovery candidate. Layer 0C runs continuously and surfaces companies not in any other source. Stub records created automatically — flagged for full enrichment in next Layer 1 pass.
CostIncluded in Layer 0C
Signal valueVery high — active + funded
Run frequencyContinuous (every 6h)

Data Fields Produced — per company

📤 Layer 1 output — feeds into Layer 2 scoring
domain
Primary company domain — deduplication key for the entire pipeline. Normalised (no www, no trailing slash)
string · unique
company_name
Official company name from source. Cleaned and standardised.
string
website_description
Raw text snippet from company website homepage — used by Claude in scoring
string · 200–500 chars
industry_tags
Sector labels from source tool — e.g. ["Oil & Gas", "Energy Trading", "Upstream"]
string array
headcount_range
Employee count range — e.g. "50–200". Not always available from all sources.
string
hq_country
Headquarters country — ISO 3166-1 alpha-2 code
string
hq_city
Headquarters city — when available
string
linkedin_url
Company LinkedIn page URL — used for contact discovery in Layer 3
string · nullable
source
Which source found this company — "discolike", "apollo", "conference_db", "builtin", "phantombuster", "jobs_feed"
string
source_similarity_score
DiscoLike similarity score (0–100) if found via lookalike search. Null for other sources.
integer · nullable
conference_presence
Boolean — was this company found in conference DB? Adds weight in Layer 2 scoring.
boolean
hiring_signal
Boolean — was this company found via Builtin job scraper or Layer 0C Jobs Feed? Strong intent signal. Jobs Feed also stores signal_score per individual posting.
boolean
discovered_at
Timestamp of first discovery — used to calculate recency weighting in scoring
datetime
Layer 2 · Processing Pipeline
Company Scoring & Tiering
Claude API scores every discovered company across 7 dimensions with corpus context injected. Outputs a 0–100 score and Tier A/B/C. Only Tier A and B proceed to enrichment — Tier C is stored but costs nothing to process further.
🧠 Claude API · Corpus-informed · Gate before all spend

This is the most important cost-control mechanism in the pipeline. Email enrichment costs money per record. Phone enrichment costs money per record. If you enrich every company you discover, you waste most of that spend on companies that will never convert. The scoring layer exists to eliminate this waste by running a cheap Claude API call (approximately $0.002 per company using Haiku) before you spend $0.10–0.50 per contact on enrichment.

The scoring prompt includes the relevant corpus modules for the company's sector, ensuring Claude applies real domain knowledge. A company described as "gas marketing and origination" is not scored the same as a company described as "gas distribution" — even though both would superficially appear in an "Oil & Gas" industry filter on Apollo.

The gate principle — why this saves significant money

Assume 1,000 companies discovered per run. At $0.30 average enrichment cost per contact (email + phone), enriching all 1,000 costs $300 per run. If scoring eliminates 60% as Tier C, you enrich 400 companies for $120. Over 12 runs per year, scoring saves approximately $2,160 — more than the entire annual cost of the Claude API subscription. The scoring layer pays for itself many times over.

Scoring Dimensions — 7 factors

🏭
1. Sector Fit (max 25pts)

Is this company in a sector that genuinely needs what the ICP describes? Claude reads the website description + industry tags and cross-references against the corpus sector definitions. Not all "energy companies" score equally — a financial energy hedge fund scores differently from a physical gas originator.

👥
2. Headcount Range (max 15pts)

Company size relative to the confirmed ICP headcount range. Companies outside the range score 0 on this dimension. Companies at the edges score partial points. Perfect fit scores full 15. Prevents both targeting companies too small to have budget and too large to need your help.

🗺️
3. Geography Match (max 15pts)

HQ country and operational geography vs confirmed target regions. Companies headquartered in priority regions score full points. Adjacent regions score partial. Out-of-scope geographies score 0. Regional market context from corpus is used — e.g. Colombian companies get full score for LatAm-focused ICPs.

💼
4. Commercial Team Signal (max 15pts)

Evidence from website or data sources that the company has an active commercial/sales function. Companies with "origination", "business development", "commercial" in their description score higher. Corpus knowledge helps identify these signals even when they use industry-specific terminology.

🎪
5. Conference Presence (max 10pts)

Boolean from Layer 1 — was this company found in the conference database? If yes, full 10 points. This is a strong intent signal: the company spent money to attend or exhibit at an industry event, indicating active market engagement. CERAWeek presence is weighted higher than smaller events.

💰
6. Funding / M&A Activity (max 10pts)

Recent funding rounds, acquisitions, or major contract awards indicate growth mode — companies spending money to grow are more likely to spend on services that accelerate that growth. Scored based on recency (last 12 months scores full, 12–24 months scores half).

📋
7. Hiring Signal (max 10pts)

Boolean from Layer 1 — was this company flagged by the Builtin scraper as actively hiring sales or BD roles? For EnergyLeads' own ICP specifically, this is the single strongest buying signal. Full 10 points if active hiring detected, 0 if not.

Tier Definitions

Tier A — Score 70–100
  • Strong sector fit + at least 2 positive signals
  • Proceed immediately to full enrichment
  • AI first line written
  • Included in weekly priority digest
  • Target: ~15–20% of discovered companies
Tier B — Score 40–69
  • Decent fit, fewer signals
  • Proceed to enrichment — lower priority
  • No AI first line until upgraded
  • Contacted in second wave
  • Target: ~25–35% of discovered companies
Tier C — Score 0–39
  • Poor fit or missing key criteria
  • Stored in Airtable but NOT enriched
  • No spend, no outreach
  • Can be re-evaluated if ICP changes
  • Target: ~45–60% of discovered companies
📤 Layer 2 output — added to each company record
icp_score
Weighted total score 0–100 across all 7 dimensions
integer
tier
A, B, or C — determines whether enrichment runs
enum A|B|C
score_breakdown
JSON object with per-dimension scores — e.g. {"sector_fit": 22, "headcount": 15, "geography": 10, ...}
JSON
ai_reasoning
2–3 sentence Claude-generated explanation of the score — e.g. "Strong sector fit as a physical gas originator. Headquartered in Houston matching US priority. Actively hiring a Head of BD which is a strong intent signal."
string
outreach_angle
Claude-generated suggested angle for first outreach — e.g. "Lead with their BD hiring challenge — you can help them build pipeline while they recruit."
string
proceed_to_enrichment
Boolean — true for Tier A and B, false for C
boolean
Layer 3 · Processing Pipeline
Contact Discovery & Role Scoring
For each approved Tier A and B company, finds 2–5 decision-makers matching persona filters. Claude reads the Job Title Dictionary to classify each contact as buyer, influencer, or blocker — not just by seniority.
👤 Corpus-informed classification · Buyer vs influencer vs blocker

Contact discovery is where most generic tools fail. They return everyone with "Director" or above in their title, regardless of whether those people actually make or influence the purchasing decision for what you're selling. The Job Title Dictionary in the corpus fixes this by providing Claude with precise role definitions for the energy sector.

The distinction between buyer, influencer, and blocker is critical. A Head of Trading at a gas company is a buyer for origination services. A VP of Finance at the same company is a blocker — they can kill deals but won't initiate them. A Commercial Director is both buyer and influencer depending on company structure. Without the corpus, Claude defaults to seniority. With it, it defaults to decision-making role.

Apollo.io People API
Primary
Search contacts by company domain + title filters. Returns name, title, LinkedIn URL, sometimes email directly. Best coverage for US and European markets.
CostIncluded in Apollo plan
Hit rate60–75% for mid-market energy
DiscoLike Contacts
Primary
Contact search scoped to companies from your discovery results. Filter by seniority, department, data availability. Especially strong for companies DiscoLike found that Apollo doesn't have.
CostIncluded in DiscoLike plan
AdvantageConsistent with discovery source
PhantomBuster
Fallback
LinkedIn company page scraper — extracts employee lists with titles. Use when Apollo and DiscoLike both miss a company. Slower but comprehensive for well-maintained LinkedIn company pages.
CostExisting subscription
Use caseGap filling only

Persona Filters — energy sector specific

Commercial / Sales Titles (Buyers)
  • Chief Commercial Officer / CCO
  • VP Sales / VP Commercial
  • Head of Business Development
  • Commercial Director / Manager
  • Head of Origination / Gas Originator
  • Head of Trading / Energy Trader
  • Director of Sales / Sales Director
  • VP Drilling / Drilling Manager (for rig sales)
Technical / Operational Titles (Influencers)
  • CEO / President (small companies — direct buyer)
  • COO (fleet decisions at drilling contractors)
  • Asset Manager (operational buying influence)
  • VP Operations (approves operational spend)
  • Completions Manager (influence on services)
  • Reservoir Engineer (technical gatekeeper)
  • General Manager (SME — often final decision)
📤 Layer 3 output — per contact record created
linkedin_url
LinkedIn profile URL — deduplication key for all contact records across runs
string · unique
full_name
First + last name — cleaned and standardised
string
title_raw
Job title exactly as it appears in the source
string
title_normalised
Standardised title category — e.g. "Head of Sales" normalised to "VP Sales equivalent"
string
role_type
Corpus-informed classification — buyer, influencer, or blocker
enum
seniority
C-suite, VP, Director, Manager, Individual Contributor
enum
location_city
Contact's listed location — city and country
string
company_domain
Foreign key linking to parent company record
string · FK
years_in_role
Tenure in current role when available — longer tenure = more stable contact
integer · nullable
Layer 4 · Processing Pipeline
Email Enrichment — Waterfall
Hits enrichment tools in priority order. First tool to return a result wins. Waterfall stops per contact once an email is found — you pay only for the successful lookup. Catch-all emails flagged separately.
✉️ Waterfall logic · Pay-per-hit · Catch-all quarantine

The waterfall pattern is the key architectural decision here. Running all enrichment tools in parallel and taking the best result would cost 5x more per contact. The waterfall runs tools in order of hit rate and cost-efficiency — if the first tool finds the email, you never call the second. This typically results in 60–70% of emails found on the first tool, 20% on the second, and 10% on tools 3–4. The remaining ~10% get no email found.

Catch-all emails require special treatment. A catch-all domain accepts all incoming email regardless of whether the specific address exists — so the email [email protected] appears valid even if that person doesn't exist. Sending to catch-alls damages your sender reputation without generating replies. They are quarantined in a separate Airtable view and processed by Scrubby before any decision to send.

1. Fullenrich
First
Best hit rate for LinkedIn-sourced contacts. Takes LinkedIn URL as input, returns verified work email. Industry-leading accuracy for professional contacts. Run first on every contact.
Cost~$50–100/mo at volume
Hit rate60–70% for energy sector
URLfullenrich.com
2. Prospeo
Second
Strong fallback for contacts Fullenrich misses. LinkedIn URL input. Good European coverage. Run only when Fullenrich returns no result.
Cost~$25–50/mo
Hit rate40–55% on Fullenrich misses
URLprospeo.io
3. Apollo Built-in
Third
Apollo often has emails directly in contact records. Already paid for via the Apollo subscription. Free marginal cost — run third in waterfall.
Cost$0 (included in plan)
Hit rate30–40% on prior misses
4. Dropcontact
Fourth
European specialist — strong GDPR-compliant data for French, German, Spanish markets. Good for European energy companies that US tools often miss.
CostPay-per-lookup
URLdropcontact.com
5. Hunter.io
Fifth
Domain-based email pattern detection. When individual contact lookup fails, Hunter can find the email pattern for the company domain and construct the likely address. Last resort before "no email found."
CostFree tier + pay per lookup
URLhunter.io
📤 Layer 4 output — added to each contact record
email
Work email address — primary outreach address
string · nullable
email_confidence
Confidence score 0–100 from enrichment source
integer
email_source
Which waterfall tool found this email — "fullenrich", "prospeo", "apollo", "dropcontact", "hunter"
string
is_catch_all
Boolean — domain accepts all email regardless of mailbox existence. These require Scrubby verification before sending.
boolean
email_pattern
Detected email format for the company domain — e.g. "firstname.lastname", "first_initial.lastname"
string · nullable
email_found
Boolean — false if all waterfall tools returned no result. Contact stored but not passed to Instantly.
boolean
Layer 5 · Processing Pipeline
Email Verification
Every enriched email gets deliverability-checked before touching Instantly. Risky emails quarantined — never deleted, never sent without deliberate review. Sender reputation is your most valuable infrastructure asset.
✅ Mandatory · Sender protection · Risky = quarantine not delete

Your sending domains are infrastructure. A damaged domain means every email — not just the bad ones — goes to spam. Verification is the last line of defence before contacts enter Instantly. It adds a few cents per record but prevents the kind of reputation damage that takes 3–6 months and significant effort to recover from.

The quarantine system is important. Risky emails — primarily catch-alls — are not deleted. They sit in a separate Airtable view where you can manually review and decide whether to send. Some catch-all domains are actually fine to send to (large companies that use catch-all as an IT policy). Others are genuinely risky. The quarantine lets you make that call on a case by case basis rather than automatically discarding them or automatically sending to them.

Scrubby
Primary
Specialist in catch-all verification — the hardest category. Can determine with high accuracy whether a catch-all address actually exists. Essential for the catch-all quarantine workflow.
Cost~$10/mo at normal volume
URLscrubby.io
Neverbounce
Alt
Industry standard verification. Good API, bulk pricing, reliable. Use as alternative or to cross-validate Scrubby results on important accounts.
Cost$0.003–0.008/email
URLneverbounce.com
Millionverifier
Bulk
Cheapest per-email option for bulk verification runs. Accuracy slightly lower than Scrubby but fine for initial large-batch processing before handing off to Scrubby for catch-alls.
Cost$0.001–0.003/email
URLmillionverifier.com
📤 Layer 5 output — added to each contact record
email_status
Valid, Risky, or Invalid — drives routing decision. Valid → proceed. Risky → quarantine. Invalid → archive.
enum
deliverability_score
0–100 score from verification tool. Above 80 = safe to send. 50–80 = review. Below 50 = do not send.
integer
mx_record_valid
Boolean — does the domain have valid mail exchange records? False = domain can't receive email at all.
boolean
is_disposable
Boolean — disposable or temporary email address. Always invalid for outreach.
boolean
is_role_based
Boolean — generic role address like info@, contact@, sales@. Low reply rate — quarantine and review.
boolean
safe_to_send
Final boolean used by pipeline — true only if valid, not disposable, not role-based, deliverability above 80
boolean
Layer 6 · Processing Pipeline
Phone Enrichment
Mobile and direct dial enrichment for Tier A contacts only. Same waterfall logic as email. Enables a cold calling layer on top of email sequences for highest-priority accounts.
📱 Tier A only · Waterfall · Mobile priority over direct dial

Phone enrichment runs only on Tier A contacts — the top 15–20% of your list. The reasoning is straightforward: phone data costs more per record, and cold calling is a higher-effort, higher-reward activity that only makes sense for the best-fit prospects. Running it on Tier B contacts wastes budget and calling capacity.

Mobile numbers are significantly more valuable than office direct dials in energy. Decision-makers in trading, origination, and senior commercial roles are rarely at a desk — they're in meetings, on trading floors, or travelling. A mobile number reaches them. A direct dial reaches their assistant. The pipeline prioritises mobile and flags direct dials separately so you know which is which before you call.

1. Apollo
First
Often includes phone numbers in contact records — already paid for. Run first at zero marginal cost. Hit rate varies but worth checking before paying for dedicated phone tools.
Cost$0 (included in plan)
Hit rate25–40% for mobile
2. Prospeo Mobile
Second
Dedicated mobile finder — strong for European and North American markets. Takes LinkedIn URL and returns mobile number with confidence score. Best accuracy for energy sector contacts.
CostPay-per-lookup
URLprospeo.io
3. Lusha
Third
Good phone coverage especially for US market. Chrome extension also available for manual lookups. Run third in waterfall for contacts Prospeo misses.
CostCredit-based pricing
URLlusha.com
4. Datagma
Fourth
Strong for international markets — LatAm and Africa coverage better than most. Good fallback for Colombian, Nigerian, or Indonesian contacts where US-centric tools fail.
CostPay-per-lookup
URLdatagma.com
Layer 7 · Processing Pipeline
Signal Detection & Urgency Scoring
Runs against every Tier A and B company. Detects buying signals and boosts urgency scores. Claude reads the Signal Dictionary before classifying any event. Re-runs weekly and feeds the intelligence reports. High-signal companies go to the front of the outreach queue automatically.
⚡ Weekly cadence · Corpus-informed · Urgency ranking

Signal detection is what separates a static lead list from a living intelligence system. A company that scored Tier B three months ago may have just been awarded a major contract, hired a new CCO, or announced a major expansion. That changes their urgency from "follow up eventually" to "contact this week." Without automated signal detection, you'd miss this entirely or find out too late.

The Signal Dictionary in the corpus is what makes this layer intelligent. Without it, Claude treats "Company X awarded offshore block in Nigeria" the same as "Company X releases Q3 earnings report" — both are news, neither obviously more important than the other. With the corpus, Claude knows the offshore block award means the company will need drilling services within 12–18 months and the person to contact is the VP Drilling or Asset Development Manager. The signal becomes actionable intelligence, not just noise.

💼
Jobs Intelligence Feed — Layer 0C

The Job Posting Scraper is now fully replaced and superseded by Layer 0C — a continuously running Apify pipeline that harvests LinkedIn job descriptions at scale across all energy sectors. Signal scores are computed per posting and propagated to parent company urgency scores automatically. No manual configuration needed — it runs forever.

  • Runs every 6 hours — 4× daily refresh on signal data
  • Covers Power & Utilities, LNG, Trading, O&G, Energy Services
  • Signal score 1–10 per posting → urgency boost on company record
  • Commercial / VP-level postings = highest urgency boost (+25 pts)
  • See Layer 0C for full schema, extraction logic, and cost breakdown
📰
Google News API

Free API returning recent news articles by company name + keyword. Claude classifies each article against the Signal Dictionary to determine relevance and urgency boost. Runs per company weekly.

  • Queries: "[company name] contract", "[company name] expansion", "[company name] acquisition"
  • Claude classification: relevant signal / irrelevant / corpus update candidate
  • Source URL stored for use as outreach hook
💰
Crunchbase Free Tier

Funding round data — company raised Series A, B, growth equity, or strategic investment. Growth capital = expansion mode = budget to spend on new services. Especially relevant for energy tech and services companies.

  • Tracked: funding rounds in last 24 months
  • Urgency boost: +20 points for round within 6 months, +10 for 6–24 months
🗞️
Trade Press Scraper

Targeted scraper against Rigzone, Upstream Online, LNG World News for contract awards, project announcements, and block awards. These are the most actionable signals in the energy sector — direct indicators of procurement need.

  • Rigzone: rig contracts, drilling program announcements
  • Upstream Online: PSC awards, exploration licenses, project FIDs
  • LNG World News: terminal contracts, cargo deals, liquefaction projects
  • Baker Hughes rig count: weekly drilling activity by basin

Signal → Urgency Boost Mapping (from Signal Dictionary)

Signal TypeExampleUrgency BoostRecommended Action
PSC / Block Award"ANH awards block to Operator X in Colombia"+30 ptsContact VP Drilling within 2 weeks
Hiring sales/BD role"Head of Business Development" job posted+25 ptsLead with commercial capacity angle
Hiring VP/C-Suite commercial"CCO", "VP Commercial" posted — via Layer 0C+30 ptsCompany building commercial leadership — highest urgency
Multiple open commercial roles3+ postings at same company — via Layer 0C+20 ptsExpansion mode — contact immediately
New energy company discoveredJob posting from company not yet in DB — Layer 0C stub+15 ptsTrigger full Layer 1–3 enrichment pass
Project FID"Company X takes FID on LNG terminal"+25 ptsTarget Head of Commercial / CCO
New funding round"Company X raises $50M Series B"+20 ptsLead with growth-phase angle
Executive hire"Company X appoints new CCO"+20 ptsReach out to new executive directly
M&A announcement"Company X acquires smaller operator"+15 ptsIntegration phase creates opportunity
Conference presenceExhibiting at CERAWeek+10 ptsReference event in outreach
Rig count increaseBaker Hughes: basin rig count up 15%+10 pts (sector)All operators in basin benefit
Earnings / growth news"Company X reports record revenue"+5 ptsLow urgency — monitor only
📤 Layer 7 output — added to company record
urgency_score
Additive boost on top of ICP score — e.g. ICP score 72 + urgency boost 45 = total priority score 117
integer
active_signals
Array of current signal objects — each with type, date, summary, source URL, urgency points
JSON array
signal_summary
Claude-generated 1–2 sentence summary of why this company is high priority right now
string
outreach_this_week
Boolean flag — true if total priority score places this company in top 10% of current database
boolean
signal_source_url
URL of primary signal source — used as hook in AI-written first lines
string · nullable
last_signal_date
Date of most recent signal — recency weighting decays score over time if no new signals
datetime
Layer 8 · Processing Pipeline
Airtable Master Database
Two linked tables — Companies and Contacts. Every pipeline run appends new records and updates existing ones. Deduplication on domain and LinkedIn URL. The single source of truth for all downstream outputs.
🗄️ Always-on · Deduped · Linked tables · All outputs pull from here

Airtable is the persistence layer — the database that accumulates and grows with every pipeline run. Everything upstream processes records temporarily in Python memory. Airtable is where records live permanently. Every output — Instantly CSV, client portal, weekly digest, PDF report — reads directly from Airtable. Change a record in Airtable and every output reflects it immediately.

The two-table structure with a linked field is important. Companies and Contacts are separate records linked by domain. This means you can look at a company and see all its contacts, or look at a contact and see all the company-level data (score, signals, tier) without duplicating that data on every contact record. It also means if a company's tier changes — because they got a big signal — all their contacts automatically inherit that urgency in any filtered view.

Companies Table — all fields
  • domain — unique key
  • company_name, website_url
  • industry_tags, sector_normalised
  • headcount_range, hq_country, hq_city
  • icp_score (0–100), tier (A/B/C)
  • urgency_score, total_priority_score
  • score_breakdown (JSON), ai_reasoning
  • outreach_angle, signal_summary
  • active_signals (JSON array)
  • outreach_this_week (boolean)
  • conference_presence, hiring_signal
  • source, first_seen, last_updated
  • linked_contacts (relationship field)
Contacts Table — all fields
  • linkedin_url — unique key
  • full_name, first_name, last_name
  • title_raw, title_normalised, seniority
  • role_type (buyer/influencer/blocker)
  • email, email_status, safe_to_send
  • mobile_number, direct_dial
  • location_city, location_country
  • ai_first_line (personalised opening line)
  • outreach_status (not started / in sequence / replied / closed)
  • campaign_tag (which Instantly campaign)
  • sent_to_instantly (boolean + date)
  • reply_received (boolean)
  • linked_company (relationship to Companies table)
  • first_seen, last_updated
Deduplication logic
Before any record is inserted, the pipeline checks for an existing record with the same domain (companies) or LinkedIn URL (contacts). If found, it updates the existing record with new data — it never creates a duplicate. This means the database grows cleanly over time without manual cleanup. A company that appears in run 1, run 5, and run 12 has a single record that reflects the most current data from all three runs.
Outputs · Internal
Internal Outputs — For Your Outreach
Outputs generated automatically for your own prospecting and campaign management. These feed directly into Instantly and your daily workflow.
📤
Instantly Campaign CSV
Generated on demand · Auto-filtered · Safe-to-send only
Ready-to-import CSV for Instantly. Pulls from Airtable — Tier A first, then B, sorted by total priority score descending. Automatically excludes anyone already in a sequence. This is the primary output you use to run campaigns.
Columns included
  • First name, last name
  • Email (verified, safe_to_send only)
  • Company name, domain
  • Job title
  • AI-written first line (personalised per contact)
  • Company tier (A/B)
  • Signal summary (for reference)
  • LinkedIn URL
Filters applied automatically
  • safe_to_send = true only
  • sent_to_instantly = false only
  • role_type = buyer first
  • Tier A before Tier B
  • Sorted by total_priority_score desc
  • Separate file for catch-all quarantine
🤖
AI-Written First Lines
Per contact · Corpus-informed · Review before sending
Claude generates a personalised opening line for each contact using the signal summary, company description, contact title, and corpus context. Not a template — a genuinely contextual sentence that references something real about the company or the contact's role.
What informs each line
  • Primary signal (e.g. "Saw you're hiring a Head of BD")
  • Company description (what they actually do)
  • Contact's specific role (from Job Title Dictionary)
  • Regional context (if relevant)
  • Industry-specific terminology (from corpus)
Rules applied
  • Never "quick question" or "I" → "we"
  • No em dashes
  • Lowercase casual tone
  • No corporate filler language
  • Max 1 sentence — opening line only
  • You review before anything goes live
Outputs · Intelligence
Intelligence Reports & Dashboards
Proprietary market intelligence generated from your pipeline data. Significant competitive advantage — nobody else is running this systematic signal detection against the energy sector at your level. Can be repurposed for clients.
📊
Live Intelligence Dashboard
Always-on · Airtable-connected · Open when you want
A live web dashboard (same tech stack as the REAL portal — built on Airtable API) that you open any time you want a current view of your market intelligence. Shows your database health, signal activity, sector heat, and watchlist alerts in real time. No refresh needed — always current.
Dashboard panels
  • Total companies in DB by tier (A/B/C)
  • New companies added this week
  • Companies with active signals (count + list)
  • Top 10 highest priority accounts right now
  • Sector breakdown of Tier A companies
  • Geography heat map of signal activity
  • Watchlist accounts — signal status per account
  • Outreach pipeline — in sequence / replied / closed
Interactive features
  • Filter by sector, geography, tier, signal type
  • Click company → full profile with all data
  • Export filtered list to CSV directly
  • Add company to watchlist from dashboard
  • Mark company as "contacted" to track outreach
  • Week-over-week signal comparison
📬
Weekly Signal Digest — Email
Every Monday · Auto-generated · Forwardable to clients
Automatically generated email sent every Monday morning. Summarises the week's most important signals, new Tier A companies, and watchlist updates. Written in plain language — not a data dump. Designed so you could forward it directly to a client as a value-add.
Email sections
  • 🔥 This week's top 5 signals (most urgent)
  • 🆕 New Tier A companies discovered
  • 📋 Watchlist updates (accounts you're tracking)
  • 📈 Hiring trend summary (who's building sales teams)
  • 🗺️ Geography spotlight (hottest region this week)
  • 📊 DB stats (total size, growth, sector breakdown)
Client repurposing
  • Forward as-is to existing clients as a value-add
  • Strip out internal data, send as market intelligence brief
  • Customise per client's sector focus before sending
  • Use as lead for new client conversations ("here's what we track")
  • Eventually package as paid intelligence subscription
🗺️
Signal Heat Map Report
Weekly PDF · Sector × Geography matrix · Forwardable
Auto-generated PDF showing signal intensity across the sector × geography matrix. Which sector in which region is generating the most buying signals right now. This is strategic intelligence — tells you where to focus prospecting effort and where the market is moving.
Heat map axes
  • Rows: O&G upstream / LNG / Gas trading / Power / Energy services / Consulting
  • Columns: North America / Europe / LatAm / Africa / SE Asia
  • Cell value: signal count + intensity score this week
  • Color coded: green (hot) → amber → red (cold)
  • Week-over-week change arrows
Strategic value
  • Know where to focus DiscoLike queries next week
  • Know which sectors are in growth mode vs contraction
  • Anticipate client needs before they do
  • Use as conversation starter in business development
  • Proof of intelligence capability in proposals
👀
Company Watch List Alerts
Real-time · WhatsApp / Slack · Per account
You maintain a watchlist of specific high-value accounts you're actively pursuing or monitoring. Any time a new signal fires for a watchlist company — hiring, contract award, funding, news — you get an instant notification via WhatsApp or Slack. No delay, no weekly wait. Act immediately.
Alert content
  • Company name + signal type
  • 1-sentence signal summary
  • Source URL (click to read full article)
  • Urgency score boost (+X points)
  • Recommended action (who to contact, what to say)
  • Direct link to company record in Airtable
Use cases
  • Client prospect you've been warming — new signal = perfect timing
  • Account that went cold — re-engage when signal fires
  • Competitor's clients — detect when they might be unhappy
  • Monitor key accounts for existing clients
📈
Hiring Trend Report
Weekly · Energy sector focus · Competitive intelligence
Weekly report of energy companies actively hiring commercial, sales, BD, and origination roles. This is your single highest-value signal list for EnergyLeads' own ICP — every company on this list is explicitly demonstrating that they need commercial help and have budget to spend on it.
Report contents
  • Company name + domain + tier
  • Role being hired (title + seniority)
  • Job posting date
  • Job posting URL
  • Suggested outreach angle based on role
  • Contacts already in DB for this company
Why this is a competitive advantage
  • Most agencies find this manually, if at all
  • You have this automated and delivered weekly
  • Timing advantage — you reach out while they're still hiring
  • Outreach angle is built-in — "help you build pipeline while you recruit"
  • Can be delivered to clients as value-add intelligence
Outputs · External
Client Deliverables
Outputs you deliver to clients — either as part of a database product, an intelligence subscription, or as proof-of-value in a proposal. All pull from Airtable and can be white-labeled.
🌐
Client Delivery Portal
Live · Airtable-connected · Password protected · Like REAL
Filterable web portal connected live to Airtable. The client logs in, sees their database, filters however they want, and downloads what they need. Built on the same stack as the REAL portal already deployed at energyleads.co/real/. White-labelable per client.
Features
  • Filter by company tier, sector, geography, signal
  • Search by company name or contact name
  • View full company profile + all contacts
  • Download filtered CSV directly
  • Always live — data refreshes automatically
  • Password protected per client
  • Custom URL — client.energyleads.co/[clientname]
What clients see (configurable)
  • Company name, sector, location, headcount
  • ICP score and tier
  • Active signals (current buying signals)
  • Key contacts with title + email
  • AI reasoning summary (why this account)
  • Recommended outreach angle
  • Can hide scoring methodology if preferred
📄
PDF Top Accounts Report
Auto-generated · Top 20–30 Tier A · EnergyLeads branded
Automatically generated PDF report of the top 20–30 Tier A companies for a client's ICP. One section per company. Designed for client presentations, quarterly reviews, and proposals. Generated in minutes from Airtable data — no manual work.
Per company section includes
  • Company name, domain, HQ location
  • What they do (from website description)
  • Why they're priority (AI reasoning)
  • Active signals with dates
  • ICP score and tier
  • Top 3 contacts with titles
  • Recommended outreach angle
Report structure
  • EnergyLeads branded cover page
  • Executive summary (market context, methodology)
  • Signal heat map for client's sectors
  • Company profiles (sorted by priority score)
  • Appendix: full contact list per company
  • Client name + date on every page
📊
Company One-Pager
Per account · AI-generated · Proof-of-value in proposals
Individual AI-generated one-pager for a specific high-value account. Used as proof-of-value in new business pitches — "here's the intelligence we already built on your top prospect before you even signed with us." Shows clients what the system can do with their specific targets.
One-pager contents
  • Company overview (what they do, market position)
  • Why they fit the ICP (scored dimensions)
  • Current signals (hiring, funding, news) with dates
  • Decision-maker contacts with titles and emails
  • Suggested outreach hook (1–2 sentences)
  • Competitive context if available
Use cases
  • Proposal attachment — "we built this before you signed"
  • Meeting prep for client (they're calling this prospect)
  • Onboarding — show client the quality of your intelligence
  • Upsell — client wants one-pagers on all their top accounts
🗞️
Client Intelligence Brief
Weekly or monthly · Sector-specific · Paid add-on potential
A curated intelligence brief delivered to clients covering market signals relevant to their specific sector and geography. Derived from the same corpus and signal detection running for your own pipeline — zero extra work to produce. The internal weekly digest, customised for their ICP and formatted for client consumption.
Brief contents
  • Top signals in their sector this week
  • New high-priority accounts in their ICP
  • Hiring trends relevant to their market
  • Deal flow and contract awards
  • Regulatory changes in their geography
  • Recommended accounts to prioritise this week
Monetisation path
  • Included free — positions you as intelligence partner, not just list vendor
  • Charged separately — $500–2,000/mo as market intelligence subscription
  • Used as sales collateral — "here's a sample of what you'd receive"
  • Eventual standalone product if demand is there