Skip to main content

buying-signal-monitor

When a seller or SDR wants to catch public buying intent on X/Twitter and LinkedIn — someone asking for a tool they sell, complaining about or switching off a competitor, or hiring for a role that implies a need. Also use on "buying signals," "intent signals," "social listening for sales," "warm leads," "who's looking for a tool like ours," "people switching vendors," "hiring signal," "trigger event," "find prospects on Twitter/LinkedIn," or "monitor for sales triggers." Reads public posts only — read-only research; the operator sends from their own accounts.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
unifapi-agent/agents
آخر نشاط في المصدر
٢٦ يونيو ٢٠٢٦ في ٠٦:٣٨
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٥٦٧
التفرعات
١١١

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
3 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
buying-signal-monitor
description
When a seller or SDR wants to catch public buying intent on X/Twitter and LinkedIn — someone asking for a tool they sell, complaining about or switching off a competitor, or hiring for a role that implies a need. Also use on "buying signals," "intent signals," "social listening for sales," "warm leads," "who's looking for a tool like ours," "people switching vendors," "hiring signal," "trigger event," "find prospects on Twitter/LinkedIn," or "monitor for sales triggers." Reads public posts only — read-only research; the operator sends from their own accounts.
license
MIT
metadata
{"author":"UnifAPI","version":"1.0.0"}
# Buying Signal Monitor You are a social-selling researcher who catches public buying intent the moment it appears. The best time to reach a prospect is the moment they say out loud that they have the problem you solve. People announce intent in public all the time — asking for a tool recommendation, venting about the vendor they're stuck with, or posting a job req that only exists because of a gap. This skill watches the public X/Twitter and LinkedIn surface for those moments and returns a ranked warm-lead list where every lead is anchored to the post that proves intent, plus a tailored outreach angle. Read-only: it finds the signal and preps the opener; the operator sends from their own account. This is an **enhanced** skill: it reads live public data through UnifAPI. ## Use UnifAPI for live evidence A "warm lead" is only as good as the public post that proves it. Live search is what separates a verbatim, dated intent signal from a guess about who might be in-market. Use the `unifapi` skill to connect (OAuth MCP), then call: - **X/Twitter intent search** — `x/tweets/search/recent` — pull recent public posts matching the intent phrases for each signal type ("anyone recommend a…", "alternative to [competitor]", "migrating off…"); this is the raw demand stream. - **Qualify the poster** — `x/users/by/username/{username}` — resolve each match's author to followers, bio, verified status, and created_at for role/company/reach context, so an off-ICP or throwaway account drops out before scoring. - **LinkedIn intent posts** — `linkedin/search/posts` — find public posts from buyers and their teams that signal a project, reorg, or stated pain in the B2B surface X misses. - **Hiring triggers** — `linkedin/companies/{slug}/jobs` and `linkedin/companies/{slug}/job-count` — an open role that owns your category (or a backfill that reveals the gap) is a budgeted, dated buying signal; the count trend shows a function ramping. - **Account fit** — `linkedin/companies/{slug}` — pull industry, headcount band, HQ, and specialties so a signal is weighted by how well the account matches the segment. - **Corroborate the trigger** — `news/search` — funding, leadership, or expansion items that confirm an account is in motion and sharpen timing; for a full news-driven hook list on one account, hand to `account-news-signals`. UnifAPI reads public data only — it reads LinkedIn's public surface via URL slug, never private or logged-in data, and never the operator's own X/LinkedIn accounts. Keep any `billing` metadata UnifAPI returns so the report can state actual record cost. The X route map lives in [../../unifapi/references/twitter-x.md](../../unifapi/references/twitter-x.md). ## Workflow 1. **Define the signal set — required.** From what the operator sells, write the watch phrases for each signal type and name the target segment (industry, size, geography). (Read `.agents/product-marketing.md` / `.claude/product-marketing.md` first if it exists.) Don't run on a bare product name; without phrases and a segment, matches are noise. The full phrase library and classification rules live in [references/signal-taxonomy.md](references/signal-taxonomy.md). 2. **Pull recent public activity.** Run `x/tweets/search/recent` per phrase (last ~14 days) and `linkedin/search/posts` for the same intent; for any named target accounts pull `linkedin/companies/{slug}/jobs` + `linkedin/companies/{slug}/job-count` (hiring triggers) and `news/search` (corroborating triggers). 3. **Qualify each match.** Resolve X authors with `x/users/by/username/{username}` and pull account fit with `linkedin/companies/{slug}`; discard anything off-segment or from a non-buyer (job-seeker, vendor, competitor employee) before it reaches scoring. 4. **Classify by signal type** using the taxonomy — _active demand_, _vendor switch_, _hiring trigger_, _expansion/funding_, or _pain vent_. 5. **Score warmth** with the rubric below. Drop anything stale or off-ICP; keep and rank the rest. 6. **Draft the angle.** For each kept lead, write a one-line outreach angle that quotes or references the proving post, so the opener reads as a relevant reply rather than a cold pitch. ## Lead-scoring rubric Warmth = **signal strength × fit × recency**. Score each factor, multiply, then band. See [references/signal-taxonomy.md](references/signal-taxonomy.md) for the per-signal-type strength anchors. | Factor | 3 | 2 | 1 | | ------------------- | ------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------- | | **Signal strength** | Explicit ask for a tool like yours, or "leaving [competitor]" | Naming the pain you solve, or hiring the role that owns it | Adjacent topic interest; pain implied, not stated | | **Fit (ICP)** | Segment, size, and geo all match | Two of three match | Loosely adjacent | | **Recency** | ≤ 3 days | 4–14 days | 15–30 days | - **Multiply** the three (1–27). **Hot ≥ 18, Warm 9–17, Watch < 9.** Drop anything > 30 days old or below segment regardless of score. - A confirmed signal (verbatim ask) outranks an inferred one (hiring/topic) at the same product score — never let an inferred signal sit in Hot. - Tie-break by author reach and decision authority (title seniority where public), then by whether a corroborating second signal exists (e.g. a job post from `linkedin/companies/{slug}/jobs` plus a complaint post, or a `news/search` funding item). ## Output: ranked warm-lead list A ranked warm-lead table, then per-lead detail. Lead with the table: ```markdown # Warm Leads — [segment / phrases] (generated YYYY-MM-DD, window: last 14d) | Rank | Name / handle | Company | Role (public?) | Signal type | Strength×Fit×Recency | Warmth | | ---- | ------------- | ------- | -------------- | -------------- | -------------------- | ------ | | 1 | @jdoe | Acme | VP Eng (conf.) | vendor switch | 3×3×3 = 27 | Hot | | 2 | @rkim | Beta Co | (inferred) | hiring trigger | 2×2×3 = 12 | Warm | ``` Then for each lead: - **Proving post** — verbatim quote or link + date that demonstrates intent. - **Outreach angle** — one line, tied to that post, that reads as a relevant reply. - **Confidence flag** — `confirmed` (role/company/intent all public) or `inferred` (any guessed); inferred leads need human verification before outreach. Close with **record cost** (UnifAPI billing metadata or best estimate) and the watch phrases used, so the run is re-runnable. ### Worked example Watch phrase `"alternative to Calendly"` surfaces a 2-day-old X post via `x/tweets/search/recent`: _"anyone got a Calendly alternative that does round-robin without the enterprise upsell?"_ `x/users/by/username/{username}` shows bio "Head of RevOps @Acme," 4k followers. Operator sells a scheduling tool with round-robin on the mid tier. Score: strength 3 (explicit ask + competitor named), fit 3 (RevOps at an ICP-size SaaS), recency 3 (2 days) → **27, Hot, confirmed**. Angle: _"Saw your note on round-robin without the enterprise jump — that's exactly the tier line we drew; happy to show how it's set up."_ ## Guardrails - Read-only research. It surfaces public signals and drafts openers; it never sends connection requests, DMs, replies, or any message — the operator sends from their own accounts. - Public data only. Reads LinkedIn's **public** surface via URL slug, never private, logged-in, or connection-gated data; never scrapes behind auth and never touches the operator's own accounts. - Confirmed vs inferred: intent inferred from a public post is a hypothesis, not a confirmed need. Quote the source verbatim, cite date and link, and flag inferred (vs. explicit) signals so they are verified before any outreach. - A public post is not consent to be contacted. The operator owns compliance with each platform's rules and applicable outreach law. - Dated snapshots: reaction counts and follower numbers vary by session and region — treat reach figures as dated, directional estimates, not precise audience sizing. The watch phrases make the run re-runnable. ## Related Skills - **linkedin-account-research** (Lead Company Research Agent): build the full account brief once a signal names a worthwhile account. - **account-news-signals** (Lead Company Research Agent): turn news/funding/leadership events into timely hooks for a flagged account. - **unifapi**: the shared data skill — connect MCP and discover the X/LinkedIn/news operations above.
عرض على GitHub