Market Canvas AI, my own product, started July 2025
- days in a row the site was published, to October 8, 2026
- 115
- human commits after launch day; the bot made 153 of the site's 158
- 0
- to research one stock on free data, in one test run
- 53 s
research-loop
- Timer on my server weekdays, before the US open
- Free sources TradingView, SEC filings, Google News
- Research agent Claude writes the card
- Sharia gate unknown or stale fails closed
- Approval queue a human approves or rejects
- Digest and app email, push and the cards feed
It never places a trade. A research tool, not financial advice.
content-bot
- Every morning, 04:30 UTC
- Rebuild the learn site guides, stock pages, calculators
- Publish if changed GitHub Pages
Every day since June 16, 2026
The problem
Sharia status is not a fixed label. It changes when an index is recomposed, screeners disagree, and a stale status must never pass as compliant.
I wanted one screen of decisions instead of a data dump, and the paid research sources had become expensive.
What I built
- Research agents on my own server check Sharia status first, and an unknown or stale status counts as not compliant.
- Every proposal waits in an approval queue in the web app until a human approves or rejects it, and nothing is ever traded.
- A content bot rebuilds the learn site every morning and publishes only when something changed.
How it runs
Timers on my server start every job. On weekdays the US research brief is scheduled before the market opens, and an intraday watch is scheduled every 30 minutes during market hours. Claude turns free sources into research cards, the Sharia gate and a conviction bar filter them, and each proposal waits for a human. The digest goes out by email and push. Every morning at 04:30 UTC the content bot rebuilds the learn site, and on Sundays a review loop grades past calls.
Proof and limits
Counted from the content bot's commit history on October 8, 2026, and from the live test in the improvement log on September 23, 2026.
What I do not claim
- No returns or track record are claimed. The review samples are too small to calibrate on, and the system says so itself.
- No user numbers: none have been counted.
- The Pakistan research side has been paused since September 23, 2026.
- The agents write to the database, not to git, so their runs after September 23, 2026 are not counted here.
- A research tool, not financial advice.
The same for you
The same pattern fits research your team repeats every week: agents gather and score on a timer, a person approves, and the results go out without anyone pressing publish.
Custom work is scoped and priced in writing within 24 hours of a call. Fixed-price packages for a full-stack web app start at $499.
Engineering notes
Research agents on my own server check Sharia status first, and an unknown or stale status counts as not compliant.
Two Python agents, one for US stocks and one for the Pakistan Stock Exchange, are scheduled by systemd timers on a self-managed Oracle ARM server. The Pakistan twin has been paused since September 23, 2026.
The Sharia gate has three states: compliant, not a member, unknown. Unknown or stale counts as not compliant, and a missed refresh of the index list makes the gate fail loudly instead of serving an old list. Pakistan stocks were screened against the KMI All-Share index list; US stocks use AAOIFI-style ratios, where Islamic ETF membership can confirm compliance but never forces a negative verdict.
Claude turns a corpus from free sources (TradingView fundamentals, SEC EDGAR filings, Google News) into a research card: the verdict first, a two-line thesis whose second line says what would prove it wrong, exactly three risks, and a source and date on every figure, or a visible STALE or DISAGREE flag. "No action" is a designed result.
Every proposal waits in an approval queue in the web app until a human approves or rejects it, and nothing is ever traded.
The web app (React, TypeScript and Supabase, built with Lovable) has 11 dashboard pages, among them approvals, watchlist, alerts and history. There is no trade execution and no broker credential anywhere in the system.
A public MCP endpoint offers two tools, search_stocks and get_stock_price, so an AI assistant can query the app directly.
AI search and stock compare were rebuilt on free data (the TradingView scanner, Google News and the agents' own research) on September 23, 2026, the day I retired the paid scraper and the paid search API from the agents and the app's edge functions.
A content bot rebuilds the learn site every morning and publishes only when something changed.
A timer regenerates the whole static site (Sharia-status pages per stock, beginner guides, calculators), commits only if the output differs, and pushes. GitHub Pages serves it at learn.marketcanvasai.com, with a sitemap and an llms.txt.
On October 8, 2026 its sitemap listed 324 pages, every one dated that day.
What will it never do?
- It never places a trade: no order execution, no broker credential.
- Nothing is auto-approved: proposals, and any gate or policy change the weekly review suggests, wait for a human.
- The weekly review may tune small parameters within bounds and discounts samples under 5, but it never changes the Sharia gate or a risk rule on its own.
- Only the conviction bar is enforced in code. Position and sector limits are shown as flags.
- A watchdog timer checks the jobs every 30 minutes, and the improvement log shows each change shipped only after an adversarial QA pass.
Project facts
- Client
- My own product
- Industry
- Investment research (Sharia-screened stocks)
- Region
- US and Pakistan
- Timeline
- Since July 2025
- Role
- Built and run end to end: agents, web app and content bot
Stack
- Python
- Claude
- systemd timers
- Oracle Cloud (ARM)
- Supabase
- React
- TypeScript
- Lovable
- MCP
- SEC EDGAR
- GitHub Pages
Updated