agentsclimarketplace

Signal triage

Skill faiz-sayyad/gtm-outreach-skills/skills/signal-triage

Production-ready Claude Code Skill Pack for LinkedIn outreach.

Install
npx -y skills add faiz-sayyad/gtm-outreach-skills --skill signal-triage

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • 16 days oldThe repository was created 16 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Classify an incoming outbound signal by tier (T1/T2/T3), set the SLA, and recommend the outreach channel. Use whenever the user pastes signal data, describes a buying signal, mentions a target account firing a signal, or asks how to prioritize incoming outbound signals — even if they don't explicitly use the word "triage." Also use for questions like "should I reach out?", "how fast should I respond?", or "is this a hot lead?"

SKILL.md

8.9 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it

Signal Triage

Classify one signal event into a tier, an SLA (time to respond), and a recommended channel + owner. Read icp.md before running this skill — the tier decision depends heavily on ICP fit.

When this skill triggers

The user has pasted or described a signal event and wants to know:

  • What tier it belongs to (T1 / T2 / T3 / Nurture)
  • How fast someone needs to respond
  • Which channel is the right first touch
  • Whether it's worth acting on at all

The tiering rubric

Signal tier is a composite of signal strength × ICP fit × recency.

Signal strength (which type of signal fired)

Strong signals (worth +25 to +40 points):

  • Anonymous website visitor de-anonymized on pricing/demo/case-study page
  • Same domain visited pricing 3+ times in 7 days
  • High-intent asset downloaded (ROI calculator, pricing guide, comparison sheet)
  • Champion job change into an ICP-fit account
  • Exec at target account publicly posted about a problem you solve

Moderate signals (worth +15 to +25 points):

  • Repeat LinkedIn engagement from a target account (3+ touches in 14 days)
  • Review site activity in your category
  • Funding round announced at target account
  • Strategic hire posted (SDR, RevOps, Head of Marketing at ICP-fit company)

Weak signals (worth +5 to +15 points):

  • Tech-stack change (added or churned competitor)
  • General LinkedIn engagement (1-2 touches)
  • News mention without specific problem-language
  • New follower from an ICP-fit domain

ICP fit (from icp.md)

  • Perfect ICP match (all firmographic filters pass) → +25 pts
  • Adjacent (industry-fit, wrong size band) → +15 pts
  • Right industry, wrong role/persona → +5 pts
  • Doesn't match ICP at all → 0 pts (regardless of signal strength)

Recency

  • Signal fired in last 72 hours → +25 pts
  • 3–7 days ago → +15 pts
  • 7–30 days ago → +5 pts
  • More than 30 days ago → 0 pts (functionally dead)

Composite tier

Add the three scores. Then:

CompositeTierSLA
75–100T1 (All-hands)4 hours
50–74T2 (Priority)24 hours
30–49T3 (Sequence)7 days
Below 30NurtureNo direct outreach — add to newsletter or content nurture

Channel recommendation

Match channel to tier and to the nature of the signal:

SituationRecommended first channel
T1 + LinkedIn signal (post engagement, job change)LinkedIn DM
T1 + web/pricing signal (RB2B, page returns)Email if you have it, LinkedIn if not
T1 + champion at new accountWarm reintroduction email or LinkedIn DM
T2 + any signalLinkedIn connection request with note
T3Triggered email sequence, LinkedIn as a secondary touch
NurtureAdd to newsletter list, no direct 1:1 outreach

Owner recommendation

TierOwner
T1Named AE for that account, OR most senior person on outbound team
T2SDR queue
T3Automated sequence (SDR reviews replies only)
NurtureMarketing / content team

Input the skill expects

Any of these three shapes:

  1. JSON-ish structured data:
{
  "signal_type": "champion_job_change",
  "person": "Sarah Chen",
  "title": "CTO",
  "company": "Acme Corp",
  "company_size": "200 employees",
  "industry": "B2B SaaS",
  "signal_date": "2 days ago",
  "notes": "left Beta (customer of ours) to join Acme"
}
  1. Freeform description:

"Sarah Chen just changed jobs — was CTO at Beta, moved to Acme as CTO. Acme is Series A B2B SaaS, 200 employees. Happened 2 days ago. Beta was a customer of ours."

  1. A pasted signal alert from Trigify, RB2B, or similar — parse the relevant fields.

If required data is missing (specifically: signal type, ICP fit indicators, or recency), ask the user for it before scoring.

Output format

Always return in this structure. Use fenced code blocks so the user can paste into their CRM.

TRIAGE RESULT

