The War on Greed starts here.
UNREDACTED is an open source intelligence platform that monitors and exposes the nexus between government spending, campaign finance, and policy decisions. We are reclaiming transparency in an era of hidden influence and dark money.
Access web demo here: unredacted.vercel.app
For too long, the American people have been kept in the dark about how their tax dollars are spent and who truly influences the policies that shape their lives. Corporate welfare, backroom deals, and dark money have corrupted the democratic process, leaving ordinary citizens without a voice.
"War on Greed" is our rallying cry against the systemic corruption that has eroded public trust in government. We believe that:
- Every dollar spent by the government should be traceable and accountable
- Every policy decision should be transparent in its origins and beneficiaries
- Every elected official should answer to the people, not to wealthy donors
"No Taxation Without Representation" isn't just a historical slogan—it's a living principle. When billionaires and corporations write the checks that fund campaigns, they get the representation. When ordinary Americans pay taxes, they get the bill. We're here to change that equation.
- $775 Billion in federal contracts awarded annually—with little public scrutiny
- $14 billion spent on federal elections in 2024—much of it from undisclosed sources
- Zero open source tools, comprehensive public intelligence tools to connect the dots between donors, spending, and policy
The UN*REDACTED MONITOR exists to give the American people the intelligence tools to hold power accountable.
- We need contributors in adding more data sources
- We need work done on dark money tracing methods
- we need contributors to test he validity of the results
- Add more live featuers to the monitor
- More beautiful graphs!
| Source | Data Type | Coverage |
|---|---|---|
| USASpending.gov | Federal contracts, grants, loans | All federal agencies, 2017-present |
| SAM.gov (via USASpending) | Contract awards, modifications | Real-time updates |
| Source | Data Type | Coverage |
|---|---|---|
| FEC.gov API | Campaign contributions, PACs, candidate committees | All federal candidates, committees, donors |
| OpenSecrets (planned) | Industry influence, lobbying data | Historical and current cycles |
| Source | Data Type | Coverage |
|---|---|---|
| Federal Register API | Proposed rules, final regulations, significant documents | All federal agencies |
| GovInfo.gov | Congressional bills, public laws | Current and historical |
| Source | Data Type |
|---|---|
| RSS Feeds | DOJ press releases, GAO reports, oversight news |
UNREDACTED is powered by a multi-agent AI system that decomposes complex queries, gathers intelligence from multiple sources, and synthesizes actionable insights.
Purpose: Track policy movements and regulatory changes
Capabilities:
- Searches Federal Register for proposed and final rules
- Identifies significant regulations affecting industries or topics
- Tracks regulatory timelines and comment periods
- Surfaces policy patterns that benefit specific donors
Data Sources: Federal Register API
Purpose: Investigate government spending patterns
Capabilities:
- Searches USASpending.gov for contracts and grants
- Identifies spending anomalies and outliers
- Cross-references recipients with donor networks
- Surfaces no-bid contracts and sole-source awards
Data Sources: USASpending.gov API
Purpose: Map campaign finance and donor networks
Capabilities:
- Searches FEC data for committees and candidates
- Builds donor network graphs showing contribution patterns
- Identifies industry influence through employer/occupation analysis
- Cross-references donors with contract recipients
Data Sources: FEC.gov API
Purpose: Synthesize intelligence and identify corruption patterns
Capabilities:
- Analyzes data from all other agents to find conflicts of interest
- Detects patterns like "revolving door" between industry and government
- Identifies pay-to-play relationships between donors and spending
- Surfaces suspicious timing between contributions and contract awards
- Generates red flags for further investigation
Synthesis Model: DeepSeek Chat (default) or Groq (llama-3.3-70b-versatile)
The Orchestrator is the central intelligence coordinator that:
- Decomposes user queries using AI (DeepSeek/Groq)
- Dispatches tasks to the four specialized agents in parallel
- Synthesizes results from all agents into unified intelligence
- Surfaces corruption patterns and actionable insights
Query Flow:
User Query → Orchestrator → [PolicyAgent + SpendingAgent + DonorAgent]
↓
CorruptionAgent (Analysis & Synthesis)
↓
Unified Intelligence Report
Primary Tables:
| Table | Purpose |
|---|---|
contracts |
Federal contract awards with recipient details |
grants |
Federal grant awards |
regulations |
Federal Register documents |
politicians |
Elected officials and candidates |
contributions |
FEC Schedule A (individual contributions) |
pac_committees |
Political action committees |
disbursements |
FEC Schedule B (committee spending) |
candidate_totals |
Aggregated candidate financial totals |
opensecrets_summaries |
Industry influence summaries |
Full-Text Search Indexes:
-- Contract search (recipient + description)
idx_contracts_search: GIN index on to_tsvector(description || recipient_name)
-- Grant search (recipient + description)
idx_grants_search: GIN index on to_tsvector(description || recipient_name)
-- Regulation search (title + abstract)
idx_regulations_search: GIN index on to_tsvector(title || abstract)
-- Contribution search (donor + employer + occupation)
idx_contributions_search: GIN index on to_tsvector(donor || employer || occupation)Performance Indexes:
-- Geographic and political indexes
idx_politicians_state_party: (state, party)
idx_politicians_chamber: chamber
idx_politicians_name: name
-- Campaign finance indexes
idx_contributions_committee: committee_id
idx_contributions_candidate: candidate_id
idx_contributions_date: date
idx_contributions_employer: contributor_employer
idx_pac_committees_type: committee_type
idx_pac_committees_party: party
idx_candidate_totals_cycle: cycleNode Types:
:Company- Contract/grant recipients (UEI-based):Politician- Elected officials (Bioguide ID):Agency- Federal agencies:Contract- Individual contract awards:Regulation- Federal Register documents:PAC- Political committees:Contribution- Individual donations
Constraints (Uniqueness):
company_uei: Company.uei IS UNIQUE
company_name: Company.name IS UNIQUE
politician_id: Politician.bioguide_id IS UNIQUE
agency_code: Agency.code IS UNIQUE
contract_id: Contract.award_id IS UNIQUE
regulation_id: Regulation.document_number IS UNIQUE
pac_id: PAC.committee_id IS UNIQUE
contribution_id: Contribution.contribution_id IS UNIQUE
Performance Indexes:
contract_date: (Contract.award_date)
contract_amount: (Contract.award_amount)
regulation_date: (Regulation.publication_date)
contribution_date: (Contribution.date)
company_normalized: (Company.normalized_name)
politician_state: (Politician.state)
politician_party: (Politician.party)
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │────▶│ Backend API │────▶│ AI Agents │
│ (React/Vite) │ │ (Node.js) │ │ (4 Agents) │
└─────────────────┘ └─────────────────┘ └────────┬────────┘
│
┌──────────────────────────┼──────────┐
│ │ │
▼ ▼ ▼
┌────────────┐ ┌────────────┐ ┌────────────┐
│ PostgreSQL │ │ Neo4j │ │ FEC │
│(Relational)│ │ (Graph) │ │ API │
└────────────┘ └────────────┘ └────────────┘
▲ │ ▲
│ │ │
│ ┌────────┴─────────┘
│ │
┌────────────┐ ▼
│ Redis │ USASpending.gov
│ (Cache) │ Federal Register
└────────────┘
- Docker & Docker Compose
- Node.js 18+ (for local development)
- Python 3.10+ (for ETL processes)
# Clone the repository
git clone https://github.com/policybot-io/UNREDACTED.git
cd UNREDACTED
# Start databases
docker-compose up -d neo4j postgres redis
# Set up environment variables
cp .env.example .env
# Edit .env with your API keys
# Install dependencies and start
npm install
npm run dev:all
The application will be available at http://localhost:5173
Government Data (required):
| Service | Variable | How to Get |
|---|---|---|
| FEC API | FEC_API_KEY |
api.open.fec.gov — free |
AI Provider (choose one):
| Provider | Variable | Notes |
|---|---|---|
| DeepSeek | DEEPSEEK_API_KEY |
Default. Best price/performance |
| OpenAI | OPENAI_API_KEY |
GPT-4o, GPT-4-turbo |
| Anthropic Claude | ANTHROPIC_API_KEY |
Claude 3.5 Sonnet |
| Groq | GROQ_API_KEY |
Ultra-fast. Free tier available |
| Alibaba Qwen | QWEN_API_KEY |
Qwen 2.5 series |
| xAI Grok | XAI_API_KEY |
Grok by xAI |
| Ollama | OLLAMA_BASE_URL |
Local models — no key required |
Set AI_PROVIDER=deepseek|openai|anthropic|groq|qwen|xai|ollama in .env to select your provider.
Tip: You can also configure providers from the app UI — click ⚙ Settings in the navigation bar to enter API keys without touching the
.envfile.
- Contributing Guide - How to contribute and set up development environment
- Phase 1 Implementation - Original Phase 1 architecture
The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version.
UNREDACTED is an open-source intelligence platform for the public good. We believe that transparency is the antidote to corruption, and that technology should serve democracy—not undermine it.
Star this repo ⭐ to support the movement Open an issue 🐛 to report problems Submit a PR 📝 to contribute code Share the platform 📢 to spread awareness