Projects
Building a research desk for my own investing
I've rebuilt the investment area of my site around a small research team of AI agents, saved evidence, and decisions that still belong to me. Here's how the pieces fit together.

I've been rebuilding the investment area of this site into something closer to a personal research desk. It brings together holdings, watchlists, research, valuations, and a record of the decisions I make along the way. The latest addition is a small team of agents that can pick up some of the recurring research work.
The part I want to automate is keeping up with information: finding things worth a closer look, checking them against a consistent set of questions, and noticing when something changes. I still decide what to buy, sell, keep watching, or ignore.
I used Codex throughout the build to help implement the application, work through the migration, and revise things after seeing them in use. Quite a few of those revisions came from asking a fairly basic question: is this actually useful on the page I'm looking at?
Start with what needs attention
The desk has five workspaces: Daily Brief, Opportunities, Portfolio, Research, and Reviews. Each has a specific job, but Daily Brief is the starting point.
It brings together research waiting for my review, changes from saved reports, and upcoming events. Dates and source information matter here. A report being available doesn't mean it was written today, and an empty review queue doesn't mean every investment has been checked.
The current interface with illustrative records. These screenshots do not show my actual portfolio or private research.
An earlier version put a large Research team panel near the top of every workspace. It contained manual controls, budgets, job information, and findings. All useful things somewhere, but a fairly effective way to hide the content I'd opened the page to see.
Manual research controls now live in Research. Detailed spending and job information live in Activity & Usage. Relevant agent findings appear alongside the work they concern, rather than taking over every page.
Give the agents separate jobs
I've split the workflow into five roles:
- Scout looks for a small number of potential ideas in the saved sources available to it.
- Screener checks whether an idea meets the initial qualification rules and calls out missing inputs.
- Analyst develops the research, including the case for it, counterarguments, risks, and questions that need more work.
- Monitor checks holdings, watchlists, and active opportunities for meaningful changes in evidence or recorded assumptions.
- Chronicler connects recorded decisions and research to the review history.
These names describe responsibilities. They don't mean five language models are constantly holding a meeting. Screening includes explicit rules, monitoring can compare inputs without generating prose, and Chronicler can record factual history without asking a model to invent an explanation for my decisions.
There are automatic triggers now. Scout has a daily discovery window, Monitor checks on an hourly cycle, and Analyst can follow new evidence or a qualified idea. Chronicler picks up recorded decisions and has a weekly review window. Work still depends on available sources and the spending limits; a schedule isn't a promise that every pass will produce something.
Follow an idea through the desk
Suppose a company turns up in recent saved research. Scout can flag it when the source and instrument requirements are met. Screener then checks the available qualification inputs. Passing that initial screen can lead to analysis; missing information stays visible as missing information.
Opportunities gives that work a place to land. I can inspect the rationale and sources, move an idea forward, or archive it. An agent finding doesn't make that decision for me.
An example opportunity in the actual interface. The records are illustrative, not a recommendation or a disclosed position.
I'm deliberately keeping discovery selective. The automatic Scout workflow admits at most two new candidates per day, and it works from the saved material available to the application. It isn't an independent crawler covering the entire market. A useful shortlist matters more to me than a large backlog that I won't read.
Research holds the deeper work: theses, valuation history, evidence, and the questions behind a conclusion. Proposed work stays separate from accepted research. If an analysis is worth keeping but lacks an input needed for a numerical valuation, the application can save the analysis and explain the gap.
Keep research connected to the portfolio
Portfolio puts that context alongside holdings and trade history. It preserves option-spread grouping and the distinction between individual positions and grouped exposure. Monitor and Analyst findings can appear where they relate to an existing investment.
Illustrative portfolio records with amounts and quantities obscured. The research remains separate from trade execution.
The accounting view also needs to be honest about coverage. Tracked investments aren't necessarily a complete account balance, and a change in a position's price isn't a complete measure of investment return. The interface retains those limitations rather than filling gaps with a reassuring total.
The calendar follows the same idea of showing what is relevant. It presents the next two weeks as an earnings board, with holdings and watchlist events, broader market releases, and additional companies that have recorded options-liquidity evidence. The larger earnings feed remains available to the research system without putting hundreds of companies on my calendar.
Keep my decisions distinguishable
Reviews contains the reports, decision journal, calendar, and usage history. The journal separates My decisions from the Agent journal, so automatic entries don't bury the things I actually chose to do.
That distinction matters beyond the layout. An agent summarizing a decision shouldn't become its author, and a later explanation shouldn't replace what was recorded at the time. I want to be able to revisit the original reasoning, sources, and dates.
The application is live now, including the automatic agent triggers. There's still work to do on source coverage and on judging the quality of what the agents produce. Getting a workflow to finish and publish a result is one milestone. Deciding whether that result deserved my attention is another.
The next step is using it, being picky about the output, and continuing to adjust the parts that get in the way. The implementation details, including the valuation problems and how the site communicates with the Mac mini, are in Getting AI research agents to produce something useful.