Signal: Champion job change → Sarah Chen → Acme Corp (Series A B2B SaaS, 200 emp)
Signal date: 2 days ago (recency = strong)
ICP fit: Perfect (matches size, industry, geo)
Signal strength: +35 (champion moved into an ICP-fit target)
ICP score: +25
Recency: +25

Composite: 85 → TIER 1 (All-hands)
SLA: 4 hours
Channel: LinkedIn DM (warm reintro — she was at a former customer)
Owner: Named AE for Acme, OR founder if no AE assigned yet

Reason: This is the closest thing to free pipeline. Champion knows you, trusts you, and now has budget authority at a target account.

RECOMMENDED NEXT STEP
1. Confirm no active opportunity or existing customer status at Acme
2. Draft opener referencing Beta relationship + her new role, NOT the product yet
3. Send in the first 4 hours — new-role attention window is tight

Rules

  • Never triage a signal without checking against icp.md. If ICP is stubbed, ask the user to fill it before continuing.
  • Never assign a tier higher than T3 for a signal on an account that doesn't match ICP, no matter how strong the signal type.
  • Never guess about recency — if you don't have the signal date, ask.
  • Never recommend a channel that requires data you don't have (e.g., don't say "email" if you have no email address surfaced).
  • Never invent an owner name. If the user hasn't specified who owns which account, recommend the role (AE / SDR) not a person.

Common failure modes

Failure: over-tiering weak signals because ICP is a perfect match. Fix: Weak signal + perfect ICP is still T3 at best. Signal strength ceiling matters.

Failure: under-tiering strong signals because the account is smaller than the "usual" ICP. Fix: A signal on a smaller company that still passes core ICP filters can absolutely be T1 — just note the smaller ACV in the reasoning.

Failure: assigning T1 SLA to something the user's team can't actually respond to in 4 hours. Fix: If the user has told you their team can't hit 4-hour SLA, downshift to their real cadence and note it. Better to be honest about the constraint than to set impossible SLAs.

Examples

Example 1 — clean T1

Input: "Someone just visited our pricing page for the third time this week. RB2B says it's HubSpot, someone with a Head of Sales title, based on the domain resolution."

Output:

TRIAGE RESULT

Signal: Pricing page returns → Head of Sales @ HubSpot → 3 visits in 7 days
Signal strength: +35 (repeat pricing = active budget conversation)
ICP fit: +25 if HubSpot fits your ICP (Head of Sales at large SaaS)
Recency: +25 (this week)

Composite: 85 → TIER 1
SLA: 4 hours
Channel: LinkedIn DM (RB2B doesn't surface email — need to bridge to LinkedIn)
Owner: Named AE for the HubSpot account (if you're targeting them enterprise), otherwise founder

Reason: Third pricing visit means someone at HubSpot is building an internal case. The window is small — a week from now they'll have made a decision without you.

RECOMMENDED NEXT STEP
1. Enrich the persona: find the exact person via LinkedIn Sales Navigator
2. Send a LinkedIn DM referencing the buying motion (NOT the pageview — that reads as surveillance)
3. Angle: "Building an eval short-list for [category]? Happy to save you the demo-week tax."

Example 2 — T3 with a nuance

Input: "Trigify just flagged that Acme raised a Series A. They're in B2B SaaS, 40 employees. Announcement was 5 days ago."

Output:

TRIAGE RESULT

Signal: Funding round → Series A → Acme Corp (B2B SaaS, 40 emp)
Signal strength: +20 (funding = budget forming, but no direct buying signal)
ICP fit: +15 if 40-emp is below your usual band but adjacent
Recency: +15 (5 days ago is still fresh but not urgent)

Composite: 50 → TIER 2 (borderline)
SLA: 24 hours
Channel: Personalized LinkedIn connection request + email if you can find one
Owner: SDR

Reason: Series A companies typically finalize stack decisions in the first 60-90 days post-funding. The window is real but not urgent. Also — you're outside their peak "everyone's pitching me" week (day 1-3) which is actually a good thing.

RECOMMENDED NEXT STEP
1. Enrich for buyer persona: who runs GTM at Acme? Usually a co-founder at 40 emp
2. Angle: forward-looking. "Congrats on the round. Companies at your stage typically rebuild [function] in the first 90 days — happy to share what's worked at [comparable co]."
3. Send in the next 24 hours

Related skills

If the triage lands at T1 or T2, the user's next step is usually to draft outreach. Suggest they use:

  • linkedin-opener for the first line
  • linkedin-connection-note if they need to send a connection request first
  • follow-up-sequence after 5 days of silence

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.