Agent skill
track-campaigns
Poll Unipile / Instantly for the status of running campaigns, advance sequence steps that are due, and sync results to Notion.
Filed under Outbound email.
From Othmane-Khadri/YALC-the-GTM-operating-system · 61 skills · 290 · pushed 2026-08-20
What it does when it runs
Poll Unipile / Instantly for the status of running campaigns, advance sequence steps that are due, and sync results to Notion. Run this on a cadence (cron / launchd) or manually after staging a campaign. Use when the user says 'track campaigns', 'advance the sequences', 'check campaign progress', 'poll for replies', or 'sync replies to Notion'. Side-effecting — calls Unipile/Instantly, writes to SQLite + Notion.
Read from the skill and the 1 file 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 does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- shell
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/Othmane-Khadri/YALC-the-GTM-operating-system.git /tmp/YALC-the-GTM-operating-system git -C /tmp/YALC-the-GTM-operating-system sparse-checkout set ".claude/skills/track-campaigns" mkdir -p ~/.claude/skills/track-campaigns cp -R "/tmp/YALC-the-GTM-operating-system/.claude/skills/track-campaigns/." ~/.claude/skills/track-campaigns/
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 Othmane-Khadri/YALC-the-GTM-operating-system/blob/5686d1f2f526346133f78eef3349fc5a655757b4/.claude/skills/track-campaigns/SKILL.md, which is licensed MIT (repository). 232 words, 9 headings.
Track Campaigns
I'll wrap campaign:track. Run the polling cycle, advance any sequence steps that are due, and surface the per-campaign status delta.
When This Skill Applies
- "track campaigns"
- "advance the sequences"
- "check campaign progress"
- "poll for replies"
- "sync campaign status to Notion"
NOT this skill (use launch-linkedin-campaign instead):
- "launch a campaign" — that's the create+stage flow.
NOT this skill (use answer-linkedin-comments instead):
- "reply to LinkedIn comments" — that's per-thread engagement, not campaign-level tracking.
Workflow
Step 0 — No input needed (or ask for --campaign-id <id> if user wants a single campaign)
Step 1 — Shell out
cd ~/Desktop/gtm-os && set -a && source .env.local && set +a && \
npx tsx src/cli/index.ts campaign:track
Optional: --campaign-id <id> to scope to one campaign.
Step 2 — Parse output
CLI emits per-campaign status delta: messages sent, replies detected, sequence steps advanced, errors.
Step 3 — Render
Step 4 — Offer follow-ups
"Want me to (a) personalize follow-ups for hot replies via
personalize-message, (b) generate the weekly campaign report viacampaign:report?"
Notes
- Best run on cron: every 15 min during business hours.
- Replies appear in Notion within ~2 min of posting (Unipile webhook latency).
- The CLI is idempotent — running it twice in quick succession is safe (advances nothing if no time has elapsed).
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
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.
- lifecycle-marketing-campaigns by realjaymes · 56
Need help setting it up?
This page tells you what track-campaigns 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.