Skip to content
Marketing
Skill

/deepline-ads-audiences

Use this skill when building, enriching, auditing, or uploading B2B paid ads audiences to Google Customer Match, Meta/Facebook Custom Audiences, or LinkedIn Matched Audiences. Triggers on phrases like '/deepline-ads-audience', '/deepline-ads-audiences', 'upload this audience',

From plugin
gtm-eng-skills
5916 skills
Install
$ npx -y skills add getaero-io/gtm-eng-skills --skill deepline-ads-audiences --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/deepline-ads-audiences

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use this skill when building, enriching, auditing, or uploading B2B paid ads audiences to Google Customer Match, Meta/Facebook Custom Audiences, or LinkedIn Matched Audiences. Triggers on phrases like '/deepline-ads-audience', '/deepline-ads-audiences', 'upload this audience',

SKILL.md

deepline-ads-audiences.SKILL.md
name: deepline-ads-audiences
description: "Use this skill when building, enriching, auditing, or uploading B2B paid ads audiences to Google Customer Match, Meta/Facebook Custom Audiences, or LinkedIn Matched Audiences. Triggers on phrases like '/deepline-ads-audience', '/deepline-ads-audiences', 'upload this audience', 'create custom audiences', 'personal email hashes', 'increase Facebook match rate', 'Google ads audience', 'Meta audience', 'FB audience', or any workflow that turns CRM/customer/contact data into paid ads upload lists. Skip for outbound prospecting sequences, cold email, or pure campaign copywriting."

Deepline Ads Audiences

Quick Start

npm install -g deepline
# Fallback for secure sandboxes: mkdir -p "$HOME/.local" && npm config set prefix "$HOME/.local" && export PATH="$HOME/.local/bin:$PATH" && npm install -g deepline --registry https://code.deepline.com/api/v2/npm/
deepline auth register --wait auto
deepline auth wait --timeout 120 # completes Cowork/browser approval; no-op if already connected
deepline auth status
deepline -h

CLI resolution

Run `deepline` when it is available. If the shell reports that command is missing, use `<workspace-root>/.deepline/runtime/bin/deepline` (or the npm-created `.cmd` shim on Windows). If neither exists, follow `https://code.deepline.com/INSTALL.md` to set up Deepline.

Build high-quality ABM paid ads audiences from first-party customer or prospect lists. This skill is for paid ads audience upload and evaluation, not outbound.

Names in this skill are starting hints. Run `deepline tools search audience --json` and `deepline tools describe <tool_id> --json` before executing because tool names and payload shapes can change. Tool search accepts an intent query or, for structured filtering, `--categories` and/or `--search_terms`; a filter-only search needs at least one of those flags. Use commas for multiple filter values, and put provider names in the query rather than using a `--prefix` flag.

Before You Start

Use the full recipe when the user asks to enrich and upload audiences to Facebook/Meta and Google:

→ Read `recipes/enrich-and-upload-facebook-google.md`.

Use the max-coverage recipe when the user asks for "max coverage", "maximum match rate", "keep increasing coverage", "get to 75% coverage", or asks to exhaust LinkedIn/personal-email/hash options:

→ Read `recipes/max-coverage-audience.md`.

This skill is not for cold outbound, sequencing, or copywriting. Personal emails here are used to improve paid ads matching, not to contact people directly.

Decision Matrix

| User says | Do this | Read | | ------------------------------------------------------------------------ | ------------------------------------------------------------------ | --------------------------------------------------------- | | "max coverage", "highest match rate", "keep increasing coverage" | Run the explicit max-coverage ladder with budget gates. | `recipes/max-coverage-audience.md` | | `/deepline-ads-audience`, "enrich and upload to FB/Google" | Run the full paid ads audience recipe. | `recipes/enrich-and-upload-facebook-google.md` | | "sample ABM segment", "do the example workflow" | Follow the reusable high-priority ABM segment recipe. | `recipes/sample-abm-segment-example.md` | | "use ContactOut hashes", "hashed identifiers", "LinkedIn URLs to hashes" | Plan a bulk pass beside the ladder, not a waterfall step. | `shared/contactout-hash-pool.md` | | "what is a hash", "why is my match rate low", first-time user | Explain the mechanic before quoting a plan. | `shared/audience-basics.md` | | encoded/internal-identifier LinkedIn URLs (`/in/ACwAA…`), "API rejected my LinkedIn URLs", "convert LinkedIn URLs" | Normalize `person_linkedin_url` before upload: drop encoded, recover vanity. | Step 4 → "Normalize LinkedIn URLs" (this file) | | "Make sure hashes are not double hashed" | Run the no-double-hash audit play before upload. | `plays/audit-no-double-hash.play.ts` | | "enrich this list", "buy personal emails/hashes", "run the ladder" | Run the waterfall. Each layer only sees rows still missing a hash. | `plays/enrich-audience-waterfall.play.ts` | | "Compare enriched versus unenriched" | Build both hash-only datasets and report lift. | `plays/enrich-audience-waterfall.play.ts` | | "include phone numbers", "add phones" | Hash existing phones digits-only with country code. | `shared/upload-failure-modes.md` | | "what was the match rate", "did it match" | Read `contactIdInfo.matchRatePercentage`, not the range enum. | `shared/upload-failure-modes.md` | | "put it in a sheet", "customer will upload" | Publish the validated file to Sheets; verify by row count. | `shared/upload-failure-modes.md` | | "upload keeps failing", "422", "audience is locked" | Meta locks on write. Send the audience in one call. | `shared/upload-failure-modes.md` | | "Upload to Google" | Validate hash-only rows, create Google audience, sync, readback. | `plays/upload-google-hash-only-audience.play.ts` | | "Upload to Facebook and Google", "upload

Read more
Ships withgtm-eng-skills

AI agent skills that turn Claude Code into a GTM engineering workstation — lead enrichment, signal discovery, TAM building, and outbound automation. Powered by Deepline.

Get the whole plugin
Stats
59
Stars
12
Forks
Active
Maintenance
TypeScript
Language
MIT
License
3h ago
Last commit
6mo ago
Created

Repo: getaero-io/gtm-eng-skills

Other skills on gtm-eng-skills.