Jordan vibe coded a ChatGPT trading bot on Public's new API in Replit as an experiment. Public's Emily Kurtz and Jake Trefethen review it and what they'd add.

Yes, you can wire ChatGPT to a brokerage API and have it make buy and sell calls, but on Episode 8 of Built This Week it was strictly an experiment, not a strategy anyone should copy. Jordan Metzner vibe coded a trading bot on Public's new trading API in Replit in about three to six hours, ran it on $300, and ended at $299. Emily Kurtz, Head of Product at Public, and Jake Trefethen, who leads AI at Public, joined to review the build, and both were clear that none of it is investment advice.
Emily Kurtz describes Public as a brokerage for people who take investing seriously. It offers stocks, bonds, treasuries, options and crypto, plus yield products such as a bond account and a treasury account, and you can open brokerage accounts, Roth IRAs and more.
Public had recently launched its API. Emily explains what it is for:
It's really to think of it as like fourth front end for people who don't necessarily want to use our UI, but really want execution capabilities and the ability to programmatically access their account.
— Emily Kurtz, Episode 8
It started with core capabilities such as trading options and equities. Right now it is a REST interface. On the roadmap, she says, are crypto, bonds, money movement, WebSockets, MCP and Python SDKs.

Jordan is upfront that he is no expert stock trader and not a day trader. He built the whole app in Replit, which handled the front end and back end, and pasted in parts of Public's documentation when he needed them. The bot reads the price of one stock, IBIT, the Bitcoin ETF. Every thirty seconds it sends that price, his portfolio, how many units he holds and how much risk he wants to take to ChatGPT, and ChatGPT decides whether to buy or sell, with a confidence score.
His settings include a stop loss percentage, a maximum position size, an aggressiveness level and a cash float so the bot never runs out of money. Not every page worked perfectly. On the day of recording the bot bought and sold four shares, lost about 11 cents, and Jordan switched it off because it was getting too aggressive. And yes, it has dark mode, light mode and disco mode. The full build is on our Public API trading bot page.
Emily noticed the bot was pulling data Public's API does not offer yet. Jordan explains that he did not want to hit Public's rate limits by asking for prices too often, so he found a free API from Polygon that he could call about every fifteen seconds, with Public as the backup if he ran over. His prompt gives ChatGPT his portfolio, share count, aggressiveness, trade history, buying power and the float he wants to keep.
Emily stopped to say that this is not investment advice. Jordan agreed:
I would not trade real money at scale using this algorithm
— Jordan Metzner, Episode 8
His takeaway is that a tool like this could at most inform a trader about when there might be an opportunity. Emily connected that to trigger-based trading, where a trade fires when a price hits a high or low or an economic report lands. Asked what WebSockets would change, Jordan said streaming prices would make everything smoother, and he would like to run the same prompt against several models and look for consensus.
Jake Trefethen asked whether Jordan had tried sending a picture of the price chart instead of numbers. In his own experiments, Jake says, multimodal models do a really good job of visual price action analysis, even across several time frames and with indicators overlaid. Where they struggled was knowing the time frame, such as whether a chart showed two minutes or two hours. Any historic context helps, and he noted that some models now have million-token context windows. His rule of thumb is that quality degrades at around 75% of the stated window.
Jordan pointed out the trade-off: giving a thinking model more time to decide means fewer trades. For his fifteen to thirty second loop, that matters. For a strategy that trades hourly or daily, he says, you might give a model several minutes to think.
With more time, Jordan would have added a back end on Supabase, his own React front end, self-hosting and better cron jobs. The lesson he did not expect was market hours: markets close on holidays, Labor Day was coming up, and he would add a market-hours API. Emily added that different asset classes keep different hours, so the bond market differs from the equity market.
The result: Emily read the portfolio at $299 from a $300 start. Jordan counted ten or twelve trades and called breaking even "pretty good" for someone who says he doesn't know what he's doing. Jake pointed out that ChatGPT did not know the account only got two round trip trades a day, so it was not optimizing for that. We ran a later trading experiment on prediction markets in Episode 26.
Jake sees Public as a home for modern investors who sometimes want to manage their own accounts and sometimes want help. Public launched Alpha, an investment research bot first powered by GPT-4, a couple of months after ChatGPT came out, and was one of the first ChatGPT plugins. Since then it has added six or seven AI features, including real-time event summaries, earnings call summaries and explanations of why a stock or portfolio is moving.

The big opportunities he sees are summarizing the flood of unstructured news and helping with portfolio construction. Emily added discovery, so people can find relevant assets without knowing the exact symbol. Public is experimenting with what Jake calls generated assets: custom indexes built from natural language, such as an index around GLP-1s. Emily says Public was the first to offer fractional bonds, and has added a treasury ladder, options and margin investing.
Sam raised a post saying Shopify requires vibe coding in its PM interviews. Jordan thinks it is obvious, like asking developers to use AI in coding interviews. Emily sees it as a no brainer for prototypes, but says it depends on what you build. At a brokerage, she says, vibe coding something that goes to production and directly affects withdrawals or funds is pretty risky, while a Slack integration for product updates is not.
Jake thinks most PM prototype code ends up as throwaway code, but it still cuts communication overhead and gets one person from idea to something executable fast. Sam questioned how strong a signal it is, since he can vibe code a decent prototype in an hour and would not hire himself as a PM. Jake's answer:
if they haven't played around with a vibe coding tool and tried to build something themselves, I'd definitely question their curiosity a little bit.
— Jake Trefethen, Episode 8

Jordan demos the bot, its settings and its trades on screen, and the group also debates the GPT-5 launch. Watch Episode 8 of Built This Week, where the full transcript is also on the page.