SKILLEMALL.ai

FB apify-ai-search-visibility-tracker

Track whether a brand and its competitors get cited or mentioned across Google AI Overviews, Google AI Mode, ChatGPT Search, Perplexity, Microsoft Copilot, and Google Gemini for a defined set of prompts, on a recurring schedule. Use when user asks to track AI visibility, monitor brand mentions in AI search, track ChatGPT citations, do AI search SEO tracking, GEO tracking (Generative Engine Optimization), AEO tracking (Answer Engine Optimization), monitor Perplexity citations, track AI Overviews mentions, see if their brand shows up in AI search, discover which prompts competitors rank for in AI search, find citation opportunities, or audit a website for AI visibility readiness.

Not recommendedcritical or high security findings · low grade F
apify/awesome-skills Agent Skills author: apify 13 files · 3 scripts body ≈ 3 456 tokens Open the sourcegithub.com↗ analyzed 2 d ago

Track whether a brand and its competitors get cited or mentioned across Google AI Overviews, Google AI Mode, ChatGPT Search, Perplexity, Microsoft Copilot…

As a process B 74/100 · Nearly there — weak spots: when it triggers

ProcedureMarketingResearchAI and agentstype and topics are labelled automatically from the skill text
JSON
Technical rating
F
44/100
safety, quality, tests
Safety 60%
13
Quality 40%
90
Run on models
none yet
Process rating
B
74/100
Nearly there
When it triggers w 12
20
Tools and files w 18
60
Result and completion w 14
60
the three weakest of ten parameters · all ten

What is at stake

The skill contains fragments that, in the wrong hands, cost money or data. Below: what the installer risks and what the author should do.

Dangerous commands
If you install

The skill contains commands that delete files, rewrite disks or execute code fetched from the network. The agent may run them without asking if it believes the instructions require it.

For the author

Replace destructive commands with safe equivalents that ask for confirmation, scope them to one folder, and stop piping curl into a shell: pin a version and a checksum.

How to improve

  1. Address the high-severity findings: each costs 18 safety points. If one is a false positive, add the rule id to guard.allow in spec.yaml.
For the model run — optional
  • Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
  • A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.

Guard findings · 20

  • high Dangerous commands cmd-persistence reference/scripts/install_cron.sh:156
    Persistence mechanism (cron / launchd / scheduled task / autorun registry)
    if ! launchctl bootstrap "gui/$(id -u)" "$plist" 2>/dev/null; then
  • high Dangerous commands cmd-persistence reference/scripts/install_cron.sh:157
    Persistence mechanism (cron / launchd / scheduled task / autorun registry)
    launchctl load "$plist"
  • high Dangerous commands cmd-persistence reference/scripts/install_cron.sh:195
    Persistence mechanism (cron / launchd / scheduled task / autorun registry)
    ( crontab -l 2>/dev/null | grep -v '# ai-visibility-tracker'; echo "$line" ) | crontab -
Medium and low: 17
  • medium Dangerous commands cmd-persistence reference/scripts/install_cron.sh:5
    Persistence mechanism (cron / launchd / scheduled task / autorun registry) (code comment)
    #   macOS  -> ~/Library/LaunchAgents/com.apify.ai-visibility-tracker.plist
    comment
  • medium Dangerous commands cmd-persistence reference/scripts/install_cron.sh:96
    Persistence mechanism (cron / launchd / scheduled task / autorun registry) (string literal in code, not executed)
    local plist="$HOME/Library/LaunchAgents/$LABEL.plist"
    code literal
  • medium Dangerous commands cmd-persistence reference/scripts/uninstall_cron.sh:13
    Persistence mechanism (cron / launchd / scheduled task / autorun registry) (string literal in code, not executed)
    plist="$HOME/Library/LaunchAgents/$LABEL.plist"
    code literal
  • medium Dangerous commands cmd-persistence reference/scripts/uninstall_cron.sh:26
    Persistence mechanism (cron / launchd / scheduled task / autorun registry) (detector / deny-list definition)
    crontab -l 2>/dev/null | grep -v '# ai-visibility-tracker' | crontab -
    detector
  • low Dangerous commands cmd-cron-mention reference/scheduling.md:76
    Mentions editing / listing crontab (documentation table row; documentation of a security skill)
    | `crontab -l` shows the entry but no log lines | cron daemon disabled | `systemctl status cron` (or `cronie`/`crond`); start it |
    tablesecurity skill
  • low Dangerous commands cmd-cron-mention reference/scripts/install_cron.sh:195
    Mentions editing / listing crontab
    ( crontab -l 2>/dev/null | grep -v '# ai-visibility-tracker'; echo "$line" ) | crontab -
  • low Dangerous commands cmd-cron-mention reference/scripts/install_cron.sh:200
    Mentions editing / listing crontab
    crontab -l
  • low Dangerous commands cmd-cron-mention reference/scripts/uninstall_cron.sh:25
    Mentions editing / listing crontab
    if crontab -l 2>/dev/null | grep -q '# ai-visibility-tracker'; then
  • low Dangerous commands cmd-cron-mention reference/scripts/uninstall_cron.sh:26
    Mentions editing / listing crontab
    crontab -l 2>/dev/null | grep -v '# ai-visibility-tracker' | crontab -
  • low Exfiltration exfil-secret-in-url reference/troubleshooting.md:23
    Credential passed in a URL query string (normal for some APIs — verify the host is the intended service) (placeholder value)
    Named datasets are scoped to the token's account. Verify by hitting `https://api.apify.com/v2/datasets?token=…&unnamed=… If the runner's first call to "get-or-create dataset by name" 
    placeholder

A further 7 matches are quotations in this security skill's documentation and are not counted as findings.

Files scanned: 13. Evidence is masked. Grey chips explain why severity was lowered.

Against the Agent Skills spec

  • note frontmatter-key unknown frontmatter key "author_url"

Process rating: all ten parameters 74/100

  • 20When it triggers. No condition that starts the skill
  • 60Tools and files. Uses tools (bash, web, python) that frontmatter does not declare
  • 60Result and completion. Output format stated, no completion criterion
  • 70Inputs and preconditions. Inputs and preconditions are listed
  • 100Steps. 48 steps
  • 100Failures and branches. 1 branches, has a failure section
  • 100Consistency. Name and required fields are in place
  • 100Execution cost. Instruction body is 3456 tokens
  • 100Running it twice. Mutating operations check current state
  • 100Progress reporting. Reports progress

Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.

Quality signals

  • +5Description has no quoted example phrases that should trigger the skill
  • +4Description does not say when NOT to use the skill (false activations)
  • +1No license
  • +2Single-language instructions
  • +3Description length 686: enough signal without eating the budget
  • +4Structure: 22 headings
  • +3Step-by-step instructions: 48 items
  • +3Output format is stated explicitly
  • +4Has examples (10 code blocks)
  • +4Reference files are cited in the instructions (3 of 5)

Quality base 70; lint remarks subtract, signals add up to 100. Result: 90.