Agent skill
prospect-profiler
Turns a SCORED account list into one tactical pre-touch dossier per account: a compact "60-second card" an SDR reads right before writing the first touch.
Filed under Prospecting and list building.
From victor-shulga/gtm-skills · 6 skill entries · 0 · pushed 2026-09-24
What it does when it runs
Turns a SCORED account list into one tactical pre-touch dossier per account: a compact "60-second card" an SDR reads right before writing the first touch. Batch by design: reads the output of lead- scoring / agency-signal-sourcer (or any list with company + signal + role data) and emits one action card per account (summary, talking points, comm style, grounded pain, recommended approach, data- quality flag). Adapted for B2B service agencies (BIM/MEP, GIS, custom dev, AI/SaaS engineering outsourcing), NOT US-SaaS. Use when asked: "зроби картки по лідах", "профайли проспектів", "pre- touch brief", "дос'є на акаунти", "prep cards before outreach", "build prospect profiles", or when handed a scored list before copy is written. Sits between the list stage and the copy stage. NOT for deep one-company intelligence (account-dossier), NOT for persona archetypes (persona-builder), NOT for writing the sequence (sequence-writer).
Automated analysis of the skill and the 0 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It only issues instructions, so there is nothing to bound. - Actions present in the files
- None. Instructions only.
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/victor-shulga/gtm-skills.git /tmp/gtm-skills git -C /tmp/gtm-skills sparse-checkout set "prospect-profiler" mkdir -p ~/.claude/skills/prospect-profiler cp -R "/tmp/gtm-skills/prospect-profiler/." ~/.claude/skills/prospect-profiler/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from victor-shulga/gtm-skills/blob/c2b2687c889e47d012639c5050168dea85310e4e/prospect-profiler/SKILL.md, which is licensed MIT (repository). 1,099 words, 11 headings.
Prospect Profiler — the 60-second pre-touch card
You turn a scored account list into tactical dossiers a rep acts on. One card per account. The test: an SDR reads it in 60 seconds and writes a signal-first first touch without opening five tabs.
Core principle (Viktor's frame). A profile is not a research essay. It separates:
- The dynamic signal = the time-bound trigger → tells the rep WHEN and why now.
- The static data points = facts true regardless → tell the rep WHAT to say to adapt the message. A good card hands the rep exactly one trigger + the data points to dress it, and nothing they won't use.
Anti-hallucination rule (the thing janskuba's version gets wrong). Never invent pain. Every pain point is tagged [confirmed] (grounded in a cited signal / source / quote) or [inferred] (a hypothesis from firmographics). Inferred pain is allowed but must be labelled — the rep treats it as a question to test, not a fact to assert. If you can't ground or honestly infer it, leave it out.
When to use / inputs
Runs over a scored list — ideally the output of 13-lead-scoring or agency-signal-sourcer
(account + signal + role + score). Minimum viable input: company name + at least one signal OR role.
Read whatever exists: company, industry, size, the detected signal(s), persona/role, prior scoring reasoning, and any enrichment fields. If a signal source URL or quote is present, keep it for grounding.
Do not go re-research each company deeply here — that's deep-company-analyser. This stage
organises and sharpens data already gathered into an action card. If a field is missing, flag it
(see data_quality) rather than inventing it.
The card schema (one per account)
| Field | Rule |
|---|---|
account | Company name |
tier | Carry over from scoring (T1/T2/T3) — drives effort, see below |
summary | ≤ 80 words. Who they are · what changed (the signal) · why now is a window. Every word earns its place. No filler, no "leading provider of" marketing voice. |
the_signal | The single dynamic trigger to open on + its freshness (e.g. "Hiring 3 BIM coordinators, posted 11 days ago"). If multiple, pick the freshest + most actionable, list others in notes. |
talking_points | 2-4. Each tied to a signal or a real data point, phrased as something a rep can naturally raise. Specific to THIS account, never generic industry takes. |
pain_points | Each tagged [confirmed] or [inferred] per the anti-hallucination rule. Max 3. Tie each to the buyer's likely cost-of-inaction, not a feature gap. |
comm_style | formal / direct / technical — determined from evidence, not industry stereotype (see guide). |
recommended_approach | Triplet: channel | angle | timing. channel = email / linkedin / multi. angle = direct / proof-led / question-led / value-first. timing = now / this week / event-window. |
data_quality | HIGH / MEDIUM / LOW — honesty flag (see guide). Pairs with the missing-data ceiling in scoring: thin data → say so, don't fake confidence. |
notes | Optional: secondary signals, role to target if list has wrong contact, what to verify before sending. |
Language. Write the card in Viktor's working language (UA). But any phrasing meant to land in the message — talking-point wording, a quote — keep in the prospect's language (usually EN), so it drops straight into G3 copy.
Determination guides
comm_style — from evidence, not cliché
Do NOT default "enterprise = formal". Read actual signals of how they communicate:
technical→ engineering-led firm, technical buyer title, spec/tool language in their posts/JDdirect→ founder/owner-led, lean team, plain-spoken public voice, SMBformal→ regulated/procurement-driven buying, committee, public-sector or large-contractor tone If there's no evidence → defaultdirectand flagdata_qualityaccordingly. A guess dressed as a fact is worse thandirect.
data_quality — the honesty flag
HIGH— signal is fresh + sourced, role confirmed as decision-influencer, firmographics knownMEDIUM— signal present but older/unsourced, OR role/size partly unknownLOW— no live signal, or scoring flagged capped dimensions (missing-data ceiling fired). On LOW: the rep should enrich before sending, or treat the touch as a probe.
Tier-aware effort (budget tokens where they pay)
- T1 / T2 → full card, sharpest talking points, grounded pain, 2-4 points.
- T3 → short card: summary + the_signal + comm_style + data_quality. Skip deep pain; one talking point. Don't over-invest in accounts the scoring already deprioritised.
Agency adaptation (overrides US-SaaS instincts)
- Drop product-led framing (usage spikes, trial signups, seat expansion). Agency buyers buy capacity, expertise, de-risking.
- Pain is usually: hiring can't keep up, a project is at risk, an in-house gap, a deadline, a failed vendor. Ground talking points in delivery reality, not software ROI.
- "Who can buy" matters: if the listed contact isn't a decision-influencer, say so in
notesand name the role to target — a perfect account profiled against the wrong junior is wasted.
Output format
Lead with a batch table (one row per account, sorted T1→T3) for scanning, then the full cards
for T1/T2 below it. Write the table to output/prospect-profiles.csv if the run is file-based; otherwise
render inline.
Prospect profiles — [list / hypothesis name] · [date] · [n accounts]
[batch table: account | tier | the_signal | comm_style | approach | data_quality]
— T1/T2 full cards —
[card per account]
Integration (where this sits)
G1 strategy → G2 list (lead-scoring / agency-signal-sourcer)
│
▼
prospect-profiler ← THIS skill: scored list → pre-touch cards
│
▼
G3 copy (sequence-writer / 03-copy-generation / linkedin-sequence)
- Upstream:
13-lead-scoring,agency-signal-sourcer(signal + freshness + score). - Deeper research, if a T1 needs it: hand the account to
deep-company-analyser(verbatim pain, why-buy) — this skill points there, it does not duplicate it. - Downstream: each card feeds G3.
the_signalbecomes the first-touch opener;comm_stylesets tone;recommended_approach.anglepicks the copy framework;[confirmed]pain becomes the value bridge,[inferred]pain becomes a discovery question, never an assertion.
Hard rules
- Never assert
[inferred]pain as fact. Tag everything. - ≤ 80-word summary. No marketing voice.
- comm_style from evidence or default
direct— never industry stereotype. data_quality = LOWis a feature, not a failure — it tells the rep to enrich, not to fabricate.- One trigger per card. Extra signals go to notes.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- sales-prospect by zubair-trabzada · 1,407
- prospect-discovery-pipeline by Othmane-Khadri · 317
- research-prospect by Othmane-Khadri · 317
- prospect-fatigue-detection by louisblythe · 170
- prospect-research-integration by louisblythe · 170
- prospect-researcher by JJenglert1 · 58
- prospect-research by Salesably · 51
- prospect-brief by markster · 50
Need help setting it up?
This page tells you what prospect-profiler does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.