Inspiration

Financial markets move fast, often faster than humans can react. News breaks across dozens of sites with mixed sentiment and vague headlines, leaving investors unsure how their portfolio will be affected.

We wondered "What if an AI system could continuously read financial news, understand it, and instantly tell you whether your stocks are at risk?"

That became the inspiration for NOVA, an automated, news engine. Entirely human written for human use.

What it does

NOVA is a tool that:

  • Scrapes live articles from financial news sites
  • Detects when a new article breaks
  • Reads the entire article (headline, metadata, text)
  • Uses a reasoning model to determine:
    • Which portfolio stocks may be affected
    • How positive or negative the article’s sentiment is
  • Automatically saves all findings in a structured JSON knowledge base
  • Tracks each writer’s historical accuracy (trust score) and sentiment tendencies
  • Works with a fully custom mock publication site (“Fahmy Macro Wire”) for live demo reliability

How we built it

Frontend / Mock News Website

  • Built by Fahmy using HTML and CSS, hosted on Vercel
  • Includes multiple demo articles with unique:
    • Dates
    • Editors
    • Sentiments
    • Tickers
  • Each article contains embedded JSON metadata for clean parsing and LLM development checking

Backend / Scraping System

  • Daniil built scrapers using Python + Selenium WebDriver
  • Extracts: headline, subheader, date, writers, and full article content
  • Currently scrapes CNBC (real world sample) and the custom Fahmy Macro Wire site (dev tool)

AI Reasoning Logic

  • Connor implemented the analysis pipeline using Google Gemini
  • For each article, the model outputs:
    • Sentiment (–1 to +1 for most pessimistic to most optimistic)
    • Likelihood of portfolio impact (0 to 1 for no impact to direct impact)
  • We introduced a scoring formula that approximates real financial influence:

$${Impact Score} = \text{sentiment} \times \text{trust}$$

Where:

  • sentiment = AI-estimated positivity/negativity of the article
  • trust = historical accuracy score of the writer or publisher

This formula allows NOVA to weigh article sentiment by how reliable the source historically is, instead of treating all news equally.

Onboarding Wizard

  • Runs when the project first opens
  • Prompts user for:
    • Gemini API key (saved to .env)
    • Portfolio tickers (saved as global config)
  • Ensures the system is fully ready with zero manual setup

Challenges we ran into

  • Financial news sites constantly change their CSS classes, breaking Selenium selectors
  • MarketWatch and similar sites have dynamic DOM structures with paywalls and overlays
  • Coordinating multiple scrapers required handling timing, waits, and failures
  • Ensuring the AI reasoning model always outputs strict JSON formatting
  • Designing a data structure that handles multi-source event grouping
  • Building a mock news site that looks real but is easy to parse for a live demo

Accomplishments that we're proud of

  • Built an end-to-end live financial news monitoring system in under 24 hours
  • Designed a fully functional mock publication site for controlled demos
  • Successfully parsed real CNBC articles and converted them into AI insight
  • Created a JSON framework for event grouping across publishers

What we learned

  • How difficult dynamic financial websites are to scrape reliably
  • How to build resilient Selenium selectors for production use
  • How to structure long-term financial event data in JSON
  • Prompt engineering for strict responses from reasoning models
  • How AI interprets sentiment differently from classical NLP

What's next for NOVA

  • Real-time daemon loop running continuously in background
  • Web dashboard with visual sentiment timelines
  • Multi-source conflict detection (publishers disagreeing on events)
  • Machine learning model to evaluate writer reliability
  • Mobile alerts when portfolio-related events break
  • Integration with historical price data for predictive analytics
  • Expanding coverage to Bloomberg, Reuters, AP News, WSJ, etc.

Built With

Share this project:

Updates