# Canonical NotFair workflow Human Guide

## What This Is For
Audit, diagnose, plan, and safely operate connected LinkedIn Ads accounts through the NotFair MCP, with an export-based fallback. It gives the agent a clearer input/output frame for social content: what context to ask for, what decisions to make, and what usable artifact to return.

Use this as a human-readable version of the Canonical NotFair workflow agent skill. It is meant for marketers, operators, founders, and other non-coders who want the workflow without reading agent-specific implementation instructions.

## When To Use This
- Use this when you need a repeatable process for canonical NotFair workflow.
- Use this when the task needs judgment, examples, constraints, or a clear output format rather than a one-off prompt.
- Use this when you want to hand an AI assistant enough context to produce a usable marketing artifact.

## When Not To Use This
- Do not use this when you only need a quick factual answer.
- Do not use this when the work depends on private data you cannot share with the assistant.
- Do not use this as a replacement for legal, compliance, financial, or medical review.

## What You Need Before Starting
- The goal or business outcome you want.
- The audience, customer segment, or market context.
- Any source material the assistant should respect, such as notes, briefs, examples, URLs, or brand guidance.
- Constraints such as tone, length, channel, deadline, region, or approval requirements.
- A clear definition of what a good final answer should look like.

## Step-By-Step Workflow
1. State the job clearly: "Use the Canonical NotFair workflow guide to help me with..."
2. Add context: audience, goal, offer, channel, source material, and constraints.
3. Ask the assistant to identify missing inputs before producing the final output.
4. Have the assistant follow the skill-specific guidance below.
5. Review the result against the final checklist and ask for revisions where needed.

## Skill-Specific Guidance
- If the connector is missing or unauthorized, request re-authorization or a current export and keep the result plan/review-only.
- Define the sales-qualified conversion, CRM feedback loop, account currency, attribution basis, target CPA or pipeline outcome, and complete date window before diagnosing performance.
- Hierarchy is account → campaign group → campaign → creative.
- Money is returned as a major-unit object such as `{ amount: "50", currencyCode: "USD" }`, not micros or cents.
- Targeting is a whole tree on the campaign. Preserve existing criteria unless the user explicitly approves replacement.
- Campaign type and cost type are immutable after creation.
- Lead-form responses contain personal data. Retrieve only when necessary, minimize exposure in the response, and never copy raw lead PII into unrelated artifacts.
- Prefer pause/activate over hard deletion; conversion rules and matched audiences may not be deletable through the API.
- Create campaign groups, campaigns, and creatives in draft, then review targeting, budget, conversion association, and creative before activation.
- Use a stable client request ID only to retry the same uncertain create.
- Resolve targeting names to LinkedIn URNs before setting the full targeting tree.
- Hashing and event-shape enforcement belong to the connector. Do not expose raw customer identifiers in the final report.

## Decision Points And Nuance
The original skill emphasizes: Supporting file: paid-ads/paid-ads-linkedin/SKILL.md, Establish access and qualified-demand context, Read and diagnose, Execute approved changes safely.

Use these questions to steer the work:
- What is the intended audience or buyer?
- What source material must be preserved?
- What should the assistant optimize for: clarity, persuasion, accuracy, speed, creativity, or conversion?
- What examples represent the desired quality bar?
- What should the assistant avoid?

## Common Mistakes
- Lead-form responses contain personal data. Retrieve only when necessary, minimize exposure in the response, and never copy raw lead PII into unrelated artifacts.
- Hashing and event-shape enforcement belong to the connector. Do not expose raw customer identifiers in the final report.
- Finish with the confirmed action, quality metric, observation window, and rollback trigger. If operating from an export, mark recommendations `ready_for_review`, never `published`.

