Clay logo, go to homepage

Search Marketplace

Browse all Skills
SignalsSkill

Job Posting Language Signal

Scans a company's job postings for language the sender cares about and writes a short, freshness-checked clause naming the role they're hiring for.

About this Skill

When to use it

Use this Skill when you want a copy-ready line saying a company is hiring for a role that matches your offer, built by scanning real job posting language instead of guessing from titles alone. It gives you a fresh, name-matched clause plus the evidence link so you can use the signal with confidence. Avoid using it for headcount or growth-rate signals, market-wide hiring lists, or as proof a role is still open.

What it delivers

You get a row-by-row table with a copy-ready hiring clause per company, plus a run summary showing how many rows matched, passed the name check, and lost their clause to the freshness gate. The gated clause blanks automatically once a posting is older than 30 days, so you never quote a role that may already be closed.

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

Look through my target account list and tell me which companies are hiring for cold calling or outbound prospecting roles, then write a short line I can use in outreach copy.

Inputs & outputs

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

Inputs

  • 01Company list
    • You supply a table, CSV, or audience with one row per company
    • include a lowercase company_domain column
    • add company_name so the name-match check can run
  • 02Keyword and title filters
    • The phrases that signal interest in a job description, written out with plural and gerund forms
    • optional job title filters to narrow further
  • 03Timing windows
    • Set how far back to look for a posting (defaults to 60 days)
    • set how fresh a posting must be before its clause appears in copy (defaults to 30 days)
  • 04Hiring-only segment choiceChoose whether to drop rows with no matching posting from the list, or keep them with a blank clause
  • 05Provider setup
    • The connected jobs data account your workspace uses
    • the model configured to write the clause (should be a non-reasoning model)

Outputs

  • 01Row-by-row clause tableShows each company's domain, the posting found, its age, whether the name matched, and the ready-to-use clause, so you can review or filter before sending.
  • 02Run summaryReports how many rows had a posting, passed the name-match check, generated a clause, and lost their clause to the freshness check, so you can judge overall coverage.

Representative output

The clause, row by row

domainposting foundagename matchjob_posting_line_safewhat happened
northstar-example.comAccount Executive, Private Equity | Req 44176dpassyou're hiring an account executive for private equityrequisition code stripped in the rewrite
vantageloop.exampleSales Development Representative (Remote - EMEA)18dpassyou're hiring sales development reps in EMEAbracketed suffix rewritten, not quoted
meridian-example.comPartner Development Representative | Advisory27dpassyou're hiring a partner development representativepipe and second clause dropped
harborline.exampleOutbound Account Executive49dpassgate suppressed it — and this role was verified genuinely open
pinegrove.exampleEnterprise AE53dpassgate suppressed it. Correctly — the role is gone from their board
brightfold.exampleSenior SDR11dFAILprofile resolved to a different company. Name-match gate stopped it
atlas-example.com———no posting matching the keyword set. Correct abstain
cedarworks.example———no posting at all in the window. Correct abstain

The run summary

8 companies
   7 usable (87.5%)   5 generated a clause, 3 abstained -- all 3 abstains correct
   1 failure          quoted a 53-day-old posting that was no longer live
                      ^ this is the failure the freshness gate now prevents

keyword filter, server-side vs local scan on these same 8 companies:
   filtered server-side  5 of 8 matched
   scanned locally       1 of 8 matched      <- do not scan locally

freshness gate:  2 of the 5 generating rows suppressed
   53d  correctly killed -- role gone from the company board
   49d  killed anyway -- VERIFIED still open. the cost of an age proxy

name-match gate: stopped 1 row using another company's posting

copy binds to: job_posting_line_safe   (never job_posting_line)

How the Skill runs

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

01
Check connections and confirm setup

Confirms the workspace, jobs data connection, and target table are all reachable before doing any work, and stops immediately if any check fails.

Step
02
Build out the keyword list

Expands your keyword set to include plural and gerund forms, since job description filters match exact phrases, not partial words.

Step
03
Filter postings on the server

Pulls postings filtered by your keywords directly from the jobs source, checks the filter actually worked, and stops so you can review the filtered counts before continuing.

Step
04
Match company names, write the clause

Confirms the posting belongs to the right company by name, then rewrites the job title into a short, natural clause using your chosen model.

Action
05
Apply the freshness gate

Blanks the copy-ready clause when the posting is older than 30 days, and stops to show you a sample of 10 rows for review before moving on.

Step
06
Handle rows with no clause

Keeps rows without a fresh posting in your list by default, only dropping them if you specifically asked for a hiring-only segment.

Step
07
Deliver results and counts

Reports how many rows had a posting, passed the name match, generated a clause, and lost their clause to the freshness check, with separate totals for each.

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