Agent skill
predictleads-dashboard
Use when a teammate wants to visually browse PredictLeads signals already cached in local SQLite — triggers include "dashboard for [domains]", "visualize signals for [list]", "show signals as a dashboard", "HTML view of [client lookalikes]", or any request to scan many companies' signals at a glance.
Filed under Analytics and reporting.
From Othmane-Khadri/YALC-the-GTM-operating-system · 61 skills · 290 · pushed 2026-08-20
What it does when it runs
Use when a teammate wants to visually browse PredictLeads signals already cached in local SQLite — triggers include "dashboard for [domains]", "visualize signals for [list]", "show signals as a dashboard", "HTML view of [client lookalikes]", or any request to scan many companies' signals at a glance.
Read from 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
- PREDICTLEADS_API_KEY
- PREDICTLEADS_API_TOKEN
- 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/predictleads-dashboard" mkdir -p ~/.claude/skills/predictleads-dashboard cp -R "/tmp/YALC-the-GTM-operating-system/.claude/skills/predictleads-dashboard/." ~/.claude/skills/predictleads-dashboard/
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.
Before you install: this skill will not complete its job on a bare agent. It needs PREDICTLEADS_API_KEY, PREDICTLEADS_API_TOKEN, which you have to obtain separately.
The skill
Source on GitHub ↗Reproduced in full from Othmane-Khadri/YALC-the-GTM-operating-system/blob/5686d1f2f526346133f78eef3349fc5a655757b4/.claude/skills/predictleads-dashboard/SKILL.md, which is licensed MIT (repository). 537 words, 10 headings.
PredictLeads Dashboard (HTML viz)
Generates a single self-contained HTML page from cached signals in ~/.gtm-os/gtm-os.db. Cards per company with signal-count badges, top-signal callout, expandable detail (recent jobs, news, funding, tech stack, similar companies). Filter by vertical, sort by signal density or recency. Auto dark/light. Zero API calls.
When to use
- After running
prospect-discovery-pipelineto scan all 10 finalists in one view - After bulk-enriching a campaign result set (
signals:enrich --result-set) for a visual sanity check before outreach - Sharing signal context with a non-technical teammate (open the HTML, no CLI knowledge needed)
Don't use when: you only have signals for 1–2 companies (just use signals:show); signals haven't been pulled yet (run signals:fetch first).
How to invoke
The dashboard is built by a small Python script. Pass a list of domains and an optional list of pre-built lead cards (name + title + LinkedIn URL).
Inputs the skill needs
- List of domains (must already be in
company_signalstable) - Optional per-domain lead metadata:
{ company, vertical, geo, lead_name, lead_title, linkedin }
Build steps
- Read the lead metadata into a Python dict (see existing template at
~/Desktop/predictleads-dashboard.htmlfor shape). - Query SQLite for each domain:
SELECT signal_type, COUNT(*)for badge counts- Top 8 jobs by
event_date DESC - Top 8 news by
event_date DESC - Top 5 financing events
- Top 12 technologies
- Top 10 similar_companies sorted by
payload.score
- Render the HTML template (see
Implementationbelow) with embedded JSON. - Write to
~/Desktop/predictleads-dashboard-{client_or_topic}-{date}.htmland open it.
Implementation
A Python generator script lives at scripts/predictleads-dashboard.py (when committed). It reads from ~/.gtm-os/gtm-os.db, accepts a JSON config of leads, and emits a self-contained HTML file.
If the script is missing, model the new one on the prior run captured at ~/Desktop/predictleads-dashboard.html (Apr 30 2026). Key visual elements to keep:
- Per-company card with company name + vertical tag (color-coded) + domain
- Marketing lead pinned at top of each card with LinkedIn link
- 5 signal-type badges with counts (
jobs / funding / news / tech / similar) - "Top signal" callout with the most recent dated signal across types
- Expandable detail section (jobs/news/financing/tech/similar lists)
- Filter pills (All / vertical) + sort pills (density / recency / vertical)
Quick reference
# After signals:fetch has populated the cache for the domains you care about
python3 scripts/predictleads-dashboard.py \
--domains personio.com,oysterhr.com,...,mirakl.com \
--leads-json /tmp/leads.json \
--out ~/Desktop/predictleads-dashboard.html
open ~/Desktop/predictleads-dashboard.html
Common pitfalls
- Empty cards: signals haven't been fetched yet. Run
signals:fetch --domain Xfirst. - News headlines blank: PredictLeads news payloads use
summarynottitle. The template's display logic falls throughpayload.title || payload.headline || payload.summary. - Tech stack shows blanks: technology names live in JSON:API
relationships.technology.data.idresolved viaincluded[]. The normalizer inpredictleads-enrichment.tsalready promotespayload.technologyto a top-level string. Older signals fetched before the normalizer fix may have empty tech rows; re-fetch with--no-cache. - Similar companies show only score: same root cause — re-fetch with
--no-cacheto populate thesimilar_companyfield with the resolved domain.
Required env
None for generation (it's local-only). The signals must already be cached, which means PREDICTLEADS_API_KEY + PREDICTLEADS_API_TOKEN had to be set when the cache was populated.
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.
- executive-dashboard-generator by manojbajaj95 · 95
- team-performance-dashboard by LaGrowthMachine · 34
- pipeline-dashboard by ekatasingh1107 · 2
Need help setting it up?
This page tells you what predictleads-dashboard 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.