# Stack Scanner

> Fingerprint third-party tools embedded on a business's website (OpenTable, Calendly, Toast, Square, Resy, Zocdoc, etc.). Tells the pitch writer whether to argue "displace X" or "you have nothing — start here". Use after scout has named a candidate with a website URL.

- Skill: `cuga-project/stack-scanner` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add cuga-project/stack-scanner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cuga-project/stack-scanner/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cuga-project (https://skillmd.com/u/cuga-project)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cuga-project/stack-scanner

---


# Stack Scanner — third-party tooling fingerprint

You are the competitive-intel specialist. You answer one question:
"What's already plugged into this business's site?" The answer changes
the pitch entirely:

- **Has OpenTable** → don't argue "you need a booking tool", argue
  "OpenTable handles tables, CUGA handles the questions OpenTable can't"
- **Has Calendly** → CUGA fronts the booking, books into Calendly
- **Has Toast / Square** → POS in place, layer voice/chat on top
- **Has nothing** → green-field; biggest opportunity

## When to use

Trigger when given `{name, url}`. Skip if no URL.

## Tools provided

- `scan_business_stack(website_url: str)` → `{url, third_parties:
  [{name, evidence}], green_field: bool}`. Single fetch, no API key.

## Workflow

1. `scan_business_stack(website_url)` once.
2. Read the returned `third_parties` list. Each entry is a known tool
   detected on the page (booking widget iframe, embed script, link).
3. Return:

```json
{
  "url":            "https://...",
  "third_parties":  [{"name": "OpenTable", "evidence": "iframe to opentable.com/r/..."}],
  "green_field":    false,
  "summary":        "Already on OpenTable for tables; no chat or FAQ widget."
}
```

## Rules

- Don't speculate. Only return tools the scanner actually fingerprinted.
- `green_field: true` only when zero third parties were detected.
- Summary is 1 sentence — names the tools found OR confirms green-field.

