Contradictory Intelligence ingests market newsletters and financial RSS feeds, enriches each article through a two-pass AI pipeline, and extracts structured investment signals — winners, losers, tickers, and strategic implications — in real time.
—
Articles Processed
and growing
—
Signals Extracted
winners + losers
—
Unique Tickers Tracked
across all articles
—
Avg Signal Strength
0–10 scale
What This Demonstrates
Pass 1 · Enrichment
Context, Cleaned
Summary, topics, tags, and key themes extracted from every article via Claude Sonnet. Each article is structured into a consistent schema before signals are extracted.
Pass 2 · Signal Extraction
Investment Alpha
Winners, losers, mentioned and implied tickers, sectors, and a 0–10 signal strength score — extracted by a second AI agent reading the enriched output of Pass 1.
V2 Preview · Sector Intel
Vertical Deep Dives
Industry-specific modules for real estate, healthcare, and emerging tech — with contrarian and problem-mining reports that go beyond what the headline says.
Built by Ethan Street
This is a v1.0 MVP demonstrating practical AI orchestration — specifically, chaining multiple Claude agents to transform raw newsletter content into structured, queryable investment intelligence. It's not a finished product. It's proof of what's possible when you build seriously with modern AI tools.
Open to consulting engagements in AI pipeline design, structured data extraction, and automation workflows.
AI-enriched articles with extracted investment signals. Click any card to expand bullets, strategic implications, and winners/losers.
Live Feed
Loading...
Fetching intelligence...
Under the Hood · AI Orchestration
Two agents. One intelligence layer.
This pipeline demonstrates practical AI orchestration: chaining multiple Claude agents to transform raw newsletter text into structured, queryable investment signals. Each agent has a distinct role and operates on the output of the previous step — a pattern that produces more accurate, auditable results than a single "do everything" prompt.
End-to-End Pipeline Flow
01
📡
RSS Ingestion
Financial newsletters and market RSS feeds are polled. Raw articles are fetched and staged for processing.
Python
›
02
🧠
Pass 1 — Enrichment Agent
Claude Sonnet reads each raw article and extracts a structured schema: summary, topics, tags, and key themes.
Claude API
›
03
📊
Pass 2 — Signal Agent
A second Claude agent reads the enriched output and identifies investment signals: winners, losers, tickers, and a 0–10 signal score.
Claude API
›
04
🗄️
Storage
Structured output is written to Supabase (Postgres). Articles, signals, and tickers land in normalized, queryable tables.
Supabase
›
05
⚡
Live Display
This interface reads directly from Supabase via REST API and renders everything in real time — no backend server required.
HTML + JS
The Two-Pass Enrichment System
1
Pass 1 · Context & Enrichment
Understand the Article
The first agent reads raw article text and builds a structured understanding of what it says — without yet making any investment judgments. This creates a clean, consistent schema that the second agent can work from reliably, reducing noise in the final output.
ai_summary_short
One-sentence plain-English summary of the article
ai_summary_bullets
3–5 key points extracted as structured bullets
primary_topic
Main subject category (e.g. AI Infrastructure)
secondary_topics
Array of additional relevant topic areas
tags
Free-form keyword tags for search and filtering
2
Pass 2 · Signal Extraction
Extract the Alpha
The second agent receives the enriched output from Pass 1 and applies an investment lens — identifying who wins, who loses, which tickers are relevant, and how strong the signal is. Separating these concerns produces more accurate, more auditable results than a single combined prompt.
signal_strength
0–10 score indicating investment relevance and urgency
strategic_implications
Paragraph-form analysis of what this means for markets
Named entities + tickers expected to benefit or suffer
implied_tickers
Ticker symbols relevant even if not named in the article
Orchestration Architecture
🔗
Agent Chaining
Each agent operates on the structured output of the previous step. Pass 2 never sees the raw article — only the clean schema produced by Pass 1. This reduces hallucination and improves consistency across articles.
Claude SonnetPrompt Chaining
📋
Structured Output
Both agents are instructed to respond in strict JSON. The pipeline validates and normalizes this output before writing to the database — ensuring every article lands in a consistent schema regardless of how the source was written.
JSON ModePythonSupabase
⚙️
Separation of Concerns
Enrichment and signal extraction are intentionally separate passes. A single "do everything" prompt produces noisier results. Two focused agents — each with a clear role — produce higher-quality, more auditable outputs that are easier to debug and improve.
Multi-AgentPrompt Engineering
Pipeline Metrics — Live from Database
—
Articles Processed
Total articles ingested and enriched through both pipeline passes
—
Signals Extracted
Individual winner/loser signals identified across all articles
—
Unique Tickers
Distinct ticker symbols referenced or implied across the dataset
2
AI Passes Per Article
Every article goes through enrichment then signal extraction before storage