Skip to content

Open-Paws/open-paws-media-intel

Repository files navigation

open-paws-media-intel

Social and media intelligence platform for animal advocacy campaigns.

Monitors news and social sentiment, discovers journalists and creators aligned with animal welfare, tracks campaign resonance across platforms, and surfaces outreach opportunities.

Capabilities

  • News monitoring with AI topic classification and advocacy-perspective sentiment scoring (20+ RSS feeds)
  • Journalist and creator database with alignment scoring seeded with real reporters covering animal agriculture and food policy
  • Reddit community monitoring with OUTREACH_OPPORTUNITY and BURNOUT_SIGNAL detection
  • Spanish-language influencer discovery across Mexico, Spain, Argentina, Colombia, and Chile
  • Personalized outreach email generation with reference to past coverage
  • Streamlit campaign intelligence dashboard
  • FastAPI serving all data

Architecture

src/
  news/         — RSS ingestion, sentiment, trend detection
  contacts/     — Journalist + creator DB with alignment scoring
  social/       — Reddit monitor, cross-platform sentiment, Spanish market
  outreach/     — Personalized email generation
  api/          — FastAPI endpoints
dashboard/      — Streamlit 5-tab dashboard

Quick Start

pip install -e ".[dev]"
cp .env.example .env   # fill in optional API keys

# Run the news monitor once
python -m src.news.monitor --fetch --classify

# Start the dashboard
streamlit run dashboard/app.py

# Start the API
uvicorn src.api.server:app --reload

Environment Variables

See .env.example — all keys are optional. RSS-based news monitoring and the journalist database work without any API keys. Reddit falls back to mock mode. Outreach generation falls back to template mode.

Sentiment Scoring

Sentiment is scored from the animal welfare perspective (not generic news sentiment). Score range is -1.0 (bad for animals) to +1.0 (good for animals). A welfare legislation ban scores positive. A deregulation exemption scores negative.

Privacy

  • Social monitoring stores aggregate signals only — no individual activist identities
  • Outreach logs track metrics only — message body is never stored after generation
  • Contact DB contains public-figure data only (journalists, creators with public profiles)

Tech Stack

Python 3.11+, FastAPI, Streamlit, SQLite (via sqlite-utils), feedparser, PRAW, Pydantic, Google Gemini (optional)

License

MIT

About

Social and media intelligence platform for animal advocacy campaigns

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors