<< All versions

Skill v1.0.0

currentAutomated scan100/100
frontal-so/gtm-os/clay-mastery
──Details
PublishedSeptember 27, 2026 at 12:19 PM
Content Hashsha256:2ef06f41c4edbb37...
Git SHA26e80adb414e
──Files
Files (1 file, 8.1 KB)
SKILL.md8.1 KBactive
SKILL.md · 228 lines · 8.1 KB

version: "1.0.0"


Clay Mastery — GTME Operations Playbook

Standard Frontal Table Layout

Every Clay table follows this 9-phase column structure, left to right:

#PhaseExample Columns
1InputCompany Name, Domain, LinkedIn URL
2Company EnrichmentIndustry, Employee Count, Revenue, Funding, Tech Stack
3Signal DetectionHiring Count, News, LinkedIn Ads, Growth Rate
4Contact DiscoveryFull Name, Title, Email, LinkedIn URL
5Email WaterfallProspeo Email, LeadMagic Email, Wiza Email, Hunter Email, FullEnrich Email
6Email VerificationVerified Email, Verification Status, Bounce Risk
7AI QualificationAI - Company Tier, AI - Contact Tier, AI - ICP Score
8AI PersonalizationAI - Custom Signal, AI - Opening Line, AI - Value Prop
9OutputFinal Email, Sequence Tag, Campaign Assignment

Naming rules:

  • Prefix enrichment sources: LI - Employee Count, Apollo - Revenue
  • Prefix AI columns: AI - Company Tier, AI - Opening Line
  • Title Case for all column names
  • Input left, enrichments in execution order, output right

Email Waterfall — Frontal's Exact Sequence

StepProviderCoverageClay CreditsCondition
1Prospeo (own API)~68%0Always run
2LeadMagic (own API)+15%0Only if Prospeo empty
3Wiza+4-5%Clay creditsOnly if above empty
4Hunter+2-3%Clay creditsOnly if above empty
5FullEnrich+5-7%Clay creditsNuclear option
6Debounce (own API)Verification0Run on ALL found emails

Setting up conditional runs:

  1. Click enrichment column settings
  2. Under "Run conditions" select "Only run when"
  3. Set: [Previous Email Column] is empty

Final email formula:

javascript
{{Prospeo - Work Email}} || {{LeadMagic - Work Email}} || {{Wiza - Work Email}} || {{Hunter - Work Email}} || {{FullEnrich - Work Email}} || ""

Credit Optimization Matrix

Zero-Credit Operations (Use Own API Keys)

Data PointToolNotes
NewsSerper (own API)Free with your key
Gen AI / ClaygentGPT-4o-mini (own OpenAI API)Default model for ALL Claygent
Email findingProspeo, LeadMagic, Datagma (own APIs)Steps 1-2 of waterfall
Email verificationDebounce (own API)Ping Alex for refill
Domain lookupSerper, ClearbitFree tier
Technology detectionClaygent + BuiltWith URLGPT-4o-mini reads the page
LinkedIn Ads detectionSerper (own API)Search for ads
Cell manipulationClay AI Formula WriterBuilt-in, always free

1-Credit Operations

Data PointTool
Company enrichmentLinkedIn
Contact enrichmentLinkedIn
Headcount dataLinkedIn
Growth/hiring dataLinkedIn
Fundraising dataIntellizence
Site traffic (e-comm)Store Leads
Open jobsLinkedIn or PredictLeads
Website competitorsGoogle Search + GPT-4o-mini

2-3 Credit Operations

Data PointTool
Website traffic/SEOSemrush (2 credits)
ReviewsCapterra or G2 via Zenrows (3 credits)

Key principle: Set up own API keys in Clay Settings > Integrations. This turns most 1-credit operations into 0-credit operations.


Copy-Paste Formulas

First Name Cleaning

javascript
{{First Name}}?.replace(/[^a-zA-Z- ]/g, "").trim().split(' ').map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(' ').replace(/\s.*/,'')

Company Name Cleaning (remove suffixes)

