CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

openai-ads-operator

Operate OpenAI / ChatGPT Ads via Synter MCP — pull OpenAI Ads performance and hand off to ChatGPT Ads launch/measurement skills with human approve ≠ activate. Use when managing ChatGPT Ads or OpenAI Ads reporting through Synter.

Quality

74%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/openai-ads-operator/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A compact, well-structured operator overview whose main weaknesses are thin executability and a promotional footer that spends tokens on marketing rather than instruction. The workflow is sequenced with a human gate on publishing, but write operations like budget updates and pauses have no validation guidance, and the loop leans on delegation to other skills without operational detail.

Suggestions

Add one or two example MCP tool invocations (with key parameters and expected output shape) so the guidance moves from tool names to executable instructions.

Remove or drastically trim the 'About this skill' footer and the hosted-path promo in Prerequisites — the UTM links and pricing-tier caveats do not help Claude operate the skill.

Add a validation checkpoint for write operations (e.g., confirm budget changes or pauses against live performance data before and after applying them), since the current gate only covers ad uploads/enabling.

DimensionReasoningScore

Conciseness

The operational sections (prerequisites, tool table, loop) are lean, but the promotional 'About this skill' footer with UTM-tagged links, the repeated 'never a Free cloud tier' caveat, and the hosted-path promo line in Prerequisites are unnecessary padding for an operating instruction. Not 2 because only one section is padded; not 4 because that promo block is a meaningful share of the body.

3 / 5

Actionability

Concrete MCP tool names are provided (`pull_openai_ads_performance`, `update_campaign_budget`, `pause_campaign`), but there are no example invocations, parameters, or expected outputs, and the loop steps mostly delegate ('use chatgpt-ads-launch for the 9-step workbook') without key details. Not 4 because nothing is executable or copy-paste ready.

3 / 5

Workflow Clarity

The four-step operator loop is sequenced and includes one human-review gate for uploads ('never upload or enable without human review of claims, URLs, and images'), but the budget/pause write operations lack validation checkpoints and steps 1–2 are high-level delegations ('the 9-step workbook' is never enumerated). Not 4 because checkpoints are missing for the risky write path and steps are underspecified.

3 / 5

Progressive Disclosure

The skill is under 50 lines, requires no bundle files (none exist), and is cleanly organized into Prerequisites, Core MCP tools, Operator loop, and Related skills sections with clearly signaled cross-skill references — matching the simple-skill exception for a top score.

5 / 5

Total

14

/

20

Passed

Description

78%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with an explicit 'Use when' clause, third-person voice, and domain-specific trigger terms. Its main gaps are limited action coverage relative to what the skill actually does and some overlap risk with sibling ChatGPT Ads skills; the phrase 'approve ≠ activate' is cryptic jargon for a description-level summary.

Suggestions

Add the remaining concrete actions (list/observe campaigns, update budgets, pause campaigns) so the description's capability list matches the body's tool table.

Replace or expand the cryptic 'with human approve ≠ activate' with plain language such as 'requiring human approval before any write or publish action'.

Narrow the trigger to reduce overlap with sibling skills, e.g. 'Use when pulling or reporting ChatGPT/OpenAI Ads performance data through Synter MCP' rather than the broad 'managing ChatGPT Ads'.

DimensionReasoningScore

Specificity

Names the domain ('OpenAI / ChatGPT Ads via Synter MCP') and two concrete actions ('pull OpenAI Ads performance', 'hand off to ChatGPT Ads launch/measurement skills'), but coverage is not comprehensive — the body reveals additional actions (list campaigns, budget updates, pause) absent from the description.

3 / 5

Completeness

Explicitly answers both: what ('Operate OpenAI / ChatGPT Ads via Synter MCP — pull OpenAI Ads performance and hand off to ChatGPT Ads launch/measurement skills') and when ('Use when managing ChatGPT Ads or OpenAI Ads reporting through Synter') with concrete trigger phrases.

5 / 5

Trigger Term Quality

Includes natural terms users would say — 'ChatGPT Ads', 'OpenAI Ads', 'reporting', 'performance', 'launch', 'measurement' — but misses common variations like 'ad campaigns', 'ad spend', or 'metrics'.

4 / 5

Distinctiveness Conflict Risk

The Synter reporting niche is mostly distinct, but the broad trigger 'managing ChatGPT Ads' risks overlap with closely related sibling skills (chatgpt-ads-launch, ad-policy-compliance) that the body itself names.

4 / 5

Total

16

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

Synter-Media-AI/free-skills

Path

skills/openai-ads-operator/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.