playbook-new-in-role

Generates cold email opening lines about prospects who recently changed job titles.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Cold email campaigns targeting buyers who recently started a new role need a personalized opening line per prospect, but manually researching job-change dates and writing one clause per person does not scale, and naive automation produces factually wrong or awkward copy.

Core Features & Use Cases

  • Source-side tenure filtering: Queries the Prospeo /search-person API with person_time_in_current_role so only people who started their current title within a configurable window (default 90 days, ceiling 9 months) are returned, with measured volume trade-offs per window.
  • Deterministic fact computation: Derives role_change_type (promotion vs new hire), months_in_role, role_start_month, and prior_title in code from the job_history array, so the model never decides facts.
  • Locked prompt line writer: A graded prompt (PASS 9/10) for a small reasoning model that outputs a lowercase, max-90-character clause completing "Saw <line>.", with abstain, cross-year, and truncation guards.
  • Use Case: A campaign targeting new VPs of Operations at US companies with 50-2000 employees pulls the filtered list, gates on current title, and produces new_in_role_line values like "you stepped into the COO seat at Irby earlier this year" for the first sentence of email 1.

Quick Start

Find US-based VPs of Operations at companies with 50 to 2000 employees who started their role in the last 90 days and write a personalized opening line for each one.

Frequently Asked Questions about playbook-new-in-role

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

FAQPage Schema
How do I find people who recently started a new job for cold email?

Query the Prospeo /search-person endpoint with the person_time_in_current_role filter set to a month range like {min: 0, max: 3} for a 90-day window. This filters at the source, so returned rows already carry the role start date and job history.

How do I write personalized opening lines about a prospect's job change?

Compute facts deterministically from the job_history array, then pass them to a small reasoning model with the locked prompt. The model returns a lowercase clause under 90 characters that completes the sentence "Saw <line>." with no trailing period.

Prospeo search-person vs LinkedIn Sales Navigator scraper for job change data?

Prospeo is effectively free with exact month-level tenure filters but uses a database snapshot. The Apify Sales Navigator scraper costs roughly $3.20 per 1,000 profiles, is LinkedIn-live, but only offers a coarse 90-day boolean and requires a mandatory cleanup pass for stale results.

Why does the Prospeo API return HTTP 400 INVALID_FILTERS?

The correct filter key is person_time_in_current_role with an integer month range, not person_time_in_current_position or a string like "0-6". The INVALID_FILTERS error does not distinguish unknown keys from bad values, so read the filter docs instead of probing.

Why does the model return empty lines for every row?

At default reasoning effort the prompt returns finish_reason=length with empty content because reasoning consumes the token budget. Set reasoning_effort to minimal and retry on length finish reasons rather than recording them as abstentions.

What are the limitations of new-in-role prospecting signals?

Tight windows collapse volume sharply: 90 days returned 2 rows versus 1,662 unfiltered on one measured base, so widen the title family first. About 1 in 10 rows may carry a wrong source title that no output verifier can catch without a leadership-page cross-check.