javascript
{{Company Name}}?.replace(/(Technologies|Solutions|Services|Limited|LLC|KGga|Software|Telecommunications|Business|Sales|Ltd|Co|Corp|Company|Marketing|Partners|Advisors|Recruitment|Executive Search|&)$|(Solutions|Services|& |,|\/|\\|\\\\|:).*|(USA|US|Australia|UK|China|Canada|Germany|India|Worldwide)$|[. ]$|self employed/gi, match => match.toLowerCase() === 'self employed' ? 'your company' : '')

Domain from URL

javascript
{{Website}}?.replace(/^https?:\/\/(www\.)?/, '').replace(/\/.*/, '').toLowerCase()

Domain from Email

javascript
{{Email}}?.split('@')[1]?.toLowerCase()

LinkedIn URL Cleanup

javascript
{{LinkedIn URL}}?.replace(/\?.*/, '').replace(/\/+$/, '').toLowerCase()

Title Seniority Check (returns true for senior titles)

javascript
/^(C[A-Z]O|Chief|VP|Vice President|Director|Head of|SVP|EVP|President|Founder|Co-Founder|Partner|Owner|Managing Director)/i.test({{Title}} || '')

Employee Count Bucket

javascript
(n => n <= 10 ? '1-10' : n <= 50 ? '11-50' : n <= 200 ? '51-200' : n <= 500 ? '201-500' : n <= 1000 ? '501-1000' : '1000+')({{Employee Count}} || 0)

Combine First + Last Name

javascript
[{{First Name}}, {{Last Name}}].filter(Boolean).join(' ').trim()

Claygent Prompts That Work

Company Qualification

You are qualifying companies for a B2B outbound campaign. Assign a tier:
Tier 1: B2B software companies with 40+ headcount that sell to other businesses
Tier 2: B2B companies that sell digitally but are not software
Tier 3: Companies in a relevant industry but not ideal fit
Company: {{Company Name}}
Industry: {{Industry}}
Employee Count: {{Employee Count}}
Description: {{Company Description}}
Return ONLY: "Tier 1", "Tier 2", or "Tier 3" followed by a one-sentence reason.

Contact Qualification

Based on the job title, assign a seniority tier:
Tier 1: C-level, VP, Founder, Head of, Director (budget authority)
Tier 2: Manager, Senior (internal champions)
Tier 3: Associate, Coordinator, Specialist (end users)
Title: {{Title}}
Return ONLY: "Tier 1", "Tier 2", or "Tier 3"

Personalized Opening Line

Write a cold email opening line (1 sentence, under 20 words):
Signal: {{Signal/Trigger}}
Company: {{Company Name}}
Person: {{First Name}}, {{Title}}
Rules:
- Reference the signal naturally
- Sound human, not AI
- Don't pitch anything
- Don't start with "I noticed" or "I saw"
- Make it about THEM

Tech Stack Detection (0 credits via own API)

Visit this BuiltWith URL and list key technologies:
{{BuiltWith URL}}
Return comma-separated top 10 relevant technologies (CRM, marketing automation, analytics, web framework only). Ignore tracking pixels and common libraries.

Best Practices

  1. Pre-filter before enrichment — Use filters to avoid spending credits on non-targets
  2. Cheapest tool first — 0-credit APIs before Clay integrations
  3. Test on 50-100 rows first — Verify quality before running full table
  4. Cache everything — Don't re-enrich existing data
  5. GPT-4o-mini default — Only escalate to larger models when mini fails
  6. Duplicate templates — Never edit the original
  7. Column order = execution order — Inputs left, enrichments in sequence, output right

Debugging Checklist

When enrichments fail, check in this order:

  1. Is the input column actually populated?
  2. Is the input format correct? (LinkedIn URLs need full path, domains need no protocol)
  3. Is your API key active? (Clay Settings > Integrations)
  4. Is the run condition correct? ("Only run when" settings)
  5. Has the provider changed their API? (Check Clay changelog)
Common ErrorCauseFix
"No results found"Wrong input formatCheck URL/domain format
Empty enrichmentProvider has no dataMove to next in waterfall
Rate limitToo many requestsReduce batch size
Incorrect AI outputVague promptAdd examples, constrain format
Duplicate rowsMultiple sources returning same personDedup on LinkedIn URL
High credit usageExpensive providers running firstReorder waterfall

_Part of Frontal — free, open GTM skills for your AI agent. Browse the library →_

All versions