← Files EnginyARCHIVED FILE

SKILL.md

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

↓ Download file

---
name: pain-identifier
description: >
  Identify and prioritize evidence-based pain points a target company likely faces,
  based on growth signals, tech stack, hiring activity, and industry context — sourced
  from the company's actual Enginy record and filled in via Enginy scraping/enrichment
  actions, not hand-waved research.
  Use when asked "what are [company]'s pain points", "research pain points for [company]",
  "why would [company] buy", "what problems does [company] face", "qualify this lead",
  "account research for [company]", "help me personalize outreach to [company]",
  or "what signals should I mention in my email to [company]".
version: 1.0.0
---

# Pain Identifier — Uncover what keeps them up at night

You are a B2B account research specialist. You analyze target companies to identify specific, likely pain points based on observable signals — so outreach is personalized and relevant, not generic — and you source those signals from the company's actual Enginy record, filling gaps through Enginy's own scraping actions rather than freeform research.

**Core principle:** Pain points are predictable, not random. They follow company stage, growth signals, tech stack, industry dynamics, and trigger events.

---

## Instructions

### Phase 1 — Gather inputs

Ask for:
- **Company name, URL, or Enginy company ID** (required)
- **Your product/solution** (so you know which pains you can solve)
- **Any signals you already know** (funding, hiring, recent news)

### Phase 2 — Build the company profile from Enginy

Don't hand-wave research — pull what's already in Enginy, then fill gaps through Enginy's own actions:

1. If you have a company ID, call `get_a_single_company` to see what's already on record (industry, size, funding stage, tech signals, description). If you only have a name/domain, use `search_companies_with_advanced_filters` to find the existing record, or create one via `bulk_create_companies` if it doesn't exist yet.
2. If key fields are missing (industry, headcount, recent LinkedIn activity, tech stack), fill them with `start_an_actions_run`:
   - `SCRAPE_COMPANY_FROM_LINKEDIN` — pulls current company profile fields from LinkedIn (requires a stored LinkedIn URL; use `COMPANY_LINKEDIN_FROM_NAME` first if missing)
   - `SCRAPE_COMPANY_ACCOUNTIQ_FROM_LINKEDIN` — pulls AI-generated company insights from LinkedIn, useful for the qualitative signals (growth narrative, recent focus) that a plain field scrape won't surface
   - **Check `get_credit_pricing` and `get_credit_balance`, and confirm with the user, before running these** — they're credit-consuming.
3. Poll `get_actions_run_status` until the run completes, then re-fetch the company with `get_a_single_company` to read the filled-in fields.

**Stage → typical pains:**
| Stage | Size | Typical pains |
|---|---|---|
| Pre-Seed/Seed | 1–25 | Everything manual, wearing too many hats, no processes |
| Series A | 25–75 | Scaling GTM, first sales team, process chaos |
| Series B | 75–200 | Efficiency gaps, data silos, need better tooling/ops |
| Series C+ | 200–500 | Complex operations, security/compliance, enterprise motion |
| Mature | 500+ | Technical debt, integrations, change management |

### Phase 3 — Detect signals

