Skip to content

joaquinllenado/MarketShift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MarketShift

Competitive intelligence from a single product URL. Paste a competitor’s or your own product URL; MarketShift discovers similar companies, gathers news (launches, funding, partnerships, market moves), classifies signals, and surfaces market opportunities, competitive risks, and suggested next steps. Optional: get a short spoken briefing (audio summary) of the results.


What it does

  • One input: A product or company URL (e.g. Notion, Coda, your own landing page).
  • Pipeline: Scrapes the URL, finds the top 5 relevant competitors (Exa + LLM), then for each competitor and the market runs news, web, and Product Hunt searches.
  • Structured output: An LLM classifies items into product announcements, funding, partnerships, and market signals, then synthesises market opportunities, competitive risks, and action steps.
  • Dashboard: A single view of “what changed” and “what to do” (product announcements, funding, partnerships, market signals, opportunities, risks, next steps).
  • Voice brief (optional): Generate an MP3 summary (30–60 seconds) of the analysis via text-to-speech.

Tech stack

Layer Stack
Frontend React 19, Vite, Tailwind CSS v4 (JavaScript)
Backend Python, FastAPI
Search Exa (company/news search, scraping)
LLM DeepSeek (V3/R1) via GMI Cloud — intake, analysis, narrative summary
TTS ElevenLabs via GMI Cloud (voice summary)

Quick start

1. Backend

cd backend
source venv/bin/activate
pip install -r requirements.txt

Set environment variables (see Environment), then:

uvicorn main:app --reload

API: http://localhost:8000

2. Frontend

cd frontend
npm install
npm run dev

App: http://localhost:5173

Frontend proxies /api/* to the backend (see frontend/vite.config.js).

3. Run the pipeline

  • POST a product URL to run the full pipeline:
    curl -X POST http://localhost:8000/pipeline \
      -H "Content-Type: application/json" \
      -d '{"url": "https://www.notion.so"}'
  • POST voice summary (uses latest pipeline results): POST http://localhost:8000/pipeline/voice-summary → returns MP3.

Environment

Create a .env in backend/ with:

Variable Purpose
EXA_API_KEY Exa search and content API
GMI_API_KEY GMI Cloud (DeepSeek LLM + ElevenLabs TTS)

Project layout

MarketShift/
├── frontend/                 # React + Vite + Tailwind
│   ├── src/
│   │   ├── App.jsx
│   │   ├── LandingPage.jsx   # Hero input → AgentTimeline → Dashboard
│   │   ├── AgentTimeline.jsx # Research progress UI
│   │   └── MarketShiftDashboard.jsx  # Signals, sentiment, competitors, actions
│   └── vite.config.js        # API proxy /api → :8000
├── backend/
│   ├── main.py               # FastAPI app, /pipeline, /pipeline/voice-summary
│   ├── agents/
│   │   ├── orchestrator.py   # Pipeline: intake → sub_1 → sub_2 → analysis → sub_3
│   │   ├── intake_agent.py   # URL → scrape → competitor discovery (Exa + LLM)
│   │   ├── sub_agent_1.py    # Per-competitor & market news/web/Product Hunt
│   │   ├── sub_agent_2.py    # Aggregate, dedupe, persist to data/results.json
│   │   ├── analysis_agent.py # LLM classification + opportunities/risks/actions
│   │   ├── sub_agent_3.py    # Shape output for frontend
│   │   └── voice_summary.py  # Pipeline output → narrative → TTS → MP3
│   └── data/                 # results.json, voice_summary.mp3 (gitignored)
└── AGENTS.md                 # Developer/agent notes (commands, architecture)

API overview

Method Path Description
POST /pipeline Full pipeline: single product url → structured intelligence
POST /pipeline/voice-summary Generate MP3 briefing from latest pipeline results

Pipeline data flow

  1. Intake — Scrape product URL (Exa), find similar companies (Exa), LLM picks top 5 competitors and market context.
  2. Sub-agent 1 — For each competitor and the market: news, web, Product Hunt searches (Exa).
  3. Sub-agent 2 — Deduplicate by URL, tag source, append run to data/results.json.
  4. Analysis — LLM classifies items into product announcements, funding, partnerships, market signals; synthesises opportunities, risks, action steps.
  5. Sub-agent 3 — Format for frontend (same structure as PipelineResponse).

Result includes: product_announcements, funding, partnerships, market_signals, market_opportunities, competitive_risks, action_steps, plus query, persisted_at, and optional product/competitor metadata.


License

MIT License. See LICENSE for details.

About

MarketShift is a competitive intelligence platform that monitors your competitor's every move, classifies signals, and surfaces market opportunities, competitive risks, and suggested next steps.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors