This Claude Skill pulls current ARR, Revenue, Runway, and Cash Balance for every company in your portfolio, links each figure back to its source, flags runway and data quality concerns, and posts a short digest to Slack. All data is pulled live, read-only, from your Visible for Investors account.
Setup
1. Download this skill file: weekly-portfolio-digest.skill
2. In Claude, go to Settings > Skills > +Add and upload the file.
3. The first time you run it, Claude will ask which Slack channel to post to and confirm your runway threshold (12 months by default). It also matches your workspace's tracked metrics to ARR, Revenue, Runway, and Cash Balance automatically. After that first run, it won't ask again.
Running it
Tell Claude to run the digest. For example:
"Run the portfolio digest"
"Post the portfolio digest to Slack"
Type the / command and find the skill
Claude pulls everything live from your Visible workspace. Nothing is cached or estimated.
What it actually does
The instructions below are packaged into the skill file. You don't need them to use it, but here's what's happening under the hood.
Pulling the data. Claude gets your full active portfolio company list, then matches your workspace's tracked metrics to ARR, Revenue, Runway, and Cash Balance by name (workspaces label these differently, so it tries exact matches first and falls back to keyword matches). For each company, it takes the latest value for each metric, along with enough history to tell whether that value is current. Every figure gets a source link, either the founder submission it came from, or the company's Visible page when no submission exists. Values are shown in whatever currency each company reports in, Claude doesn't convert anything unless you ask it to.
Catching what's gone stale. A metric gets flagged under "hasn't shared recent numbers" if the latest value is older than the current reporting period allows, or if there's no value at all for that metric. A company doesn't get lumped in as unresponsive just because one of four metrics is behind, the digest names the specific metric. If a company has no data on any of the four metrics, it gets called out as its own flag rather than showing up as a row of blanks in the snapshot.
Watching runway. Anything under your configured floor lands in a runway flag list with the number and the date it's from. If a company doesn't track Runway directly but does track Cash Balance and something burn-related, Claude can estimate one, clearly marked as an estimate rather than a tracked figure.
Flagging data quality issues, when they exist: a value entered manually by your team rather than submitted by the founder, a number that hasn't moved across several periods running, currency mismatches within a company's own metrics, or values that just don't make sense (negative cash, negative runway). If nothing's actually wrong, the digest says so. It won't invent a problem to fill the section.
What lands in Slack
*Weekly Portfolio Digest, [Month Day, Year]*
*Portfolio snapshot*
[Company]: ARR [value](link) | Revenue [value](link) | Runway [value mo](link) | Cash [value](link)
*Runway concerns (under [floor] months)*
[Company]: [X] months as of [period]. (or "None this week.")
*Hasn't shared recent numbers*
[Company]: [metric] last updated [period], expected [period]. (or "None this week.")
*Data quality notes* [Company]: [issue]. (or "Nothing flagged this week.")
If your portfolio is big enough that the snapshot alone would blow past Slack's message length limit, Claude splits it: a summary message up top, the rest in a threaded reply.
After the digest posts, Claude tells you how many companies were covered, how many runway flags, how many staleness flags, and how many data quality notes came up, along with a link to the posted message.
Worth knowing
Pulling the data is read-only and needs no sign-off from you. Posting to Slack is the one action that writes anything, and Claude shows you the full digest, and which channel it's about to post to, before sending.
If a digest for the current week already exists in the channel, Claude checks before posting a second one instead of duplicating it automatically.
This runs when you ask for it. It doesn't fire on a schedule by itself. If you want it weekly without remembering to trigger it, set up a recurring task or calendar reminder that does the asking for you.
Every number traces back to a real source. If something genuinely isn't available, the digest says it's missing rather than guessing.
Configuration
Set on first run, and stored so future runs skip straight to posting:
Slack channel: [your channel]
Runway floor: [12] months
Metric names for ARR, Revenue, Runway, Cash Balance in your workspace: [fill in]