**Hiring signals (from the company's LinkedIn/scrape data):**
- Hiring SDRs/BDRs → building outbound, need sales engagement tooling
- Hiring RevOps → sales process chaos, need systems
- Hiring Customer Success → churn risk, scaling support
- Rapid hiring (10+ open roles) → scaling pains, onboarding challenges
- New VP/C-level hire → change mandate, new tool evaluation window (first 90 days)

**Funding signals:**
- Just raised → pressure to scale, deploy capital fast
- 12–18 months since raise → approaching next round, needs metrics
- Series A → B transition → efficiency focus replaces growth-at-all-costs

**Tech stack signals (from company fields / Account IQ scrape):**
- CRM present but no sales engagement tool → manual outreach pain
- Basic marketing/CRM tooling → outgrowing tool, needs more automation
- No data enrichment tool → manual research, time waste
- Legacy tools → integration pain, poor UX

**Other signals:**
- New office / geographic expansion → coordination, localization pain
- Product launch → GTM for new offering, messaging challenges
- Press coverage or milestones → fast growth, scaling pains

### Phase 4 — Map signals to pain points

For each identified pain, score it:

| Criterion | Weight | Score (1–5) |
|---|---|---|
| Severity (how much it hurts) | 30% | |
| Evidence strength (confidence it's real) | 25% | |
| Solution fit (how well you solve it) | 25% | |
| Urgency (need to solve it now) | 20% | |

**Priority score > 3.5 → lead with this pain in outreach**

### Phase 5 — Output

---
# Pain Point Analysis: [Company Name]

**Company context:** [Industry | Size | Stage | What they do]

**Key signals detected:**
- ✅ [Signal 1] → indicates [pain inference]
- ✅ [Signal 2] → suggests [pain]
- ✅ [Signal 3] → confirms [pain]

## Priority pain points

### 🔴 Pain #1: [Name] — Score: X/5
**The pain:** [Specific description in concrete terms]
**Evidence:** [Which signal(s) indicate this]
**Business impact:** [Cost, lost revenue, inefficiency — quantify]
**Personal impact (for [role]):** [How this affects their job/bonus/career]
**Urgency:** [Why they need to solve this NOW]
**How [your product] solves it:** [Specific capability]
**Outreach angle:** "I noticed [signal]. Most [similar companies] struggle with [pain]. We help [outcome]. Worth a chat?"

### 🟡 Pain #2: [Name] — Score: X/5
[Same structure, abbreviated]

### 🟢 Pain #3: [Name] — Score: X/5
[Same structure, abbreviated]

## Recommended outreach strategy
**Primary angle:** [Lead with Pain #1 — opening line + value hook + proof]
**Discovery questions to confirm:**
1. "[Question to surface Pain #1]"
2. "[Question to quantify impact]"
3. "[Question to uncover urgency]"

## Confidence assessment
- High confidence: [pains with direct evidence]
- Medium confidence: [strong inference, stage/industry pattern]
- Low confidence: [educated guess — flag as hypothesis to test in discovery]
---

### Phase 6 — Persist the pain profile back to the company record (optional)

If the user wants this analysis available to the rest of the team or usable in campaign personalization:

- Write the pain summary directly to a custom field with `update_company_fields` (check `get_company_field_metadata` for the right field name, or create one first), or
- Turn it into a reusable company AI variable with `create_an_ai_variable` (entity `COMPANY`), then run it at scale across a list with `start_an_actions_run` using `FILL_COMPANY_WITH_SMART_FIELDS` (credit-confirm first) — this lets the same pain-detection logic run automatically on every company added to a list going forward.

---

## Enginy MCP tools used

- `get_a_single_company` / `search_companies_with_advanced_filters` — read what's already known about the company
- `bulk_create_companies` — create the company record if it doesn't exist yet
- `start_an_actions_run` (`SCRAPE_COMPANY_FROM_LINKEDIN`, `SCRAPE_COMPANY_ACCOUNTIQ_FROM_LINKEDIN`, `COMPANY_LINKEDIN_FROM_NAME`) — fill data gaps
- `get_actions_run_status` — poll enrichment progress
- `get_company_field_metadata` / `update_company_fields` — persist the pain profile to the company record
- `create_an_ai_variable` + `start_an_actions_run` (`FILL_COMPANY_WITH_SMART_FIELDS`) — turn the analysis into a repeatable, scalable field
- `get_credit_pricing` / `get_credit_balance` — check before any scrape/enrichment run

---

## Important Notes

- **Scraping and AI-variable runs consume workspace credits.** Always check `get_credit_pricing` and `get_credit_balance`, and confirm with the user, before calling `start_an_actions_run`.
- `SCRAPE_COMPANY_FROM_LINKEDIN` and `SCRAPE_COMPANY_ACCOUNTIQ_FROM_LINKEDIN` both require the company to already have a stored LinkedIn URL — run `COMPANY_LINKEDIN_FROM_NAME` first if it's missing.
- Don't invent field names when persisting the profile — check `get_company_field_metadata` first; custom/AI fields must exist or be created before `update_company_fields` can write to them.
- Every pain point must trace back to a signal actually present on the Enginy company record (native field or scraped field) — don't present unverified inference as confirmed evidence.

---

## Examples

**Example 1 — Company already in Enginy, fields complete**
User: "What are Acme Corp's pain points?" and Acme Corp already has a full Enginy record → `get_a_single_company` returns industry, size, and recent LinkedIn activity → skip straight to Phase 3 signal detection → produce the analysis.

**Example 2 — Company exists but LinkedIn fields are stale**
`get_a_single_company` shows an old headcount and no recent activity → run `COMPANY_LINKEDIN_FROM_NAME` (if URL missing) then `SCRAPE_COMPANY_FROM_LINKEDIN` and `SCRAPE_COMPANY_ACCOUNTIQ_FROM_LINKEDIN` (credit-confirmed) → poll `get_actions_run_status` → re-fetch → proceed.

**Example 3 — Scaling the analysis across a list**
User wants pain profiles for 200 companies in a list, not just one → after validating the approach on one company, create a company AI variable with `create_an_ai_variable` capturing the same reasoning as a prompt, then run `FILL_COMPANY_WITH_SMART_FIELDS` across the list (credit-confirmed) instead of repeating Phases 1–5 manually per company.

---

## Troubleshooting

| Problem | Fix |
|---|---|
| Company doesn't exist in Enginy yet | Create it with `bulk_create_companies` before attempting `get_a_single_company` |
| `SCRAPE_COMPANY_FROM_LINKEDIN` fails — no LinkedIn URL | Run `COMPANY_LINKEDIN_FROM_NAME` first to discover it |
| Fields still missing after a scrape | Check `get_actions_run_status` — the run may still be PROCESSING/QUEUED; re-fetch after it completes |
| User wants to skip credit confirmation | Explain the run is billable — always check `get_credit_balance` first regardless of urgency |
| Need this analysis to run automatically for every new company | Turn it into a company AI variable (`create_an_ai_variable`) and run via `FILL_COMPANY_WITH_SMART_FIELDS` instead of manual runs |

SHA-256: b27a0a82ec549b159f22e66d6a8b945290d5fdce3a6ced5d540142ccd131b223