FRANCIS KOFIGAH
Case Study · GSE Market Intelligence System

Turning a stock exchange nobody watches into a daily signal.

Founder & Sole Engineer / 2025 — Present
PythonNode.jsGroq LLM API SupabaseTelegram Bot APIGitHub ActionsReact
View on GitHub
01Overview

The Ghana Stock Exchange has real activity, but almost no accessible tooling around it — no free dashboards, no digestible daily summaries, nothing built for the everyday Ghanaian or diaspora investor who doesn't have a Bloomberg terminal.

I built a pipeline that scrapes GSE data automatically, runs it through an LLM to generate plain-language market summaries, and delivers it as a daily digest — for free, with zero server cost.

02The Problem

Ghana's retail and diaspora investors have almost no accessible way to follow the GSE day-to-day. The exchange publishes raw data, but there's no layer that turns that data into something a non-analyst can actually read and act on — the way CNBC or a Bloomberg terminal does for the NYSE.

Anyone who wants a daily read on their GSE holdings either has to check raw exchange bulletins themselves or go without. That gap is the opportunity: build the missing interpretation layer.

03Why It Was Difficult

Nothing about this could depend on a budget, because there wasn't one. The system had to run indefinitely without a server bill, operate every trading day without a human triggering it, and turn raw price data into an actual narrative — "GCB +2.3%, MTNGH flat, EGL -1.1%" isn't useful to most people until something explains what it means.

04Discovery

Rather than build a trading platform or a full brokerage tool, I scoped this as an intelligence pipeline — get the data, interpret it, and deliver it where people already are. That last part mattered as much as the analysis: a Telegram digest gets read; a dashboard nobody remembers to open doesn't.

05Design

The build had three real constraints I designed around:

  • Zero ongoing cost — it had to run indefinitely without a server bill, so every component runs on a free tier.
  • Daily reliability without a human in the loop — the pipeline runs itself every trading day, with nobody manually triggering anything.
  • Plain-language output — the value is the LLM turning raw price moves into an actual narrative of what happened and why it might matter.
06Architecture

A Python and Node.js scraper pulls daily trading data from GSE public sources on a scheduled run. GitHub Actions acts as the entire "server" — a scheduled workflow triggers the scraper daily, with no infrastructure to maintain or pay for. Supabase stores historical trading data, giving the system memory across days so the LLM can reference trends, not just single-day snapshots.

The Groq LLM API takes the structured data and generates the plain-language summary — chosen specifically for Groq's inference speed, since the entire pipeline runs unattended and needs to complete within a GitHub Actions time window. The Telegram Bot API delivers the digest directly to a channel, and a lightweight React dashboard lets anyone browse historical trends beyond the daily digest.

07How AI Helped

The LLM is the interpretation layer, not just a summarizer bolted on at the end — it's what turns a row of ticker movements into a narrative a non-analyst can actually use. Groq's inference speed made that possible inside an unattended, time-boxed CI job rather than requiring a standing service.

08Engineering Decisions

Every choice — Groq for speed, GitHub Actions for scheduling instead of a standing process, Supabase's generous free tier — was made because the zero-cost constraint demanded it, not because it was trendy. That constraint-first thinking is the same muscle used at Techmerge when scoping client systems on tight budgets.

09Challenges

Building for zero cost forces good architecture discipline — you can't paper over a bad design with a bigger server, because there is no server.

10Lessons

The system runs unattended on every trading day, at zero infrastructure cost — the entire pipeline lives on free tiers: GitHub Actions minutes, Supabase's free tier, Groq's free inference allowance. Constraints, applied honestly, produce better architecture than an unlimited budget would have.

11What's Next

It's currently a free public digest. The next phase is converting it into a paid diaspora-investor product via Paystack, since the free version has already validated that the pipeline works reliably end-to-end.