Deepline Lead Scoring

Deepline scoring

by getaero-io · MIT license · ★ 66 on GitHub

Deepline scoring cover

Use when discovering niche signals, auditing ICP or won/lost evidence, rescoring accounts, or building account and lead scoring Plays. Triggers on fit scoring, engagement scoring, external proxies, and scoring leakage.

---
name: deepline-scoring
disable-model-invocation: false
description: 'Use when discovering niche signals, auditing ICP or won/lost evidence, rescoring accounts, or building account and lead scoring Plays. Triggers on fit scoring, engagement scoring, external proxies, and scoring leakage. Skip pure outreach copy or contributor skill installation tasks.'
---

# Deepline Scoring

## Quick Start

```bash
npm install -g deepline
deepline auth register --wait auto
deepline -h
```

Find evidence for the customer's decision. Use approved rules or a separately evaluated model for scoring. Phrase matches and prevalence ratios alone cannot supply scoring weights.

Overview

Find evidence for the customer's decision. Use approved rules or a separately evaluated model for scoring. Phrase matches and prevalence ratios alone cannot supply scoring weights.

Manual install (npx, ZIP)
Claude Codenpx skills add getaero-io/gtm-eng-skills --skill deepline-scoring -g -a claude-code
Claude Code (degit)npx degit getaero-io/gtm-eng-skills/skills/deepline-scoring#main ~/.claude/skills/deepline-scoring
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md9.7 KB
Read SKILL.md here
getaero-io/main1 file shown
SKILL.md
Show the full text78 lines

Deepline Scoring

Quick Start

npm install -g deepline
deepline auth register --wait auto
deepline -h

Find evidence for the customer's decision. Use approved rules or a separately evaluated model for scoring. Phrase matches and prevalence ratios alone cannot supply scoring weights.

Task Read
Find phrases and buyer language Keyword catalog, buyer-language research
Build or audit a score Scoring delivery
Test rules or evaluate outcomes Testing and evaluation
Create an artifact-backed scorecard Scorecard creation pattern
Debug disputed features or routing Scoring diagnostics
Verify technology Technology evidence
Estimate staffing or demand Capacity evidence

Read deepline-gtm before collection and deepline-plays before authoring. Verify the workspace, current provider schema and price. Pilot one or two rows and pass the quality gate on the generated outputs before scaling within the approved budget. Keep exports and receipts in a persistent project directory. Reuse collected evidence when rescoring.

Workflow

  1. Define the product, decision date, prediction horizon, population, analysis unit and requested outputs. Before paid collection, identify the executable model and independent expected scores for parity, or historical evidence and untouched labels for predictive evaluation. Missing prerequisites leave that test blocked; an authorized research run can still proceed. Keep fit, engagement, capacity and coverage separate. Use only requested dimensions: account_fit, account_engagement, lead_fit, lead_engagement. A combined priority policy must preserve its components.
  2. Resolve identities, parent groups and conflicting outcomes. Split discovery and validation by time and parent before selecting features. Preserve the full requested population. Open accounts and random alternatives have unknown outcomes; lookalikes are not wins. Separate acquisition, renewal and expansion.
  3. Research workflows, problems, roles, systems and counterexamples across relevant public sources. Follow observed buyer phrases and source URLs. Mine discovery documents without labels, then review concepts and aliases against their evidence. Keep rare and inconclusive candidates. Exclude report prose and outcome summaries from the corpus.
  4. Check collection with the quality gate. Report coverage by source and outcome before citing lift. Compare a coverage-only model and evaluate features where both outcomes have adequate observed data. Imputation or dropping missingness flags can still encode collection bias. Keep failed, partial and empty results distinct.
  5. Check what each feature measures. Reviews are not calls, openings are not hires, and software mentions or portal links do not prove installation. Keep Google reviews, Yelp, traffic estimates and sitemap counts separate. Validate proxies against actual measurements. Exclude AE discovery, opportunity and outcome fields from pre-contact fit. Require evidence that every input was available at the decision date; current enrichment cannot validate past predictions.
  6. Freeze extraction rules, aliases, model and reference artifacts before validation. Fit selection, imputation and tuning within training folds. Follow scoring pitfalls and signal interpretation. Record every attempted model and failed comparison. Reusing a holdout to refine rules consumes it.
  7. For scoring, deliver a checked Play that resolves the identifier, enriches the row and returns the requested outputs. Follow scoring delivery and finish with testing and evaluation. Prove existing-output parity separately from predictive usefulness. Keep missing rows unscored with reasons. A cached replay is partial delivery for a live-enrichment request.
  8. Deliver one readable report per workspace using the report template. Combine targeting findings, ranked accounts, scoring rules, the runnable Play and evaluation results in that report; link complete tables and raw evidence at the end. Name the supported state: research_only, replay_only, exploratory_end_to_end or validated_for_named_use_case. Promotion requires untouched evaluation against the existing rules and a simple baseline, uncertainty estimates and a stated business acceptance threshold. Selected wins or percentile quotas cannot establish usefulness.

