RSS Amplifier

frank's newsletter · Jun 1, 2026

i made myself a (better) ramit sethi bot

0
Sign in to vote or save

frank chen · frank's newsletter

a couple months ago i made myself a financial bot using some ramit sethi materials pasted into chatgpt

it was alright — but lately i haven’t been pleased with the results 👎

messages back and forth were taking longer to populate

sometimes, it didn’t sound like ramit, it sounded like a robot

i kept getting lists and not enough cultural and emotional support

again, this started with converting ramit’s books to text

i will teach you to be rich

money for couples

and the underdog’s guide to building a business

books are an extremely dense source of information, and in some ways, highly curated

these books provided context on ramit’s systems, his worldview, his writing voice, and his approaches and perspectives on personal finance, business, and human psychology

books aren’t enough though

the application of that knowledge is also important, like when he helps people on his money for couples podcast

so

with the help of ai, i wrote up some scrapers1 for ramit’s website, to extract his podcast transcripts and interviews to capture his voice, style, and essence in text format

these were actual conversations, in text, with hundreds of people that he’s helped

these provide specific advice for specific contexts, real numbers, real people, and follow up results

these messages are a goldmine as to how ramit talks to someone who is asking for his advice

there were several resources i ended up not using — my substacks, and also some previous chatgpt downloaded convos

i didn’t want any of my own thoughts and opinions to pollute my advisor

also, i didn’t want actual model output to be training my advisor

i took the books and podcast extracts and loaded it up to chatgpt as attachments, so all further conversation would have this context

i also included the results of a deep personality test2 so the ai would have context on my working style, communication preferences, and tendencies

knowing what i know now about context bloat, only this particular conversation on chatgpt had all of the resources, and because there was no way to clear my context without deleting the chat and starting over, i couldn’t really keep a long standing conversation going

this happens because the same resources would have to be idiotically reloaded every time i decided to talk to it

this sucked, especially with thousands of lines of ramit’s podcast voice swimming around in there

my first thought was, “if context is the issue, then perhaps i can compact all the resources into one or two files i can easily upload every time i want to restart a new conversation”

i used a compaction prompt3, and then a more specific ramit addendum4 to that prompt to output a compressed version of his books and interviews

then i reloaded a new chat with the compressed context and had some conversations with it

it just wasn’t the same

i was burning less tokens, for sure — thousands of lines of text to 417 or something

but it sounded more like the normal chatgpt bs you’d get sprinkled with some ramit-isms here and there

compression took away too much of the personality

expected, i guess

so i needed to find a way to upload raw, uncompressed context and control token costs, which meant some kind of smart selection mechanism to call upon the most relevant bits (a personality baseline and specific advice about a certain situation)

claude.ai projects was one solution, which solved the context clearing issue for me

i could load up context files and provide specific instructions for the ai to be a “ramit sethi”

i could clear context by starting a new chat — all singular chats would have the file context that i uploaded

the responses were much better, but i wanted an idea of how many tokens i was burning (the ~100k+ lines of text made me nervous)

AND, it wasn’t even the full podcast transcripts - i only selected the most relevant ones

i could probably be more accurate with this, but since using claude code and keeping my CLAUDE.md under 100-200 lines, 20k+ was just ridiculous

the last part of the conversation was me trying to figure out if claude projects implemented any kind of RAG (retrieval augmented generation)

the gist of it:

  • you collect some database of context (articles, books, conversations, anything) and create embeddings out of it (basically numbers that represent similarity)

  • when you give the ai your prompt, it’ll pull in similar topics and content from this external context based on similarity of those numbers

  • based on that, the output should be richer and better

  • it also saves on tokens by doing matching

ok so, the projects feature solved the “clearing the context” issue, but it’s murky as to what’s happening when the context i uploaded is bigger than what the model can handle at one time

maybe there’s some kind of retrieval system, i dunno

the knowledge management system was a shot in the dark, so that’s one thing i didn’t like

earlier, i mentioned that i perhaps wanted a personality baseline and specific advice about a certain situation

i’m not going to get that with an out-of-the-box solution — i can’t control what’s static and always loaded in, and what’s retrieved dynamically

for example, static things would be the personality baseline, examples of communication, and core values

