---
title: "skill by agenticluke · skilld"
canonical_url: "https://skilld.dev/gh/agenticluke/warm-intro-ranker-plus"
meta:
  description: "Rank warm intro paths on X and LinkedIn. Use it to score bridges, find network gaps, and choose between a warm intro and a cold message. Use it only when the… From agenticluke/warm-intro-ranker-plus."
  "og:description": "Rank warm intro paths on X and LinkedIn. Use it to score bridges, find network gaps, and choose between a warm intro and a cold message. Use it only when the… From agenticluke/warm-intro-ranker-plus."
  "og:title": "skill by agenticluke"
  "twitter:description": "Rank warm intro paths on X and LinkedIn. Use it to score bridges, find network gaps, and choose between a warm intro and a cold message. Use it only when the… From agenticluke/warm-intro-ranker-plus."
  "twitter:title": "skill by agenticluke"
---

`

[All skills](https://skilld.dev/skills)

[![agenticluke avatar](https://skilld.dev/_img/avatar?url=https%3A%2F%2Fgithub.com%2Fagenticluke.png%3Fsize%3D96)](https://skilld.dev/gh/agenticluke)

# **/skill**

[@a8f295d](https://github.com/agenticluke/warm-intro-ranker-plus/commit/a8f295d36358074743a300eebe0c1807b072a949 "Your agent reads SKILL.md at commit a8f295d")

by [agenticluke](https://skilld.dev/gh/agenticluke)· [agenticluke](https://skilld.dev/gh/agenticluke)/ [warm-intro-ranker-plus](https://skilld.dev/gh/agenticluke/warm-intro-ranker-plus)

Rank warm intro paths on X and LinkedIn. Use it to score bridges, find network gaps, and choose between a warm intro and a cold message. Use it only when the user needs the ranking engine, not a full lead or network care plan.

- 1 file
- 6.8 KB
- Updated 2 weeks ago
- [GitHub](https://github.com/agenticluke/warm-intro-ranker-plus/blob/main/skill/SKILL.md "View SKILL.md on GitHub")

## SKILL.md

6.8 KB

**≈58** tokens always: the name and description. **≈1.7k** when used: this file.

## Social Graph Ranker

Credit: Based on the original ECC skill.

Use a weighted graph to rank people who may help the user reach a target.

### When to Use This Skill

Use this skill when the user asks:

- Who in my network can give the best intro?
- Which shared contacts can help me reach these people?
- How does my network match this target group?
- Can you show the math behind each bridge score?
- Should I ask for an intro or send a cold message?

Do not use this skill alone when the user needs:

- A full lead search and message plan. Use `lead-intelligence`.
- Help pruning, balancing, or growing a network. Use `connections-optimizer`.

### Inputs

Get these facts from the user or the data they provide:

- Target people, firms, or a clear ideal customer profile
- The user's X graph, LinkedIn graph, or both
- The user's direct contacts and shared followers
- Known links between contacts and targets
- Target needs, such as job role, field, place, reach, or reply chance
- Past replies or talks between the user and each contact
- The most hops to search
- Score settings, if the user wants custom values

Do not guess that two people know each other. Mark unknown links as unknown.

If key data is missing, ask for it. If only part of the graph is known, rank that part and state the limit.

### Core Model

Let:

- `T` be the set of targets.
- `M` be the user's direct contacts or shared followers.
- `d(m,t)` be the shortest known path from contact `m` to target `t`.
- `w(t)` be the weight of target `t`.

Use this base bridge score:

```
B(m) = Σ[t in T] w(t) × λ^(d(m,t) - 1)
```

Use `λ = 0.5` unless the user gives another value.

A direct path has full value. Each added hop cuts the value in half.

Use this score for useful second-degree links:

```
B_ext(m) = B(m) + α × Σ[m' in N(m) \ M] Σ[t in T] w(t) × λ^d(m',t)
```

Where:

- `N(m) \ M` is the set of people known by `m` but not by the user.
- `α` cuts the value of second-degree reach.
- Use `α = 0.3` unless the user gives another value.

Then add a relationship bonus:

```
R(m) = B_ext(m) × (1 + β × engagement(m))
```

Where:

- `engagement(m)` is a number from `0` to `1`.
- `0` means no known bond or reply history.
- `1` means a strong and active bond.
- Use `β = 0.2` unless the user gives another value.

Round shown scores to two decimal places. Keep full values while doing the math.

### Target Weights

Give each target a weight from `0` to `1`.

Base the weight on:

- Job role match
- Firm or field match
- Recent activity
- Place match
- Reach or trust
- Chance of a reply

State how each weight was set. If there is not enough data, use equal weights and say so.

Do not count the same fact twice. For example, do not score a job title once under role and again under reach unless the two facts are truly different.

### Ranking Rules

Use these groups:

- Tier 1: High final score and a direct path. Ask for a warm intro.
- Tier 2: Medium score or one added hop. Ask if the contact knows the target well enough to help.
- Tier 3: Low score, a weak bond, or no known path. Send a direct message or fill the network gap.

Compare scores only within the same data set and score settings.

A high score does not prove that a person will make an intro. It only shows that the known path looks useful.

### Edge Cases

Handle these cases:

- No known path: Give the contact no path value for that target.
- Unknown path length: Do not treat it as a real link.
- Duplicate people: Merge profiles only when they clearly belong to the same person.
- Duplicate paths: Count one path once.
- Several equal shortest paths: Note the extra path strength, but do not count the same target weight more than once in the base score.
- Contact is also a target: Mark it as a direct outreach case. Do not ask that person to introduce themselves.
- User is linked to the target: Treat the path as direct and suggest a direct warm message.
- Blocked or private profile: Mark the data as limited.
- Old reply history: Lower the engagement score and state why.
- Missing reply history: Use `engagement = 0`, not a guessed value.
- Mixed X and LinkedIn data: Keep each platform clear. Do not assume a link on one site exists on the other.
- Very large graph: Score direct contacts first. Expand only the best contacts to the second degree.
- Bad or hostile relationship: Exclude the contact, even if the graph score is high.
- Intro conflict: Flag cases where the contact works for a rival or may face a trust issue.
- Sensitive traits: Do not use race, faith, health, sex life, or other private traits as score inputs.

### Steps

1. List the targets.
2. Set and explain each target weight.
3. Clean duplicate people and links.
4. Build the known graph for X, LinkedIn, or both.
5. Find the shortest known paths.
6. Compute each base bridge score.
7. Expand the best contacts to the second degree.
8. Add the engagement bonus.
9. Rank contacts by final score.
10. Check for weak data, conflicts, and unsafe intro asks.
11. Return the best warm intro paths, weaker paths, and network gaps.

### Concrete Example

The user wants to reach two people:

- Ana has weight `1.0`.
- Ben has weight `0.6`.

Sam knows Ana at one hop and Ben at two hops. Use `λ = 0.5`.

```
B(Sam) = 1.0 × 0.5^(1 - 1) + 0.6 × 0.5^(2 - 1)
B(Sam) = 1.0 + 0.3
B(Sam) = 1.3
```

Sam has no useful second-degree links, so:

```
B_ext(Sam) = 1.3
```

Sam's engagement score is `0.5`. Use `β = 0.2`.

```
R(Sam) = 1.3 × (1 + 0.2 × 0.5)
R(Sam) = 1.43
```

Result: Sam is a strong bridge to Ana and a weaker bridge to Ben. Ask Sam for an intro to Ana first.

### Output Format

```
Social Graph Ranking
====================

