Clay logo, go to homepage

Search Marketplace

Browse all Skills

Specificity Rewrite

Writes one anchored, company-specific sentence for each row of a cold-email list and leaves it blank when no honest anchor exists.

About this Skill

When to use it

Use this Skill when you need the one line in an outbound email that actually sounds written for this company instead of five thousand others, anchored to something they really sell. Avoid using it for writing whole emails, finding company signals like funding or hiring.

What it delivers

You get a row-by-row table of ready-to-send specificity clauses plus QA columns, and a run summary that reports fill rate and blank reasons so you can judge the batch as a whole. The sender's capability list limits every promise the model makes, and a blank row counts as a correct answer, not a failure.

SKILL.md preview

Sign in to install and view the complete SKILL.md

Illustrative preview. Sign in for the actual file.

How someone would prompt this

Write a specificity line for each company in my prospect list using our capability list of inventory tracking and landed-cost calculation, and blank any row that doesn't fit.

Inputs & outputs

What someone provides before the Skill runs, and the reviewable artifacts it returns.

Inputs

  • 01Company data
    • Provide a table, CSV, or audience with domain and company_name
    • add one honest paragraph describing what each company sells
    • include extra revenue-stream columns if you have them
  • 02Sender capability list
    • List exactly what your company does, including a required 'we do NOT do' line
    • lock this once per client rather than changing it per row
  • 03Email frame text
    • Confirm or customize the sentence the clause slots into
    • defaults to 'I think we can help you {{line}}.'
    • changing it means re-grading the whole batch
  • 04Blank row routing
    • Choose what happens to rows that come back blank
    • default routes them to a campaign that doesn't need the line
  • 05Model and fetch settings
    • Pick the model that writes the clause, favoring a mini-class model to avoid excess cost
    • decide whether to allow a rendered-page fallback and set its row cap

Outputs

  • 01Clause table by rowYou get a table with the sendable clause for each company row plus QA-only anchor, capability, and reading-level columns to review before sending.
  • 02Run summaryYou get a report of the fill rate, blank reasons, and any overly abstract anchors so you can judge the batch and decide whether the list is right for this campaign.

Representative output

The clause, row by row

companyspecificity_anchorspecificity_linegrade_linerendered
Northstar Pool Supplypool floatknow the landed cost of every pool float before you price it4.9I think we can help you know the landed cost of every pool float before you price it.
Vantage Coffee Roasterssingle-origin bagsee which single-origin bags actually make money after freight5.4…see which single-origin bags actually make money after freight.
Meridian Hardwaresupplier lead timetrack supplier lead times without chasing three inboxes3.8…track supplier lead times without chasing three inboxes.
Harborline Textiles—blank — description was one line of boilerplate, no honest anchor
Pinegrove Studio—blank — homepage returned 1 byte, no description in their data

The run summary

10 rows
   8 filled     <- 8/10, and 8/10 again on a re-run of the same domains
   2 blank      1 no description anywhere, 1 no honest anchor

  blank rate 20%  (expected band is 10-20% on ecommerce/SMB)

reading level, generated tails: 2.5 to 5.9   0 needed a simplify rewrite
  note: the RENDERED sentences score 7.0-9.8 because the frame alone is 5.7.
        gated the tail, as designed. not one row blanked on the gate.

anchors that were business abstractions: 0
lines reusing the capability list's own wording: 0

blank rows routed to: <the campaign the installer named>
copy should reference: the pre-rendered single field

How the Skill runs

Follow the steps in order. Each row includes the full instruction.

01
Confirm workspace and table

Checks that your Clay workspace and table are reachable, names the table it will update, and stops with an error if the check fails.

Step
02
Lock sender capability list

Collects what the sender actually offers, including a required 'we do NOT do' line, then the run stops and waits for you to confirm the list before writing any clauses.

Action
03
Gather company descriptions

Uses each company's existing description first, then falls back to a homepage fetch or a capped rendered-page fetch only if needed, leaving thin-data rows blank instead of guessing.

Step
04
Write and check the clause

Generates one clause anchored to something the company actually sells, checks it against wording and reading-level rules, and blanks rows with no honest anchor.

Action
05
Review a sample batch

The run stops and shows you 10 rendered sentences together so you can judge the batch as a whole, since results vary row to row even on repeat runs.

Step
06
Route blank rows

Sends rows with no clause to a separate campaign or excludes them, and uses one pre-rendered field instead of spintax so blanks render as nothing.

Action
07
Deliver run summary

Reports the fill rate, blank reasons, and any rows where the anchor came out too abstract, and names the field your copy should reference.

Step

Connections required

No connections listed.

Install Clay and run it

Sign in once, install the Skill, then run the prompt.

  1. 1Install ClayUse the connector or official plugin in your coding-agent environment.
  2. 2Sign up or log inAuthorize Clay access and return when the connection is ready.
  3. 3Install the SkillRun the one-line install command from the Add this Skill card.
  4. 4Run the SkillPaste the example prompt and review the result.

Version history

Version 2From submitted SKILL.mdCurrent

Related Skills

Related searches