## Copy-And-Paste Prompt
```text
Use the Canonical NotFair workflow human guide.

My goal:
[Describe the business outcome]

Audience:
[Describe who this is for]

Context and source material:
[Paste notes, examples, links, or existing copy]

Constraints:
[Tone, length, channel, timeline, must-include items, must-avoid items]

Before producing the final output, ask me for any missing information that would materially improve the result.
```

## Final Checklist
- [ ] The output matches the original goal.
- [ ] The audience and context are reflected in the answer.
- [ ] Important constraints and source material were preserved.
- [ ] The assistant made the relevant decisions explicit.
- [ ] The final artifact is ready to use, review, or hand to the next person.

## Source
This guide was generated from the nowork-studio/notfair-plugin skill entry for `paid-ads-linkedin`.

## Source Skill Notes
These notes preserve the nuance from the original skill. Use them as supporting reference when the workflow above feels too generic.

# Canonical NotFair workflow

Read [`../../paid-ads/paid-ads-linkedin/SKILL.md`](../../paid-ads/paid-ads-linkedin/SKILL.md) completely, then follow it as the active workflow. Resolve every relative reference from that file against `../../paid-ads/paid-ads-linkedin/`.

---

## Supporting file: paid-ads/paid-ads-linkedin/SKILL.md

# LinkedIn Ads

Read `../shared/operating-contract.md` and `../shared/measurement-framework.md` before acting. Prefer the `linkedin_ads_` tools on the universal NotFair MCP; use a supplied export only when no verified connector is available.

## Establish access and qualified-demand context

1. Resolve `~~linkedin-ads` to the universal connector's `linkedin_ads_` tool surface or a verified compatible connector. Call `listConnectedPlatforms` when using NotFair, then confirm the selected account with a harmless account/setup read. Do not infer LinkedIn access from another platform's tools.
2. If the connector is missing or unauthorized, request re-authorization or a current export and keep the result plan/review-only.
3. Define the sales-qualified conversion, CRM feedback loop, account currency, attribution basis, target CPA or pipeline outcome, and complete date window before diagnosing performance.

Keep lead quantity separate from lead quality. Build targeting hypotheses from job function, seniority, company, industry, or account lists only when the business rationale and audience constraints are defensible.

## Read and diagnose

Use `runScript` for correlated read-only work across campaign groups, campaigns, creatives, and analytics. Prefer a single broad read. Use specialized point tools for individual objects, conversion rules, lead forms, targeting lookup, or lead-form responses.

Interpret the platform correctly:

- Hierarchy is account → campaign group → campaign → creative.
- Money is returned as a major-unit object such as `{ amount: "50", currencyCode: "USD" }`, not micros or cents.
- Targeting is a whole tree on the campaign. Preserve existing criteria unless the user explicitly approves replacement.
- Campaign type and cost type are immutable after creation.
- Lead-form responses contain personal data. Retrieve only when necessary, minimize exposure in the response, and never copy raw lead PII into unrelated artifacts.

For reviews, report spend, impressions, link CTR, leads, qualified leads, CPA, and downstream pipeline or revenue by a complete equivalent period. Name the likely driver only when the data supports it.

## Execute approved changes safely

Use dedicated write tools, never the read-only script surface. Show the exact object, current and proposed state, currency exposure, expected effect, and rollback first. Use dry-run previews for spend-affecting creates, budgets, bids, and targeting when available.

- Prefer pause/activate over hard deletion; conversion rules and matched audiences may not be deletable through the API.
- Create campaign groups, campaigns, and creatives in draft, then review targeting, budget, conversion association, and creative before activation.
- Use a stable client request ID only to retry the same uncertain create.
- Resolve targeting names to LinkedIn URNs before setting the full targeting tree.
- Hashing and event-shape enforcement belong to the connector. Do not expose raw customer identifiers in the final report.
- Verify the mutation through returned before/after evidence or a fresh read and report any partial failure.

Finish with the confirmed action, quality metric, observation window, and rollback trigger. If operating from an export, mark recommendations `ready_for_review`, never `published`.