Target set:
Platform:
Data limits:
Score settings:
Target weights:

Top Bridges
- Contact:
  Platform:
  Base score:
  Extended score:
  Engagement:
  Final score:
  Best target:
  Known path:
  Why this ranks well:
  Suggested action:

Possible Paths
- Contact:
  Target:
  Known path:
  Added hop cost:
  Risk or missing fact:
  Suggested action:

No Warm Path
- Target:
  Missing link:
  Suggested action: Send a direct message or fill the network gap.

Notes
- Assumptions:
- Unknown data:
- People excluded:
- Score ties:
```

For each top bridge, show enough math for the user to check the score.

Do not write or send an intro message unless the user asks.

### Related Skills

- `lead-intelligence` uses this model in a wider lead and outreach plan.
- `connections-optimizer` uses the bridge rules to help decide who to keep, remove, or add.
- `brand-voice` helps draft intro asks and direct messages.
- `x-api` can provide X graph data when access is allowed.

Source: [SKILL.md on GitHub](https://github.com/agenticluke/warm-intro-ranker-plus/blob/main/skill/SKILL.md)

## Third-party checks

No third-party reports yet.

## Provenance

[Signed by skilld at a8f295d.](https://github.com/agenticluke/warm-intro-ranker-plus/commit/a8f295d36358074743a300eebe0c1807b072a949 "a8f295d36358074743a300eebe0c1807b072a949") This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 weeks ago.

Activeupdated 2 weeks ago

## Capability

<dl>

<dt>origin</dt>
<dd>ECC</dd>

</dl>

## README badge

![README badge for agenticluke/warm-intro-ranker-plus](https://skilld.dev/b/agenticluke/warm-intro-ranker-plus?theme=light&label=0)

## Related skills

-
-
-
-
-
-