pp-erank
Keyword Tool data from eRank, plus local scoring, drift, and listing-gap analysis for Etsy sellers. Trigger phrases: `research dad mug on eRank`, `score an Etsy keyword`, `find eRank top listings`, `compare Etsy listing tags`, `use eRank`, `run eRank`.
What this skill does
<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/marketing/erank/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
# eRank — Printing Press CLI
## Prerequisites: Install the CLI
This skill drives the `erank-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first:
1. Install via the Printing Press installer. It defaults binaries to `$HOME/.local/bin` on macOS/Linux and `%LOCALAPPDATA%\Programs\PrintingPress\bin` on Windows:
```bash
npx -y @mvanhorn/printing-press-library install erank --cli-only
```
2. Verify: `erank-pp-cli --version`
3. Ensure the reported install directory is on `$PATH` for the agent/runtime that will invoke this skill.
If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer):
```bash
go install github.com/mvanhorn/printing-press-library/library/marketing/erank/cmd/erank-pp-cli@latest
```
If `--version` reports "command not found" after install, the runtime cannot see the binary directory on `$PATH`. Do not proceed with skill commands until verification succeeds.
## When to Use This CLI
Use this CLI when you need repeatable eRank Keyword Tool research from an agent or script. It is strongest for Etsy keyword decisions, tag extraction, top-listing comparisons, and tracking changes over time.
## Unique Capabilities
These capabilities aren't available in any other tool for this API.
### Seller decisions
- **`opportunity`** — Score a keyword as a seller opportunity using eRank stats, difficulty, competition, and current top listings.
_Use this when an agent needs a go/no-go read on a keyword instead of separate raw metric calls._
```bash
erank-pp-cli opportunity "dad mug" --source etsy --country USA --agent
```
- **`lists optimize`** — Rank saved keyword lists by weak, saturated, overlapping, and missing keyword opportunities.
_Use this when an agent needs to clean up a seller's research list before drafting listings._
```bash
erank-pp-cli lists optimize "Father's Day mugs" --country USA --agent
```
- **`saturation`** — Flag crowded keywords by combining competition, difficulty, tag reuse, and top-listing density.
_Use this to avoid chasing keywords that look popular but are too crowded to enter._
```bash
erank-pp-cli saturation "dad mug" --source etsy --country USA --agent
```
### Listing optimization
- **`listing gaps`** — Compare a draft listing title and tags against phrases and tags appearing in top eRank results.
_Use this before publishing or rewriting an Etsy listing from keyword evidence._
```bash
erank-pp-cli listing gaps "dad mug" --title "Funny Dad Coffee Mug" --tags "dad gift,fathers day,mug" --agent
```
- **`tags consensus`** — Find tags that repeatedly appear across top listings, Etsy tag data, related searches, and near matches.
_Use this when an agent needs defensible tag candidates grounded in multiple signals._
```bash
erank-pp-cli tags consensus "dad mug" --source etsy --country USA --min-count 3 --agent
```
### Local history
- **`watch drift`** — Detect meaningful changes in keyword competition, difficulty, and top listings across saved snapshots.
_Use this to monitor seasonal or competitive shifts without rereading full eRank pages._
```bash
erank-pp-cli watch drift "dad mug" --days 30 --threshold 15 --agent
```
### Product research
- **`angles`** — Extract product angles from related searches, near matches, tags, and current top listings.
_Use this when an agent needs product-angle ideas tied to observed demand signals._
```bash
erank-pp-cli angles "dad mug" --source etsy --country USA --limit 10 --agent
```
## HTTP Transport
This CLI uses Chrome-compatible HTTP transport for browser-facing endpoints. It does not require a resident browser process for normal API calls.
## Discovery Signals
This CLI was generated with browser-observed traffic context.
- Capture coverage: 61 API entries from 233 total network entries
- Protocols: rest_json (75% confidence)
- Auth signals: api_key — query: keyword
- Generation hints: browser_http_transport, requires_protected_client, weak_schema_confidence
- Candidate command ideas: create_competition — Derived from observed POST /api/keyword-tool/competition traffic.; create_google_data — Derived from observed POST /api/keyword-tool/google-data traffic.; create_keyword_difficulty — Derived from observed POST /api/keyword-tool/keyword-difficulty traffic.; create_save_history — Derived from observed POST /api/keyword-tool/save-history traffic.; get_user_preferences — Derived from observed GET /api/account/user-preferences/{user_preference_id} traffic.; list_check_paddle_restriction — Derived from observed GET /api/check-paddle-restriction traffic.; list_check_token_validity — Derived from observed GET /api/oauth/check-token-validity traffic.; list_customer — Derived from observed GET /dotjs/v1/quests/customer/ traffic.
- Caveats: empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.; empty_payload: API-looking request returned an empty or null payload; schema confidence is weak.
## Command Reference
**account** — Operations on sideBarCollapse
- `erank-pp-cli account get-user-preferences` — GET /api/account/user-preferences/{user_preference_id}
- `erank-pp-cli account list-keyword-tool.near-matches.table.config.columns` — GET /api/account/user-preferences/keyword-tool.near-matches.table.config.columns
- `erank-pp-cli account list-kt-keyword-ideas` — GET /api/account/user-preferences/kt_keyword_ideas
- `erank-pp-cli account list-member-preferences` — GET /api/account/member-preferences
- `erank-pp-cli account list-search-country` — GET /api/account/user-preferences/searchCountry
- `erank-pp-cli account list-side-bar-collapse` — GET /api/account/user-preferences/sideBarCollapse
**build** — Operations on version.json
- `erank-pp-cli build` — GET /build/version.json
**check-paddle-restriction** — Operations on check-paddle-restriction
- `erank-pp-cli check-paddle-restriction` — GET /api/check-paddle-restriction
**intercom** — Operations on intercom
- `erank-pp-cli intercom` — GET /api/intercom
**keyword-tool** — Operations on stats
- `erank-pp-cli keyword-tool create-competition` — POST /api/keyword-tool/competition
- `erank-pp-cli keyword-tool create-google-data` — POST /api/keyword-tool/google-data
- `erank-pp-cli keyword-tool create-keyword-difficulty` — POST /api/keyword-tool/keyword-difficulty
- `erank-pp-cli keyword-tool create-save-history` — POST /api/keyword-tool/save-history
- `erank-pp-cli keyword-tool list-etsy-tags` — GET /api/keyword-tool/etsy-tags
- `erank-pp-cli keyword-tool list-near-matches` — GET /api/keyword-tool/near-matches
- `erank-pp-cli keyword-tool list-related-searches` — GET /api/keyword-tool/related-searches
- `erank-pp-cli keyword-tool list-stats` — GET /api/keRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.