Agent Native

lead-triage

Scores inbound HubSpot leads using engagement, company fit, urgency, and recency signals to produce a ranked call list with talking points and proposed…

by AnthropicOfficial publisherNot reviewed

Identity proven by GitHub's verified organisation badge (anthropics)

Agents
Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
License
Apache-2.0 (permissive)
Pin
ae1513epinned Oct 9, 2026
Context cost
about 1,800 tokenswhen the skill loads
GitHub stars
27,434on anthropics/knowledge-work-plugins
Scripts
None found

What it does

“Scores inbound HubSpot leads by engagement signals, company fit, and urgency markers, ranks the ones worth a call today with talking points, drafts the follow-ups, and proposes calendar times for the owner to book. Use when the owner asks to prioritize, score, or rank leads, asks "who should I call first," or asks about their pipeline. An ask that wants the ranked leads turned into a call list with time blocked on the calendar routes to /call-list, which runs this skill first and then books the time.”
The author's description, from SKILL.md

Generated summary from the skill's own text

Scores inbound HubSpot leads using engagement, company fit, urgency, and recency signals to produce a ranked call list with talking points and proposed calendar slots. Drafts follow-up emails in the owner's voice and handles CSV imports if HubSpot is unavailable. All outputs require owner approval before sending or booking.

When to use it

  • Owner asks to prioritize, score, or rank leads from HubSpot
  • Owner requests a call list with talking points and next-step timing
  • Owner wants follow-up emails drafted for qualified prospects
  • Pipeline contains leads needing triage before outreach

When not to

  • Owner asks only for pipeline overview without prioritization intent
  • HubSpot portal is empty or contains no leads matching filters
  • Lead scoring signals are too weak to separate the ranked order

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add anthropics/knowledge-work-plugins --skill lead-triage

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install anthropics/knowledge-work-plugins lead-triage@ae1513ea94dcb74a7f1505ddcf3b0ec3fab327f1

Installs the commit we checked (ae1513e).

Copy by hand

Download the folder at ae1513e and put it in .claude/skills/lead-triage for Claude Code and in .agents/skills/lead-triage for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at ae1513e

Claude Code plugin

/plugin install claude-code-setup@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Claude Code plugin

/plugin install claude-md-management@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Claude Code plugin

/plugin install claude-security@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "lead-triage" by Anthropic.

Source, pinned to commit ae1513ea94dcb74a7f1505ddcf3b0ec3fab327f1:
https://github.com/anthropics/knowledge-work-plugins/tree/ae1513ea94dcb74a7f1505ddcf3b0ec3fab327f1/small-business/skills/lead-triage

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/lead-triage/ for Claude Code and .agents/skills/lead-triage/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/anthropic/lead-triage-knowledge-work-plugins

SKILL.md at the pin

---
name: lead-triage
version: 0.1.1
description: >
  Scores inbound HubSpot leads by engagement signals, company fit, and urgency
  markers, ranks the ones worth a call today with talking points, drafts the
  follow-ups, and proposes calendar times for the owner to book. Use when the
  owner asks to prioritize, score, or rank leads, asks "who should I call
  first," or asks about their pipeline. An ask that wants the ranked leads
  turned into a call list with time blocked on the calendar routes to
  /call-list, which runs this skill first and then books the time.
allowed-tools: Read, WebFetch
---

# Lead Triage

## Quick start

Pull inbound leads from HubSpot, score them, and surface a ranked call list with talking points. Drafts follow-ups and proposes calendar slots — never sends or books without owner approval.

```
User: "prioritize my leads"
→ Pull contacts: lifecycle stage Lead or MQL, status ≠ Unqualified
→ Score each across engagement, company fit, urgency, recency
→ Return ranked list (size adapts to volume) with talking points
→ Offer to draft follow-ups and propose calendar slots
```

## Workflow

