17 AI skills for finding customers and making content

buying-signal-detector

catch buyers the month they are ready

How the two work together

Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.

Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.

No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.

Prompt for Claude

---
name: buying-signal-detector
description: Score and stack dated public buying signals and return who to contact this week with a ready message; use when choosing this week's contacts.
---

# Contact the companies ready to buy this week

Ranked accounts with stacked live signals: reason, owner, deadline and a message leading with their problem.

## Claude does

Inputs: {COMPANIES}, {OFFER}, {BUYER_ROLE}, {ICP}, {TODAY}; optional {WINS} (what preceded past wins), {PROOF} (named customer results).

1. Build {POINTS}: 5-10 types as points/expiry/window days after the event. Defaults: demo 100/7/0-7, pricing enquiry 80/7/0-7, new executive 75/90/14-45, funding 45/60/8-56, job posting 40/30/0-30, tech change ?/45/7-14, expansion ?/60/0-60, complaint ?/30/0-30; ? is unpublished: set 20-45, say so. {WINS}: keep only types preceding wins.
2. Agree {BANDS} with the user first: score range, owner, deadline. Defaults: 150+ closer 1h, 100-149 SDR 24h, 50-99 nurture 72h, 20-49 marketing, 0-19 monitor.
3. Score ICP fit 1-5 before research; fit 1-2 goes to {NO_SIGNAL} as "fit too low".
4. Research the rest (LinkedIn Jobs, Crunchbase, press, BuiltWith, company site). Job posts: pain, not title; a named tool means migration; 5+ roles per department is a surge, 1-3 nurture.
5. One row per event: Company, Fit, Type, Evidence (quoted), Source URL, Date, lead yes/no. No date or URL, no row; never guess. Layoffs, litigation, misfortune: lead no. Rows: {SIGNALS}; the rest: {NO_SIGNAL}.

## Then Codex does

Codex gets the rows and both tables for the arithmetic and writing: ageing, expiry, multipliers, stacking, tiers, bands, contact dates, messages, three files.

```
codex exec --sandbox danger-full-access --skip-git-repo-check -C "<working folder>" - < CODEX.md
```

First copy CODEX.md into the working folder with {OFFER}, {BUYER_ROLE}, {TODAY}, {POINTS}, {BANDS}, {PROOF}, {SIGNALS}, {NO_SIGNAL} filled in.

## Claude checks

1. Every supplied row present and unchanged; nothing added or invented.
2. Recompute three account scores; funding windows open from day 8, new-executive windows inside days 14-45.
3. Messages only on two or more live signals or one live enquiry; none for one posting or raise, none on lead-no rows.
4. No "I saw", "I noticed", "congrat", greeting or sign-off; every message 75-125 words; every ranked account shows reason, owner, deadline.

Any failure: send Codex the rows and reason, rerun, recheck; never patch by hand.

## Rules

- A signal is a dated, sourced public event, never a hunch. Free public sources only. Never lead with layoffs, litigation or misfortune.
- One signal is a guess; fit gates the signal. No trigger, no window: unchanged accounts close under 1%.
- Each type has its own expiry and window. Skip week one after a raise. Contact within 48 hours; half the value goes by day 7.
- Never open with "I saw", "I noticed" or congratulations; lead with the implied problem.
- Every band needs an owner and deadline before detection starts. Keep 5-10 types, print the reason beside every score, recalibrate monthly from wins.
- Vendor reply rates and "74% when first in" are unverified.

## If Codex is not installed

Claude does the Codex half and says so.

## Built from

- ColdIQ Signal Sourcer: https://github.com/Cold-IQ/ColdIQ-s-GTM-Skills/blob/main/master-skills/signal-sourcer/SKILL.md (269 stars, api.github.com)
- Clay buying-signals guide: https://www.clay.com/guides/how-to-identify-buying-signals (May 2026)
- louisblythe trigger-event-detection: https://github.com/louisblythe/Sales-Skills/blob/main/skills/trigger-event-detection/SKILL.md (143 stars, api.github.com)
- Common Room prompts: https://www.commonroom.io/prompts/ (signal platform)
- Elias, SHiFT!: https://shiftselling.com/files/thebook/SHiFT-The_Trigger_Event_Selling_Book-Preview_Chapter.pdf (2010 book)
- GTME.cc Signal Engine: https://gtme.cc/playbooks/signal-based-icp (July 2026)

Prompt for Codex

# Contact the companies ready to buy this week - Codex task

Work alone from this file: no web search, no added signals, no changed facts.

## You are given

- {OFFER}: what is sold, which problem it removes.
- {BUYER_ROLE}: the message's reader.
- {TODAY}: YYYY-MM-DD.
- {POINTS}: per type, points, expiry days, window open and close days after the event.
- {BANDS}: score range, owner, deadline.
- {PROOF}: named customer results, may be empty.
- {SIGNALS}: one per event: Company, Fit 1-5, Type, Evidence (quoted), Source URL, Date, lead yes/no.
- {NO_SIGNAL}: companies with nothing found.

## Produce

Folder `buying-signals/` with three files.

1. `signals.csv` (one per signal): Company, Fit, Type, Evidence, Source URL, Date, Age, Status, Multiplier, Points, Score, Window opens, Window closes.
   - Age = {TODAY} minus Date; Status = expired if Age exceeds expiry, note only if lead no, else live.
   - Multiplier by Age: 0-1 days 1.5, 2-7 1.2, 8-14 1.0, 15-30 0.7, 31+ 0.3.
   - Score = Points*Multiplier*Fit/5 (expired and note-only rows 0); windows = Date plus window days.
