Cursor Skill
AI prompt and instructions for using the Signal Labs competitive intelligence API in Cursor.
Setup
- Create an API key at Settings > API Keys
- Store it in the
SIGNALLABS_API_KEYenvironment variable - Install the SDK:
Bash
npm install @signal-labs/sdk
Initialize
JavaScript
import { SignalLabs } from '@signal-labs/sdk';
const sl = new SignalLabs(process.env.SIGNALLABS_API_KEY);
Core Workflow
JavaScript
// 1. Create a company
const company = await sl.companies.create({ domain: 'mycompany.com' });
// 2. Discover competitors
const suggestions = await sl.companies.competitors(company.id).discover();
// 3. Add a competitor
const competitors = await sl.companies.competitors(company.id).add({
name: 'Competitor X',
website: 'competitor.com',
});
// 4. Generate a battlecard (1 credit)
const battlecard = await sl.companies.battlecards(company.id).generate({
competitor_id: competitors[0].id,
enablement_focus: 'gtm_sales',
});
// 5. Get signals
const signals = await sl.companies.signals(company.id).list();
// 6. Get signal summary (last 7 days)
const summary = await sl.companies.signals(company.id).summary(7);
// 7. Ask AI
const answer = await sl.ai.chat({
message: 'What are the main weaknesses?',
company_id: company.id,
});
Critical Instructions for AI Models
Always
- Store API key in an environment variable
- Import from
@signal-labs/sdk - Use
async/await - Follow dependency chain: Company → Competitor → Battlecard
- Handle
SignalLabsError
Never
- Hardcode API keys
- Call
generatewithout a competitor - Use enablement_focus
'landscape'with generate
AI Verification Steps
- Is
SIGNALLABS_API_KEYin an env var? - Is
SignalLabsimported from@signal-labs/sdk? - Are all calls awaited?
- Does company exist before adding competitors?
- Does competitor exist before generating battlecard?
- Is
enablement_focusone of:gtm_sales,product,marketing_growth,leadership?