Set up a recurring buying-signal detection pipeline that finds companies showing buying intent across three signal types — job postings (hiring for the persona), fundraising events (recent raises), and LinkedIn content (pain-point posts, hiring announcements) — then aggregates results into a deduplicated leads.csv with the signal source, evidence URL, and detection timestamp per row. Split-schedule architecture — Apify Actor Tasks pull raw data on their own cadence, a Claude-side aggregation tas
SkillScore78Maintained
Automatic
◆Sales & GTM pack
Last verified 9/25/2026
What it changes
Passed 14 of 18 test cases with the skill, and 5 of 18 without it.
Without skill30%
With skill78%
Checks it passed that the model alone missed
Recommends passing the --force flag to aggregate.py.
Identifies France Travail as the regional job scraper Actor for FR.
Recommends executing scripts/setup_apify_tasks.py with the --dry-run flag.
and 9 more in the full report
11 fixed7 passed either way5 still failing0 broke
Pass-rate lift
+48 pp
Tokens
+219%
Agent turns
0%
Response time
-52%
Model gemini-3.6-flashMeasured 9/25/2026v118 of 23 cases passed with skill · 18 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 10
Prompt
After setup_apify_tasks.py provisions tasks on Apify, what sidecar file does it write inside the campaign directory so aggregate.py knows which task dataset IDs to pull from?
What was checked, without and with the skill
Checked
Without skill
With skill
Identifies the sidecar file naming pattern starting with a dot and ending with .tasks.json.
Missed
Passed
case-18 · gemini-3.6-flash · 9/25/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md263 lines7 filesincludes scripts
Buying-Signal Detection
Turn an ICP description into a recurring pipeline that surfaces companies showing buying intent across three signal types — job postings, fundraising events, and LinkedIn content — and appends them to a single deduplicated leads.csv you can pipe straight into your CRM.
What this skill does (and what it deliberately does not)
This skill sets up and runs a scheduled workflow. It does not draft cold emails, score leads by fit, or push rows into a CRM. Its output is a clean, evidence-linked leads.csv — the input to whatever outreach process you already have. Cold outreach drafting for these leads is deliberately a separate concern (that's what apify-link-prospecting-outreach and similar skills exist for).
Three design commitments worth knowing before you start:
The Apify side and the Claude side run on separate schedules. Apify runs the Actors on its own cron; Claude runs the aggregation on its own cron. Claude Code doesn't need to be up when the Actors run. This decoupling is what makes the pipeline actually recurring, not just "you have to remember to trigger it."
Weekly idempotency is enforced at aggregation time. If the leads CSV already has an entry from the current ISO week, the aggregate script exits early with no HTTP calls made. The Claude-side schedule can fire more often than weekly (safety net) without cost impact.
First-seen wins on dedup. A lead surfaced by the jobs signal on Monday stays a jobs-signal lead even if the same company shows up in the funding feed on Wednesday. The signal that first surfaced a company is the more useful one.
Python 3.10+ (for scripts/aggregate.py and scripts/setup_apify_tasks.py; only stdlib is required — requests is used when available but has a urllib fallback)
Optional: a way to trigger the Claude-side aggregation on a schedule — the local scheduled-tasks MCP is the recommended path when you're on Claude Code; cron / Task Scheduler / GitHub Actions all work too if you'd rather run it headlessly
Workflow
Copy this checklist and mark items done:
Task Progress:
- [ ] Step 1: Collect ICP inputs (block on these)
- [ ] Step 2: Write icp.json + blacklist.csv (if any)
- [ ] Step 3: Provision Apify Actor Tasks (setup_apify_tasks.py)
- [ ] Step 4: Verify Actor picks in the Apify Console
- [ ] Step 5: Register the Claude-side aggregation schedule
- [ ] Step 6: First manual run of aggregate.py — sanity check the output