1. **Pull leads from HubSpot.** Fetch contacts with `lifecyclestage` = `Lead` or `MQL` and `hs_lead_status` ≠ `Unqualified`. Use the field list in [reference/hubspot-scoring.md](reference/hubspot-scoring.md). If HubSpot is unavailable — not installed, not connected, or erroring — do not stop. Say so plainly and run the "No HubSpot?" path at the bottom of this file: ask for a CSV export or a rough pasted list, and score that instead.
   - **Empty portal check.** If the pull returns zero contacts of any lifecycle stage, the portal is empty, not filtered wrong. Say so in one line, offer HubSpot's own setup (`manage_onboarding`, action `SET_GOAL`) or the "No HubSpot?" path, and do not diagnose lifecycle stages on a portal with nothing in it. The count is the test: `get_user_details` returns an `onboarded` flag, but a portal can report `onboarded: false` while holding hundreds of contacts, so the flag alone never decides this.

2. **Clarify if trigger is ambiguous.** If the user said only "pipeline" without a qualifier, ask: *"Quick pipeline overview (deal stages + total value) or prioritized call list?"* — then route accordingly. Do not score leads on a bare "pipeline."

3. **Score each lead.** Apply the four-dimension model in [reference/hubspot-scoring.md](reference/hubspot-scoring.md):
   - **Engagement** — email replies, opens, site visits in HubSpot (last 30 days only)
   - **Company fit** — industry and employee count vs. owner's ICP (default: any industry, 1–50 employees). Read these from the company associated with the lead, not from the contact record — see the scoring reference. When leads have no associated company and a lead-data connector (Apollo or Clay) is connected, the enrichment leg in the scoring reference fills industry and size from the lead's email domain. It is metered — say how many rows it would enrich and what that costs in credits, and run it only on the owner's yes for this run. Nothing enriched is written back to the CRM from here.
   - **Urgency** — lead age, stage duration, notes containing "urgent / ASAP / deadline / budget approved". The keyword check requires actually fetching note bodies via the contact → notes association — follow the "Fetch note bodies" section of the scoring reference; the note count alone cannot fire it.
   - **Recency penalty** — subtract points if last activity was <24 hours ago (already touched today)

   **Then check whether the scores actually separated.** If the highest and lowest composite differ by less than 10 points, the CRM has no signal to rank on. Do not present the order as a ranking — run the flat-score path in the scoring reference, say plainly that the signals are empty, and order by CRM facts instead. A false ranking sends the owner to call the wrong person.

4. **Build the ranked list.** Sort descending by composite score. Adapt list size to volume:
   - ≤10 leads → show all
   - 11–30 leads → show top 5
   - >30 leads → show top 8

   For each lead: name, company, score, one-paragraph talking point, last activity summary. If engagement signals are all >30 days old, flag: *"Engagement signals are stale — approach as cold outreach."*

5. **Offer follow-up drafts.** Ask: *"Draft follow-ups for any of these?"* If yes, write one email per selected lead in the owner's voice per [the shared voice profile](../../shared/voice-profile.md). If that file has no profile yet, follow its "When there is no sample" instruction — ask for three emails the owner was happy with; if they decline, draft plain and neutral and say the drafts are un-voiced. Never invent a personality. Show drafts; do not send. If Mail is unavailable, hand the drafts over in chat as subject plus body for the owner to paste — that is a complete outcome.

6. **Render the triage board as an artifact.** After the short chat answer — never instead of it — build an HTML page using the house artifact style (`../../shared/artifact-style.md`): a ranked table with each lead's composite score in mono, an urgency status pill per row (good / warn / critical), and a talking-points line under each lead. If the flat-score path fired, say so on the page and drop the pill colors to neutral.

7. **Offer calendar slots.** Ask: *"Propose call slots for any of these?"* If yes, check Calendar for open 30-minute windows in the next two business days (avoid slots with existing events ±15 min). Propose two options per lead. Never create calendar events without explicit owner approval. If Calendar is unavailable, ask the owner for two or three windows they can offer and use those instead of inventing times.

## Approval gates

- **Never send an email.** Draft only; owner sends from their inbox.
- **Never create calendar events until approved by the user.**
- **Never change lifecycle stage or mark a lead Unqualified** unless the owner explicitly asks.
- **Never include `Customer` or `Evangelist` lifecycle contacts** in the lead list.
- **If zero leads match the filter**, explain why and offer to check what lifecycle stages are in use — do not fabricate a list.

## Reference