Inputs and commands

CSV columns: domain,status,website,jobs; optional account_id,parent_id,split,known_at,scored_at. Status: won|lost|lookalike|unlabeled. Merge repeated observations while retaining their sources. Resolve conflicting labels through an explicit cohort rule; never discard every duplicate domain.

Use the opt-in *_v2.py helpers for new work. Unversioned scripts retain their existing interfaces. Update consumers explicitly before switching versions.

python3 scripts/analyze_signals_v2.py --input accounts.csv --discover-phrases \
  --max-phrases 500 --min-phrase-accounts 2 --output candidates.json

python3 scripts/analyze_signals_v2.py --input accounts.csv \
  --keywords keywords.json --tools tools.json --job-roles roles.json \
  --partition discovery --evidence-limit 12 --output discovery.json

The miner uses 2–5-word n-grams from discovery accounts, with source and phrase-length diversity. It ignores labels and validation documents. It does not understand negation or generate synonyms. Review matches, nonmatches, buyer/seller context and wrong-company text. Use --min-phrase-accounts 1 for a labeled rare-phrase pass. Report truncation and increase the cap when needed.

Configs map categories to lists of strings or {"name":"concept","aliases":["phrase","explicit stem*"]}. Strings match exact phrase boundaries. Roles match job titles; use keyword concepts for duties.

Validation requires --partition validation --manifest frozen.json. The manifest contains analyzer_sha256, timezone-aware frozen_at, and config_sha256 hashes for keywords,tools,job_roles. Freeze before scoring. Each row requires known_at <= scored_at, with known_at reflecting the latest availability of all included sources. The script cannot verify timestamp provenance. Scoring before contact uses the stricter cutoff in the delivery contract.

V2 returns signals[], statistics, method, config_sha256 and scoring_eligible:false. Its metric is Jeffreys-smoothed P(feature|won)/P(feature|lost), not win-rate lift. Wilson intervals describe prevalence; Fisher p-values and BH/BY q-values cover the configured tests in that invocation. They assume independent accounts and do not correct for parent clustering, selection bias or undisclosed repeated experiments. Outputs remain exploratory, including validation-partition runs.

Source adapters

  • Websites: {"data":{"results":[{"url":"...","title":"...","text":"..."}]}}, pages, direct text/markdown records and known toolResponse.rawV2 wrappers.
  • Jobs: {"result":{"listings":[{"title":"...","description":"...","url":"..."}]}}, jobs[].job_details, job_listings and JSON:API data[].attributes.
  • Preserve source IDs and dates. Add a fixture and adapter for each new shape. Unsupported or malformed payloads fail.
  • An empty jobs array means no returned records for that query; retain its filters and limits. An empty website scrape means unknown coverage. Neither establishes staffing, current vacancies or business-trait absence.
  • Named website/jobs headers auto-detect. Legacy positional columns require explicit indices. Duplicate headers, invalid labels and unresolved mixed outcomes fail.

