Add institutional ownership tools with investor name resolution#154
Open
ChrisPachulski wants to merge 1 commit intovirattt:mainfrom
Open
Add institutional ownership tools with investor name resolution#154ChrisPachulski wants to merge 1 commit intovirattt:mainfrom
ChrisPachulski wants to merge 1 commit intovirattt:mainfrom
Conversation
Adds get_institutional_ownership_by_ticker and get_institutional_ownership_by_investor tools backed by SEC 13-F data. Investor names are automatically resolved from natural language (e.g. "Scion Asset Management") to the API's UPPERCASE_WITH_UNDERSCORES format via a cached investor list and fuzzy matching (exact → suffix → substring, preferring the shortest/most-specific match). Both tools are registered in the financial_search router with prompt guidance so the LLM passes plain-English investor names and lets the tool handle resolution.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
get_institutional_ownership_by_tickerandget_institutional_ownership_by_investortools backed by SEC 13-F dataUPPERCASE_WITH_UNDERSCORESformat via a cached investor list + fuzzy matching (exact → suffix → substring, preferring shortest match)financial_searchrouter with prompt guidance so the LLM passes plain-English investor names and lets the tool handle resolutionDetails
4 files changed:
src/tools/finance/api.tsgetInvestorList()— lazy in-memory cache of ~10k investor names from/institutional-ownership/investors/src/tools/finance/institutional-ownership.tsresolveInvestorName()(normalize → exact → suffix → substring matching)src/tools/finance/financial-search.tssrc/tools/finance/index.tsName resolution strategy:
UPPERCASE_WITH_UNDERSCORES_LLC,_INC,_LP, etc.)Test plan
bun run typecheckpassesbun test— existing tests unaffectedget_institutional_ownership_by_tickerBERKSHIRE_HATHAWAY_INCand returns holdings