Guides / Clay and Claude

Write Claude skill files that work inside Clay

Generic prompts give generic outputs. A skill file is a structured, tested prompt built for one Clay workflow, with fixed inputs and a fixed output.

Jan Rasmussen Jan Rasmussen · Co-founder · Strategy & clients30 min per skill · checked
Originally shared on LinkedIn by Jan

A Claude skill file for Clay is a structured prompt written for one job, with named inputs that map to your table columns and an output format Clay can use downstream. You draft and test it in Claude Code, then paste its instructions into a Clay AI column.

Most Clay tables that disappoint have the same problem: a single long prompt asked to research, judge and write in one pass, with vague instructions and free-form output. The result reads like AI and cannot be filtered. Splitting the work into small skills, each with a clear contract, fixes both.

What you need

  • A Clay workspace with a table of real accounts or contacts
  • Claude Code, for drafting and testing skills against sample rows
  • A written ICP and a few examples of messaging you like
  • A shared folder or repo to store the skill files

What a skill file contains

Every skill file has the same five parts. Keeping the structure consistent is what makes a library of them maintainable.

  • Purpose: one sentence on the job and when to use it
  • Inputs: the exact fields it expects, named to match your columns
  • Method: numbered steps the model follows
  • Rules: what to avoid, what to do when data is missing
  • Output: the exact format, ideally a short label, a number or a small set of named fields

In Claude Code the same file can live at .claude/skills/<name>/SKILL.md with a name and description at the top, so you can run it on sample data before it ever touches Clay.

Twelve skills worth building

These cover most of what a Clay-based outbound table needs. Build them in the order your table runs.

SkillTypical inputsOutput
Company researchDomain, website textShort summary, what they sell, to whom
Data cleanerCompany name, job titleNormalised name and title
ICP scorerResearch summary, headcount, industryScore plus one-line reason
Technographic qualifierTech stack listQualified or not, with the tool that decided it
Job posting analyserOpen role titles and textHiring signal and what it implies
News and signal synthesiserRecent news, funding, launchesTop signal and why it matters now
LinkedIn profile analyserProfile summary, recent postsRole focus and likely priorities
Competitor analyserResearch summary, competitor listWhich competitor they resemble or use
Personalisation writerSignal, role focus, your offerOne opening line
Email sequence writerOpening line, angle, offerShort multi-step sequence
Objection handlerReply text, account contextObjection type and suggested response
Account brief generatorAll of the aboveOne-page brief for a rep

Build and ship a skill

  1. Pick one workflow and name the columns. Decide which existing columns the skill reads. Use the column names in the skill itself so mapping in Clay is obvious. If a column does not exist yet, create it first, for example through waterfall enrichment.
  2. Write the skill in the five-part structure. Here is an example ICP scorer:
    ---
    name: icp-scorer
    description: Score a company against our ICP from Clay research columns.
    ---
    Purpose: decide if this company is worth outbound now.
    
    Inputs:
    - company_summary
    - employee_count
    - industry
    
    Method:
    1. Check each criterion in the ICP list below.
    2. Count how many are clearly met, using only the inputs.
    3. If a criterion cannot be judged, count it as not met.
    
    ICP criteria:
    - B2B company selling to [buyer]
    - 50 to 500 employees
    - [industry list]
    
    Rules:
    - Do not guess from the company name.
    - Do not explain beyond one sentence.
    
    Output (exactly this format):
    score: 0-3
    reason: one sentence citing the input that decided it
    If you need help turning a fuzzy ICP into criteria like these, the ICP qualification rule builder does exactly that.
  3. Test it in Claude Code on real rows. Export ten rows, including a few edge cases: a company with no website text, a competitor, a clear fit. Ask Claude Code to run the skill on each and show the results side by side. Fix the rules until the outputs are right and consistent.
  4. Move it into Clay. Paste the skill's instructions into a Clay AI column prompt and map the inputs to your columns. Run it on a small batch first, not the whole table.
  5. Filter on the output. Because the output format is fixed, you can filter on it. Only rows that pass the scorer should reach the personalisation and sequence skills, which saves credits and keeps weak accounts out of campaigns.
  6. Store and version the file. Keep the source skill in a shared folder or repo. When you improve a prompt in Clay, copy the change back so the file stays the source of truth.

Write personalisation skills with a banned-phrase list and one or two real examples of lines you would send. Most AI-sounding copy comes from missing examples, not from the model.

Common mistakes

  • One prompt doing research, scoring and writing at once
  • Free-text output that cannot be filtered or mapped
  • No instruction for missing data, so the model invents it
  • Skills edited only inside Clay, with no copy anyone else can find

The skill files also work outside Clay. The same library can sit inside a Claude Code workspace, which we cover in setting up Claude Code for GTM.

Want a Clay table and skill library built around your ICP? Book a GTM Engine Review.

Frequently asked

Is a skill file different from a prompt?

It is a prompt with a contract: fixed inputs, fixed steps, fixed output and rules for edge cases. That structure is what makes it reusable and testable.

Which model should the Clay column use?

Use a capable model for research and writing, and a cheaper one for cleaning and simple classification. Test both on the same rows before you decide.

How many skills should one table run?

As many as the workflow needs, but gate the expensive ones behind a score or filter so they only run on rows that qualify.