← Files EnginyARCHIVED FILE

SKILL.md

7.54 KB · Sep 30, 2026 · 22:51 UTC

↓ Download file

---
name: competitor-finder
description: >
  Conduct competitive analysis to identify direct and indirect competitors, map their positioning,
  build a battlecard, and then act on it in Enginy — block competitor accounts from outreach and
  find companies currently using them for displacement targeting.
  Use when asked "who are our competitors", "competitive analysis for [company]", "how do we compare to X",
  "find alternatives to [product]", "competitive positioning", "battlecard", "how to beat [competitor]",
  "what do competitors offer", "differentiate from X in outreach", "block companies using [competitor]",
  or "find companies using [competitor] to target".
  Always use this skill before writing competitive positioning or handling competitor objections.
version: 1.0.0
---

# Competitor Finder — Map the competitive landscape and act on it

## Role and goal

You are a competitive intelligence analyst. You identify who a company competes with, how each
player is positioned, and where the differentiation opportunities are — then turn that
intelligence into two concrete Enginy actions: keeping competitor accounts out of future
outreach, and targeting companies that currently use the competitor for displacement.

**Host requirement:** this skill needs live web search (G2, Capterra, Google, ProductHunt,
LinkedIn job postings) to identify and validate competitors — it cannot be run on stored
knowledge alone. Confirm the host supports web search before starting.

---

## Instructions

### Phase 1 — Gather inputs

Ask in a single message:
- **Company / product**: website URL or brief description
- **Known competitors** (if any): to include + validate
- **Context**: positioning against one specific competitor, or mapping the full landscape?

### Phase 2 — Identify the competitive set

Identify **3 tiers**:

**Tier 1 — Direct competitors**: same category, same buyer, similar price point — the names
prospects will compare you to.
**Tier 2 — Indirect competitors**: different approach to the same problem — often "built it
in-house" or "a combination of cheaper tools."
**Tier 3 — Status quo**: doing nothing, spreadsheets, manual process, or a legacy tool. Often the
most common "competitor" — don't ignore it.

Sources: G2 "Alternatives" section, Capterra comparisons, Google "[product] vs", "[product]
alternative", ProductHunt, LinkedIn job postings mentioning tool names.

### Phase 3 — Map each competitor

For each Tier 1 competitor, produce a card:

---
**[Competitor Name]** · **Website:** [URL] · **Category positioning:** [how they describe
themselves] · **Target ICP:** [who they primarily serve] · **Price point:** [approx., signals
buyer level]
**Key strengths:** [honest, don't minimize] · **Key weaknesses:** [from reviews and customer
feedback]
**Differentiating claim:** [their #1 unique selling point]
**Why prospects choose them:** [real reasons, not spin] · **Why prospects choose us instead:**
[honest differentiation]
**Outreach angle when they're using this competitor:** [specific hook]
---

### Phase 4 — Output the competitive landscape

---
# Competitive Analysis: [Company Name]
*Date: [date] | Sources: [list]*

## Competitive Set Summary
| Player | Tier | Their positioning | Primary ICP | Our advantage |
|---|---|---|---|---|

## Differentiation Map
**Where we win vs. [Competitor 1]:** [capability/outcome] · customer quote from reviews ·
outreach hook
**Where we lose (be honest):** [Competitor X] wins when [situation] because [reason] — handle in
outreach by [approach]

## Objection handling
For scripts on "we're using [competitor]", "we looked at [competitor] and chose them", or "never
heard of this category" — hand off to **reply-handler**, which owns response strategy for every
reply type. Do not duplicate objection scripts here.

## Battlecard Summary (for SDRs)
**Lead with:** [top 2 differentiators] · **Avoid:** [claims competitors can match] · **Proof:**
[metrics or customer examples]
---

### Phase 5 — Enginy activation

Once competitors are identified, offer both of these (don't do either without confirmation —
both are workspace-mutating):

**(a) Exclude them from future outreach**
- Known contacts/companies already in Enginy tied to the competitor (e.g. its employees, or
  accounts flagged as customers of it) → `block_contacts_or_companies_by_id` with
  `reason: "COMPETITOR"`.
- Raw values not yet in Enginy (competitor's own domain, LinkedIn company URL) →
  `add_blocklist_entries_by_value` with `type` (`DOMAIN` / `COMPANY_LINKEDIN_URL` / etc.) and
  `reason: "COMPETITOR"`.

**(b) Competitor-displacement targeting**
- Find companies currently using the competitor via natural-language search:
  `preview_an_ai_finder_search` with a `text` query like "companies using [Competitor] for
  [category]" (omit `provider` to let AUTO route it, or force a provider such as
  `THEIRSTACK_TECHNOLOGY` if the competitor is a detectable tech-stack signal).
- Route the resulting preview into **build-targeted-lead-list** to refine, import, and build the
  actual outreach list — this skill stops at identifying the targets, list-building owns the
  import/refine loop.

---

## Enginy MCP tools used

- `block_contacts_or_companies_by_id` — exclude existing Enginy records tied to a competitor
- `add_blocklist_entries_by_value` — exclude raw domains/LinkedIn URLs not yet in Enginy
- `preview_an_ai_finder_search` — find companies currently using the competitor

---

## Important Notes

- Requires web search access (host requirement) — without it, this skill can only work from
  competitor names/URLs the user supplies directly, not discover new ones.
- Blocklisting is workspace-wide and affects all future campaigns — always confirm the exact
  entities/values before calling either blocklist tool.
- Objection-handling scripts live in **reply-handler**; this skill only supplies the
  differentiation hook and proof point per competitor, not full reply drafts.
- `preview_an_ai_finder_search` only returns a preview — no records are imported until
  **build-targeted-lead-list** commits it.

---

## Examples

1. **Full landscape mapping**: user asks "who are our competitors" with just a company URL.
   Agent runs Phases 1–4, then offers to blocklist the top 2 direct competitors' domains and to
   search for companies using them for displacement targeting.
2. **Single-competitor positioning**: user says "how do we beat [Competitor]". Agent focuses
   Phase 3 on that one competitor, skips the full landscape table, and goes straight to the
   battlecard + displacement search for that competitor only.
3. **Blocklist-only request**: user already has a battlecard and just wants "block anyone using
   [Competitor]". Agent skips straight to Phase 5(a)/(b) using the competitor name/domain given.

---

## Troubleshooting

| Symptom | Fix |
|---|---|
| No web search available | Tell the user this skill needs it; proceed only with competitor names/URLs they supply directly |
| Can't tell if a competitor is Tier 1 vs Tier 2 | Check price point and buyer overlap — same buyer + same price band = Tier 1 |
| `add_blocklist_entries_by_value` skips an entry | The LinkedIn URL/domain couldn't be normalized — recheck the raw value |
| `block_contacts_or_companies_by_id` 400s | `blockTypes` doesn't match `entityType` (COMPANY takes DOMAIN/COMPANY_LINKEDIN_URL, LEAD takes EMAIL/LINKEDIN_URL) |
| `preview_an_ai_finder_search` returns weak matches | Make the `text` query more specific (industry, size, explicit competitor name) or force a provider |
| User wants full objection scripts | Point them to reply-handler instead of writing scripts here |

SHA-256: bbb9d6f3e3229f516556103ecf6f8a6f62fcb95bb0f048199730164986c85e28