playbook-job-posting-language

Generates a copy-ready cold email clause referencing a company's current job postings.

678|243|Updated Mar 10, 2026
One-click install
npx skills add https://github.com/growthenginenowoslawski/coldoutboundskills --skill playbook-job-posting-language
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: playbook-job-posting-language
Source: https://github.com/growthenginenowoslawski/coldoutboundskills/tree/main/skills/playbooks/playbook-job-posting-language
Command: npx skills add https://github.com/growthenginenowoslawski/coldoutboundskills --skill playbook-job-posting-language

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Cold email personalization often relies on generic openers. This Skill turns a company's live job postings into a specific, copy-ready clause (e.g., "you're hiring an account executive") that slots directly into a cold email sentence, while preventing stale or wrong-company references from reaching a send.

Core Features & Use Cases

  • Server-side job filtering: Queries jobs APIs with keyword filters on posting descriptions, since returned fields never include the full description text.
  • Freshness and name-match gates: Blanks any line whose posting is older than 30 days and rejects postings resolved to the wrong company, so copy never cites dead or misattributed roles.
  • Locked line-writer prompt: Rewrites raw job titles into plain spoken words via a fixed prompt, with measured guidance on when keyword filters suffice versus when an AI classifier is justified.
  • Use Case: Given a list of target company domains, produce a job_posting_line_safe value per row that drops into "Saw {{job_posting_line_safe}}." in a cold email sequence, with Clay table and Clay workflow builds included.

Quick Start

Give the skill a list of company domains and names plus a keyword set like "cold calling" and ask it to generate the job posting line for each row.

Frequently Asked Questions about playbook-job-posting-language

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I personalize cold emails using job postings?

Query a jobs API for each company domain with your keyword set in the description filter, then rewrite the matched job title into a short lowercase clause. Bind only the freshness-gated job_posting_line_safe field into copy, never the raw line.

Why does my jobs API keyword filter return no matches?

Jobs APIs return title, date, and URL but never the full description, so scanning returned fields locally misses most matches. Pass keywords to the server-side description filter instead; testing showed 5 of 8 matches server-side versus 1 of 8 locally.

Should I use an AI classifier or keywords to detect hiring signals?

Start with keywords and measure recall first. If the role name is the signal, title filters are effectively complete; add an AI classifier only when description recall measures under 90 percent, and fix keywords if recall is under 60 percent.

Why do AI-generated job lines come back empty in Clay?

Nano-class reasoning models in native Clay AI columns burn the completion budget on hidden reasoning, returning empty content on exactly the rows with postings. Use gpt-4o-mini in Clay, or set reasoning effort low with a 2500-token cap outside Clay.

How do I avoid referencing job postings that are no longer open?

Apply a freshness gate: detect postings within 60 days but blank the copy line when the posting is older than 30 days. A date_posted value is an observation date, not proof the role is still live.