Verification

Follow testing and evaluation for the acceptance contract. The executable evaluation suite is delivered separately from this skill change. Keep implementation replay, live enrichment and predictive validation distinct, and report missing prerequisites.

Keep customer rules, cases and receipts outside published skills. Treat proven signals as hypotheses. For optional contacts, use the current GTM workflow and dedupe/prospecting guidance; the local contact helper only exports a shortlist. Do not infer names from LinkedIn slugs or treat domain matching as email verification.

1---
2name: deepline-scoring
3disable-model-invocation: false
4description: 'Use when discovering niche signals, auditing ICP or won/lost evidence, rescoring accounts, or building account and lead scoring Plays. Triggers on fit scoring, engagement scoring, external proxies, and scoring leakage. Skip pure outreach copy or contributor skill installation tasks.'
5---
6 
7# Deepline Scoring
8 
9## Quick Start
10 
11```bash
12npm install -g deepline
13deepline auth register --wait auto
14deepline -h
15```
16 
17Find evidence for the customer's decision. Use approved rules or a separately evaluated model for scoring. Phrase matches and prevalence ratios alone cannot supply scoring weights.
18 
19| Task | Read |
20| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
21| Find phrases and buyer language | [Keyword catalog](references/keyword-catalog.md), [buyer-language research](references/buyer-language-research.md) |
22| Build or audit a score | [Scoring delivery](references/scoring-delivery.md) |
23| Test rules or evaluate outcomes | [Testing and evaluation](references/testing-and-evaluation.md) |
24| Create an artifact-backed scorecard | [Scorecard creation pattern](references/scorecard-creation.md) |
25| Debug disputed features or routing | [Scoring diagnostics](references/scoring-diagnostics.md) |
26| Verify technology | [Technology evidence](references/technology-evidence.md) |
27| Estimate staffing or demand | [Capacity evidence](references/capacity-evidence.md) |
28 
29Read `deepline-gtm` before collection and `deepline-plays` before authoring. Verify the workspace, current provider schema and price. Pilot one or two rows and pass the [quality gate](references/quality-gate.md) on the generated outputs before scaling within the approved budget. Keep exports and receipts in a persistent project directory. Reuse collected evidence when rescoring.
30 
31## Workflow
32 
331. Define the product, decision date, prediction horizon, population, analysis unit and requested outputs. Before paid collection, identify the executable model and independent expected scores for parity, or historical evidence and untouched labels for predictive evaluation. Missing prerequisites leave that test blocked; an authorized research run can still proceed. Keep fit, engagement, capacity and coverage separate. Use only requested dimensions: `account_fit`, `account_engagement`, `lead_fit`, `lead_engagement`. A combined priority policy must preserve its components.
342. Resolve identities, parent groups and conflicting outcomes. Split discovery and validation by time and parent before selecting features. Preserve the full requested population. Open accounts and random alternatives have unknown outcomes; lookalikes are not wins. Separate acquisition, renewal and expansion.
353. Research workflows, problems, roles, systems and counterexamples across relevant public sources. Follow observed buyer phrases and source URLs. Mine discovery documents without labels, then review concepts and aliases against their evidence. Keep rare and inconclusive candidates. Exclude report prose and outcome summaries from the corpus.
364. Check collection with the [quality gate](references/quality-gate.md). Report coverage by source and outcome before citing lift. Compare a coverage-only model and evaluate features where both outcomes have adequate observed data. Imputation or dropping missingness flags can still encode collection bias. Keep failed, partial and empty results distinct.
375. Check what each feature measures. Reviews are not calls, openings are not hires, and software mentions or portal links do not prove installation. Keep Google reviews, Yelp, traffic estimates and sitemap counts separate. Validate proxies against actual measurements. Exclude AE discovery, opportunity and outcome fields from pre-contact fit. Require evidence that every input was available at the decision date; current enrichment cannot validate past predictions.
386. Freeze extraction rules, aliases, model and reference artifacts before validation. Fit selection, imputation and tuning within training folds. Follow [scoring pitfalls](references/scoring-pitfalls.md) and [signal interpretation](references/signal-interpretation.md). Record every attempted model and failed comparison. Reusing a holdout to refine rules consumes it.
397. For scoring, deliver a checked Play that resolves the identifier, enriches the row and returns the requested outputs. Follow [scoring delivery](references/scoring-delivery.md) and finish with [testing and evaluation](references/testing-and-evaluation.md). Prove existing-output parity separately from predictive usefulness. Keep missing rows unscored with reasons. A cached replay is partial delivery for a live-enrichment request.
408. Deliver one readable report per workspace using the [report template](references/report-template.md). Combine targeting findings, ranked accounts, scoring rules, the runnable Play and evaluation results in that report; link complete tables and raw evidence at the end. Name the supported state: `research_only`, `replay_only`, `exploratory_end_to_end` or `validated_for_named_use_case`. Promotion requires untouched evaluation against the existing rules and a simple baseline, uncertainty estimates and a stated business acceptance threshold. Selected wins or percentile quotas cannot establish usefulness.
41 
42## Inputs and commands
43 
44CSV columns: `domain,status,website,jobs`; optional `account_id,parent_id,split,known_at,scored_at`. Status: `won|lost|lookalike|unlabeled`. Merge repeated observations while retaining their sources. Resolve conflicting labels through an explicit cohort rule; never discard every duplicate domain.
45 
46Use the opt-in `*_v2.py` helpers for new work. Unversioned scripts retain their existing interfaces. Update consumers explicitly before switching versions.
47 
48```bash
49python3 scripts/analyze_signals_v2.py --input accounts.csv --discover-phrases \
50 --max-phrases 500 --min-phrase-accounts 2 --output candidates.json
51 
52python3 scripts/analyze_signals_v2.py --input accounts.csv \
53 --keywords keywords.json --tools tools.json --job-roles roles.json \
54 --partition discovery --evidence-limit 12 --output discovery.json
55```
56 
57The miner uses 2–5-word n-grams from discovery accounts, with source and phrase-length diversity. It ignores labels and validation documents. It does not understand negation or generate synonyms. Review matches, nonmatches, buyer/seller context and wrong-company text. Use `--min-phrase-accounts 1` for a labeled rare-phrase pass. Report truncation and increase the cap when needed.
58 
59Configs map categories to lists of strings or `{"name":"concept","aliases":["phrase","explicit stem*"]}`. Strings match exact phrase boundaries. Roles match job titles; use keyword concepts for duties.
60 
61Validation requires `--partition validation --manifest frozen.json`. The manifest contains `analyzer_sha256`, timezone-aware `frozen_at`, and `config_sha256` hashes for `keywords,tools,job_roles`. Freeze before scoring. Each row requires `known_at <= scored_at`, with `known_at` reflecting the latest availability of all included sources. The script cannot verify timestamp provenance. Scoring before contact uses the stricter cutoff in the delivery contract.
62 
63V2 returns `signals[]`, `statistics`, `method`, `config_sha256` and `scoring_eligible:false`. Its metric is Jeffreys-smoothed P(feature|won)/P(feature|lost), not win-rate lift. Wilson intervals describe prevalence; Fisher p-values and BH/BY q-values cover the configured tests in that invocation. They assume independent accounts and do not correct for parent clustering, selection bias or undisclosed repeated experiments. Outputs remain exploratory, including validation-partition runs.
64 
65## Source adapters
66 
67- Websites: `{"data":{"results":[{"url":"...","title":"...","text":"..."}]}}`, `pages`, direct text/markdown records and known `toolResponse.rawV2` wrappers.
68- Jobs: `{"result":{"listings":[{"title":"...","description":"...","url":"..."}]}}`, `jobs[].job_details`, `job_listings` and JSON:API `data[].attributes`.
69- Preserve source IDs and dates. Add a fixture and adapter for each new shape. Unsupported or malformed payloads fail.
70- An empty jobs array means no returned records for that query; retain its filters and limits. An empty website scrape means unknown coverage. Neither establishes staffing, current vacancies or business-trait absence.
71- Named `website/jobs` headers auto-detect. Legacy positional columns require explicit indices. Duplicate headers, invalid labels and unresolved mixed outcomes fail.
72 
73## Verification
74 
75Follow [testing and evaluation](references/testing-and-evaluation.md) for the acceptance contract. The executable evaluation suite is delivered separately from this skill change. Keep implementation replay, live enrichment and predictive validation distinct, and report missing prerequisites.
76 
77Keep customer rules, cases and receipts outside published skills. Treat [proven signals](references/proven-signals.md) as hypotheses. For optional contacts, use the current GTM workflow and [dedupe](references/dedupe.md)/[prospecting](references/step-7-prospects.md) guidance; the local contact helper only exports a shortlist. Do not infer names from LinkedIn slugs or treat domain matching as email verification.
78 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 66
Checked
Source
getaero-io/gtm-eng-skills ↗
Creator
getaero-io · 6 listings
View creator

