A founder is raising a new round and needs an intro to the right investor, or maybe they need a VP Engineering, or a warm path into a mid-market logistics customer. Whatever the ask, it usually sits there while someone tries to remember who in the network might actually help. This skill takes an open ask sitting in Visible, searches your Affinity relationship graph for people who could help, ranks them by how well your team actually knows them, and drafts an intro email for the strongest match, ready for you to review before anything goes out.
Setup
1. Download this Skill file: warm-intro-routing.skill
2. Upload it in Claude under Settings > Capabilities > Skills.
3. You'll need an "Asks" field in Visible. This skill reads founder asks off a custom property on your update request template, something like "Asks" or "How can we help." Visible doesn't track this by default. If you've already set this up for Company Ask Tracker skill, this skill uses that same field, no separate setup needed.
4. You'll also need Visible, an Affinity connection, and an email connector (Gmail, Outlook, or similar) available. Claude adapts to whichever Affinity integration and email tool you have connected rather than assuming a specific one.
Running it
Tell Claude something like:
"Find a warm intro for [company]'s VP Eng search"
"Route this ask"
"Who do we know that could help [company]"
"Check Affinity for a match"
Type the / command and find the skill
If a company has more than one open ask and you haven't said which, Claude asks before doing anything else.
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.
Finding the ask. Claude pulls open, unresolved requests from Visible and reads the specific need out of the Asks field, a role for a hiring search, a company type and use case for a customer intro, a stage and sector for an investor intro.
Searching your network. Claude translates that need into a search across Affinity and casts a reasonably wide net, since the right person might sit under an unexpected title or company. Wherever your Affinity setup exposes relationship strength or "who on our team knows them best" data, that drives the ranking. Where it doesn't, Claude falls back to recency and frequency of logged interactions and says plainly that it's using a proxy, not real strength data.
Respecting do-not-contact. Before anyone makes the shortlist, Claude checks for a do-not-contact indication, this isn't a standard Affinity field, so it comes from notes, or list membership if your team tracks it that way. Anyone flagged gets dropped from consideration entirely, not just footnoted.
Ranking and selecting. The top 2-3 candidates by relationship strength and fit. If only one or two genuinely qualify, that's what you get, Claude doesn't pad the list with a weaker third option just to round it out. If nothing qualifies at all, it says so plainly rather than forcing a stretch match.
Cross-checking prior context. If the Company Ask Tracker is also logging asks for this workspace, Claude checks whether this specific ask already has a note on file, in case it's already been addressed through some other path. That doesn't block routing, it's just context so you're not working from a blind spot.
What you get
The ask being routed, company, need, and date submitted.
The ranked shortlist with one line of rationale per candidate: who knows them, why they fit, anything relevant from recent notes.
A drafted intro email for the top match only, waiting in your email drafts for review.
Worth knowing
Nothing gets sent automatically, ever. Claude only ever creates a draft. It's addressed to you for review and edits, not directly to the contact or the founder, and sending it is entirely your call.
As a safety step, Claude addresses the email draft to you.
Reading from Visible and Affinity is read-only, no confirmation needed there. Creating the draft doesn't need confirmation either since nothing sends, but Claude won't invent a contact or a relationship strength that isn't actually backed by what Affinity returns.
If your Affinity connector isn't available when this runs, Claude says so rather than guessing at contacts from memory.