- [reference/hubspot-scoring.md](reference/hubspot-scoring.md) — HubSpot field names, scoring weights, ICP defaults
- [reference/gotchas.md](reference/gotchas.md) — edge cases: stale data, zero leads, pipeline disambiguation, customer contamination
- [reference/examples/happy-path-triage.md](reference/examples/happy-path-triage.md) — worked output for a 7-lead list with draft and slot proposal

## Closing offer

End with one line on what the triage produced, then the most relevant next step with its trigger phrase — usually "call list" (`/call-list`) to add calendar blocks around the ranking. Up to two others when they fit: "write this outreach" (`outreach-composer`) or "update the CRM" (`crm-autopilot`). Never more than three, and never re-offer something the owner already declined this session.

## No HubSpot?

Paste or upload the lead list — a CSV export or even a rough list works. Scoring and talking points run the same; the ranked call list comes back as chat plus a file instead of writing to the CRM.

## Using a tool that isn't listed

The connectors named in this skill are the tested paths, not a wall. If the owner wants this flow to use a tool that isn't connected or listed, offer `build-connector` — it checks the connector directory first and connects through Zapier otherwise, never hand-building against a raw API. Once the connection exists, the tool joins this skill like any other optional connector, under the same approval gates.

From anthropics/knowledge-work-plugins at ae1513e, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.

View SKILL.md on GitHub at ae1513e

Files

4 files, 19 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at ae1513e
All 50 skills from Anthropic

More from Anthropic

  • claude-security

    Scans your repository for security issues using Claude, examines code changes or commits for vulnerabilities, and generates patch files to fix findings.

    Claude Code · about 1K tokens · pinned 6 days ago

  • receipts

    This skill generates a personal Claude Code usage report from local session transcripts stored in ~/.claude/projects, mining activity across projects without…

    Contains scripts

    Claude Code · about 4.1K tokens · pinned 6 days ago

  • siege

    Orchestrates an iterative proof-finding process for mathematics problems, coordinating multiple rounds of judge and worker agents.

    Contains scripts

    Claude Code · about 18.5K tokens · pinned 6 days ago

  • solo

    This skill enables an agent to work through a single difficult mathematics problem independently within one session.

    Claude Code · about 1.4K tokens · pinned 6 days ago

  • account-context

    Assembles a comprehensive account overview from the CRM, recent emails, documents, call transcripts, and internal chat discussions into a single brief that…

    Claude Code, Codex, Cursor +4 · about 1.8K tokens · pinned 6 days ago

  • ad-manager

    The skill analyzes paid ad performance across TikTok, Google Ads, Facebook, and other platforms via native connectors or CSV exports, explains what is and…

    Claude Code, Codex, Cursor +4 · about 2.2K tokens · pinned 6 days ago

  • business-pulse

    Generates a one-page business snapshot by pulling live data in parallel from connected accounting (QuickBooks, Xero, Zoho Books), payment (PayPal, Square…

    by AnthropicOfficial publisher

    Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago

  • canva-creator

    This skill executes a complete marketing campaign from an approved content brief: builds a posting calendar, generates Canva designs for social posts, drafts…

    by AnthropicOfficial publisher

    Claude Code, Codex, Cursor +4 · about 4.7K tokens · pinned 6 days ago

  • crm-autopilot

    This skill automatically maintains a CRM from emails, calendar events, and call transcripts without the owner opening it.

    by AnthropicOfficial publisher

    Claude Code, Codex, Cursor +4 · about 3.5K tokens · pinned 6 days ago

  • monday-brief

    Compiles a weekly Monday briefing by pulling cash position, sales trends, and pipeline updates from connected business systems, combining them with scheduled…

    by AnthropicOfficial publisher

    Claude Code, Codex, Cursor +4 · about 2K tokens · pinned 6 days ago

  • marketing-ops

    Sets up and operates marketing operations workflows in Airtable, including request intake, campaign orchestration, creative production, content calendars…

    by AirtableOfficial publisher

    Claude Code, Codex, Cursor +4 · about 7.4K tokens · pinned 6 days ago

  • sales-ops

    Sets up and operates Airtable-based sales workflows including pipeline management, account tracking, deal desk, RFP pipelines, partner CRMs, and…

    by AirtableOfficial publisher

    Claude Code, Codex, Cursor +4 · about 7.4K tokens · pinned 6 days ago

Open roles at Anthropic

5 of 178 open roles on the jobs board

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use