2. `accounts.csv` (one per company): Company, Fit, Live signals, Tier, Score, Band, Owner, Deadline, Reason, Contact from, Contact by.
   - Score = sum of live scores; Band, Owner, Deadline from {BANDS}.
   - Tier A: two or more live signals, or one live demo/pricing enquiry; B: one; C: none.
   - Reason: one sentence naming each live event and its age, never the number alone.
   - Contact from = {TODAY} if a live window is open, else the earliest future opening; Contact by = two days later.
3. `report.md`: "Contact this week" (Tier A by score, row then message), "Nurture" (Tier B), "Expired or note only" (rows and why), "No signal" ({NO_SIGNAL} unchanged).

Message (Tier A only, 75-125 words, to {BUYER_ROLE}), four parts: the problem the live events imply, never naming the event; one sentence on how {OFFER} removes it; a {PROOF} result, or without {PROOF} a question on how they handle it now; a light close (new executive: ask about their first 90 days). No greeting or sign-off.

## Rules

- Copy Company, Evidence, Source URL and Date exactly; never shorten, merge, or invent a customer, number or name; a row missing Date or URL is left out and reported.
- No "I saw", "I noticed", "congratulations" or "reaching out"; never mention a note-only event.

## Return

1. Counts: rows received, live, expired, note only, left out (with reasons); accounts per tier; messages.
2. Top three accounts: each live signal's Age, Multiplier, Fit, Score, then the sum and band.
3. Each message's word count and a search for "I saw", "I noticed", "congrat", "Hi ", "Best," (expect none).
4. Paths of the three files.

Built from the best public work on this

Contact the companies ready to buy this week - sources

Every source below was opened and checked on 5 Sep 2026 (GitHub figures read from api.github.com the same day). Six of six confirmed, none dropped.

Built from

  • ColdIQ GTM Skills, Signal Sourcer master skill (9 sub-skills) plus buying-signals-6: https://github.com/Cold-IQ/ColdIQ-s-GTM-Skills/blob/main/master-skills/signal-sourcer/SKILL.md (269 stars, 85 forks, pushed 2 Sep 2026; reviewed by La Growth Machine, 3 Sep 2026: "The depth on signals is the best in this list by a wide margin"). Gave the points table (demo 100, pricing 80, champion job change 75, funding 45, job posting 40), the recency multipliers (1.5x inside 24 hours down to 0.3x after 30 days), the action bands with owner and deadline, the funding week-one rule and the new-executive days 14-45 window. Caveat: ships no licence file and routes by default to ColdIQ's paid MCP; this skill uses the manual public route instead.
  • Clay, How to Identify and Act on Buying Signals (2026): https://www.clay.com/guides/how-to-identify-buying-signals (Clay, 4 May 2026). Gave the urgency formula (strength x ICP fit x recency), the stacking rule ("three signals in two weeks beats the same three spread over six months"), the per-signal windows and the five failure modes, plus the classifier prompt quoted below.
  • louisblythe/Sales-Skills, trigger-event-detection: https://github.com/louisblythe/Sales-Skills/blob/main/skills/trigger-event-detection/SKILL.md (143 stars, 33 forks; last push 24 Jan 2026, so not actively maintained). Gave the per-type decay days (hiring 30, tech 45, funding and expansion 60, new executive 90), the routing thresholds and the reply-and-conversion-by-trigger metrics.
  • Common Room, signal-triggered outreach prompt library: https://www.commonroom.io/prompts/ (mainstream signal platform; two prompt pages opened in full). Gave the four-part message (acknowledge the situation, value tied to it, customer example, light close), the 75-125 word cap, and the wording rules: no "I noticed" or "I saw", no "congrats", no greetings or sign-offs, ask about the first 90 days.
  • Craig Elias, SHiFT! Trigger Event Selling (Elias and Shanto, 2010; preview chapter): https://shiftselling.com/files/thebook/SHiFT-The_Trigger_Event_Selling_Book-Preview_Chapter.pdf. Gave the three buying modes, the Window of Dissatisfaction, the under 1% close ratio on status-quo buyers and the Won Sales Analysis method of weighting signal types from past wins. The "74% when first in" figure is attributed to Forrester with no study named and is treated as unverified.
  • GTME.cc, The Signal Engine (signal-based ICP targeting): https://gtme.cc/playbooks/signal-based-icp (July 2026; credited to GTME.cc studio). Gave the A/B/C tiers (A = two or more live signals on a fit account, C = fit without motion, never outreach), "give every signal a decay date", the 48-hour outreach target and the five ways signal programmes die. Its reply-rate ladder (<2%, 8-15%, 15-25%) is self-reported.

Best public prompt we found for this job

From https://www.clay.com/guides/how-to-identify-buying-signals (section "Step 4", labelled "AI column - classify a buying signal for urgency"; text extracted verbatim from the page HTML on 5 Sep 2026):

```

Classify this buying signal for sales urgency.

Company: {{company_name}}

Detected event: {{signal_event}}

Source: {{signal_source}}

Date detected: {{signal_date}}

Our ICP: {{icp_description}}

Return JSON only:

{

"signal_type": "funding | hiring | job_change | intent | product_usage | other",

"strength": 1-5 (how strongly this predicts a near-term purchase),

"icp_fit": 1-5 (how well this company matches our ICP),

"urgency": "high | medium | low",

"reason": "one sentence a rep can read before reaching out",

"recommended_play": "the single next action"

}

```

This skill keeps that prompt's shape (type, strength, fit, urgency, a plain-language reason, a single next action) and adds what the other sources supply: numeric points, expiry per type, stacking across signals, an owner and deadline per band, and a message written to the buyer.

Want this running in your business?

I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.