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.
| Skill | Typical inputs | Output |
|---|---|---|
| Company research | Domain, website text | Short summary, what they sell, to whom |
| Data cleaner | Company name, job title | Normalised name and title |
| ICP scorer | Research summary, headcount, industry | Score plus one-line reason |
| Technographic qualifier | Tech stack list | Qualified or not, with the tool that decided it |
| Job posting analyser | Open role titles and text | Hiring signal and what it implies |
| News and signal synthesiser | Recent news, funding, launches | Top signal and why it matters now |
| LinkedIn profile analyser | Profile summary, recent posts | Role focus and likely priorities |
| Competitor analyser | Research summary, competitor list | Which competitor they resemble or use |
| Personalisation writer | Signal, role focus, your offer | One opening line |
| Email sequence writer | Opening line, angle, offer | Short multi-step sequence |
| Objection handler | Reply text, account context | Objection type and suggested response |
| Account brief generator | All of the above | One-page brief for a rep |
Build and ship a skill
- 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.
- Write the skill in the five-part structure. Here is an example ICP scorer:
If you need help turning a fuzzy ICP into criteria like these, the ICP qualification rule builder does exactly that.--- 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 - 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.
- 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.
- 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.
- 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.