Similar skills

See all →
SkillAI Sales Team Orchestratorzubair-trabzada/ai-sales-team-claude · by zubair-trabzadaYou are a comprehensive AI sales intelligence and outreach system for Claude Code. You help founders, sales teams, agency owners, and…★ 1.4k GitHub starsSkillCold Email Automationgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiAutonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial `client-profile.yaml` from /icp-onboarding. Triggers on "auto-research", "launch an automated campaign", "daily campaign", "run the research loop".★ 736 GitHub starsSkillABM Campaign Playbookexplorium-ai/gtm-skills · by explorium-aiABM campaign skill for Claude Code: run a full Account-Based Marketing campaign end-to-end — from ICP definition to live LinkedIn Ads. Builds targeted account lists with Vibe Prospecting, enriches and scores companies with real-time B2B data, generates personalized ad creatives with Claude Code and Figma, pushes matched audiences to LinkedIn Ads, and monitors campaigns daily at scale. The complete GTM skill for AI-driven account-based marketing in Claude Code, Codex, Hermes-Agent, and OpenClaw. No agency needed.★ 197 GitHub starsSkillDecision-Maker Shortlistexplorium-ai/gtm-skills · by explorium-aiContact data skill for Claude Code and Codex: build a ranked shortlist of decision-makers and contacts at a target company for outbound prospecting, deal acceleration, or renewal/expansion plays. Returns verified contact data including email, phone, LinkedIn profile, title, seniority, and department. Provide a company name or domain plus optional seniority focus or use case. Use for contact data enrichment, LinkedIn profile lookup, and building outbound contact lists. Works in Claude Code, Codex, Hermes-Agent, and OpenClaw.★ 197 GitHub starsSkillAccount Fit Scorerexplorium-ai/gtm-skills · by explorium-aiLead scoring and buying signals skill for Claude Code and Codex: rank a list of accounts by ICP fit, buying intent, real-time trigger events, and workforce momentum. Returns composite score (0-100), tier (A/B/C), and a 'why now' signal per account. Use for account-based selling, ABM list prioritization, territory planning, signal-based selling, and buyer-intent ranking. Triggers on 'score these accounts', 'rank by ICP fit and intent', 'prioritize this account list', 'which accounts have the strongest buying signals', 'ICP scoring', 'account prioritization'. Works in Claude Code, Codex, Hermes-Agent, OpenClaw, and Claude Cowork.★ 197 GitHub starsSkillApollo Hyper Orchestratorhyperfx-ai/marketing-skills · by hyperfx-aiRun end-to-end B2B cold-email outreach through the Hyper MCP — enrich prospects with Apollo, scrape per-prospect signals from company sites and LinkedIn, draft personalized emails using proven hook frameworks, send via Gmail with safe defaults, and route replies into labeled folders. Use when the user wants to write cold emails, run an outbound sequence, prospect a list, build a follow-up cadence, "reach out to leads," or asks why nobody is replying to their cold emails.★ 90 GitHub stars

