Skip to content
Back to skills

Marketing Orchestrator

ASecurity

Marketing Orchestrator

  • 33 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 5, 2026
developmenttypescriptgoapi

Works with

  • api

Security analysis

A100/100

Scanned September 5, 2026

npx -y skills add dvcrn/openclaw-skills-marketplace --skill marketing-orchestrator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Marketing Orchestrator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Marketing Orchestrator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dvcrn-marketing-orchestrator/badge)](https://www.skillsdirectory.com/skills/dvcrn-marketing-orchestrator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: marketing-orchestrator
description: "Marketing Orchestrator"
---

# Marketing Orchestrator Skill

## Purpose
Orchestrates the marketing audit pipeline by sequentially running the following collector agents:
- Instagram Collector
- Meta Ads Collector
- SEO / Keyword Collector
- Competitor Finder
- Website Audit Collector

Aggregates the individual results and invokes the Report Generator skill to produce the final comprehensive marketing audit report.

## Input Schema
```typescript
interface MarketingInput {
  instagramHandle?: string;
  websiteDomain?: string;
}
```

## Output Schema
```typescript
interface MarketingAuditReport {
  reportMarkdown: string;
  rawData: any;
  error?: string;
}
```

## Implementation Pattern

- Validate input: either `instagramHandle` or `websiteDomain` is required
- Sequentially call each collector skill, passing relevant input
- Collect results in a composite data object
- Call report-generator skill with the aggregated data
- Return the final report markdown and raw data

## Example Usage

```typescript
const input = { instagramHandle: 'gymshark', websiteDomain: 'gymshark.com' };
const report = await marketingOrchestrator(input);
console.log(report.reportMarkdown);
```

## Orchestration Logic (Pseudocode)

```typescript
async function marketingOrchestrator(input: MarketingInput): Promise<MarketingAuditReport> {
  if (!input.instagramHandle && !input.websiteDomain) {
    throw new Error("Either instagramHandle or websiteDomain is required");
  }

  const auditData: any = {
    input,
    collectedAt: new Date().toISOString(),
  };

  if (input.instagramHandle) {
    auditData.instagram = await runSkill('instagram-collector', { handle: input.instagramHandle });
  }

  if (input.websiteDomain) {
    auditData.metaAds = await runSkill('meta-ads-collector', { brandName: input.websiteDomain, domain: input.websiteDomain });
    auditData.keywords = await runSkill('seo-collector', { domain: input.websiteDomain });
    auditData.competitors = await runSkill('competitor-finder', { brandName: input.websiteDomain, domain: input.websiteDomain });
    auditData.websiteAudit = await runSkill('website-audit', { domain: input.websiteDomain });
  }

  const report = await runSkill('report-generator', auditData);

  return {
    reportMarkdown: report.reportMarkdown,
    rawData: auditData,
  };
}
```

## Notes
- Each runSkill call corresponds to invoking another skill as a sub-agent or subprocess.
- The calling framework should handle API keys, env vars for external services.
- Errors in individual collectors should not block the overall orchestration.
- Extend as needed for additional collectors or data sources.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…