SIGNALS
Market Intelligence Platform · V1.0

See the signal. Before the crowd does.

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.

Domain contradictoryintelligence.com
Status Active · v1.0 · Open to consulting
Stack Claude API · Python · Supabase
Articles
Signals
Tickers
Avg Signal
Last Updated

Intelligence Feed

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
implied_sectors
Sectors likely affected (e.g. Semiconductors, Cloud)
winners / losers
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