More from getaero-io

SkillDeepline Audience Managergetaero-io/gtm-eng-skills · by getaero-ioUse this skill when building, enriching, auditing, or uploading B2B paid ads audiences to Google Customer Match, Meta/Facebook Custom Audiences, or LinkedIn Matched Audiences. Triggers on phrases like '/deepline-ads-audience', '/deepline-ads-audiences', 'upload this audience', 'create custom audiences', 'personal email hashes', 'increase Facebook match rate', 'Google ads audience', 'Meta audience', 'FB audience', or any workflow that turns CRM/customer/contact data into paid ads upload lists. Skip for outbound prospecting sequences, cold email, or pure campaign copywriting.★ 66 GitHub starsSkillDeepline Revenue Analyticsgetaero-io/gtm-eng-skills · by getaero-ioUse this skill when answering business analytics, RevOps, GTM metric, pipeline, revenue, funnel, customer, or warehouse questions with Deepline. Triggers on phrases like 'query Snowflake', 'analyze pipeline', 'total ACV', 'break down by quarter', 'use the semantic layer', 'run a semantic query', or any use of snowflake_get_semantic_layer / snowflake_run_semantic_query. Skip prospecting, enrichment, contact finding, outbound, or personalization workflows; use deepline-gtm for those.★ 66 GitHub starsSkillDeepline GTM Automationgetaero-io/gtm-eng-skills · by getaero-ioUse for Deepline GTM work that searches, enriches, scores, collects signals, or automates a workflow: find companies or people, enrich a CSV, find emails or LinkedIn, compare providers, build a waterfall, create a webhook or cron, or write a Play. For live information work, run a small heterogeneous experiment, exploit the observed winner, and reopen misses. Skip pure copywriting and non-GTM research.★ 66 GitHub starsSkillDeepline Research Discoverygetaero-io/gtm-eng-skills · by getaero-ioUse when the user wants a last30days-style pre-research pass in Deepline: discover the critical public, private, CRM, workflow, social, and web data sources for a research/enrichment job; compare provider coverage; estimate Deepline credit cost; recommend the source plan before building or running the workflow; or build custom language/messaging from buyer, competitor, community, and CRM evidence. Triggers: pre-research, source discovery, provider strategy, research data sources, ScrapeCreators, X/Twitter data, Reddit comments, public and private datasets, CRM data, workflow data, custom language, messaging language, pain language.★ 66 GitHub starsSkillGo-to-Market Strategy Enginegetaero-io/gtm-eng-skills · by getaero-ioGTM prospecting, enrichment, outreach, and Deepline Play work/audits. Providers: adyntel,affinity,ai_ark,akta,allegrow,amplemarket,apify,attention,attio,aviato,bettercontact,bigquery,bluesky,bounceban,brave,browserbase,builtwith,cbinsights,clay,clickhouse,cloudflare,contactout,contextdev,crustdata-v3,customer_db,databricks,dataforseo,datagma,dealroom,deepline_ip_to_company,deepline_native,deeplineagent,discolike,dropleads,edges,emailbison,emailguard,enformion,enigma,exa,findymail,firecrawl,fireflies,firmable,forager,fullenrich,fundable,generic_http,getleads,gong,google_ads_audiences,google_workspace,govfiles,grain,hackernews,harvestapi,heyreach,hubspot,hunter,icypeas,instantly,intercom,ipqs,kaspr,kernel,leadmagic,lemlist,limadata,linkedin_ads_audiences,luma,lusha,meta_audiences,millionverifier,nooks,notion,openmart,opensosdata,openwebninja,outreach,parallel,peopledatalabs,pitchbook,podscan,polymarket,postgres,predictleads,prospeo,quickenrich,rapidapi,redshift,rocketreach,salesforce,salesforge,salesloft,….★ 66 GitHub stars