dynamic things would be situation specific frames, domain knowledge, or decision example

and then i could even do stuff with constraints, add in some anti-patterns, not-to-dos, and emotional state modifiers as to how ramit would respond

right now, all of the project context is just treated as a uniform mass — a book is the same as a podcast is the same as an interview is the same as everything else

if i customized it, i could vectorize the content in specific ways, label specific data, and make sure some things are always loaded, some things not, etc

ok so knowledge management, still a huge problem ❌

time to build my own solution and learn things

what’s nice about a custom solution is my context limits are as big as i want them to be (hard drive space)

i process my context, convert that context to vectorized embeddings (so you can compare similarities later), and then overlay an mcp server on top of that (so i can connect to it)

then i can call on my openclaw agent to connect to the mcp to load the necessary context it needs alongside my prompt

i had to do a couple steps though, setting up the mcp server, making sure all the connections worked out, sorting out the markdowns for proper context

i use “@ramit” to trigger the bot

so if you look carefully above, there’s an issue

all my questions would get a response in third person — like “ramit would say” or “what i found” which is NOT what i wanted

i had a floating knowledge management system, and really no connective tissue to utilize it well

the gpt model was literally connecting to the mcp, and just matching the relevant ramit context and relaying back to me like a messenger what ramit would say about my situation

there was no instructions, no script that pointed the gpt model to “pretend, act, and be just like ramit”

ok so what i needed was a hollywood director that yelled at this model to be an actor

i started that here with agent pipeline5, which processes all of the knowledge and outputs a markdown file that captures the essence of ramit — this pipeline does a bunch of things:

  1. vectorizes all the information into chunks, so later, we can run similarity scores against these chunks to determine what’s the most relevant context to inform an answer

  2. creates an output that summarizes ramit’s personality, tendencies, worldview, how he approaches problem solving, and dislikes

  3. creates another output that is literally “you’re going to pretend to be ramit when called upon, and you’re going to help us solve our financial problems — this is your personality [insert 2] and oh, here’s some stuff relevant to the problem at hand [insert chunks from 1]”

together, 1 (the knowledge management), 2 & 3 (runtime context) make up some of the harness that guides the model into giving a much better answer

it also fixed the third person issue — it’s this kind of instruction that explicitly tells the model how to act when @ramit is activated

the similar thing in claude projects is the “project instructions”

with smaller amounts of files and very specific instructions, it probably does well, but we can’t easily incorporate other things like more dynamic knowledge management, external tool uses, and browser capabilities

so, there was an interesting problem here where

harness matters — there were 3-4 places where context was being fed incorrectly, and i had to fix that up and put some guardrails in

then, knowledge management becomes more useful

based on the last response, the ramit bot has gotten much better from my previous out-of-the-box solutions

however, i’m gonna keep working on this because it’s not complete

  1. models: i’ve been using 2nd tiered models to save money, we can easily up it

  2. harness: basic processing then uploading runtime context — haven’t gotten to tools, search, etc

  3. knowledge: take processed context records in the agent pipeline and see if it fits the heuristics it automatically assigned (specifically, making sure the AI knows the difference between non-live content and live conversational content); also see what qualities i want persisted and what could be retrieved dynamically — we can improve the underlying RAG model here

  4. memory: haven’t started this at all — i have done some manual stuff with openclaw to distill conversations to short-term memory then long-term memory but not for this particular subagent — i want ramit to remember our past convos

  5. speed: holy hell ramit is slow — it takes about 5-10 seconds to get a response — in the real world, i’d be awkwardly staring at them seeing if they fell asleep

  6. surface: i’d love to share this bot, through discord or something — right now i can probably even invite through telegram but, that’d be awkward

mainly to scratch my own itch

there’s gaps when i try to apply the personal finance habits and because ai is so good at reading information and extracting insights, “ai ramit” can tell me where i’m missing my shots

listening to his podcasts, i think it’s also a useful tool for people who have been on his show and maybe are finding it difficult to implement changes and need a push6

we can even add on an eleven voice (creepy i know) to make it a non-text based thing

more updates to come 👍

6

because this is ramit’s ip, i am not doing any type of monetization, this should strictly be for personal use only

No posts

Read the original on fronk.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.