Plays · No. 3

The hiring-signal workflow.

A SaaS company posting its first RevOps or GTM ops job is telling you it's about to buy tools. The posting says which ones, what hurts, and who the hire reports to. This play reads it and writes two emails: one to the hiring manager now, one to the new hire six weeks later.

For: B2B software companies selling to SaaS companies with 40 to 500 employeesStack: Clay Workflows and Claygent, a job-postings source, HubSpot free, SmartleadCost: free to test, about $190/month to runBuild time: one day

The play

Every GTM tool with a "signals" tab will show you job postings. Most teams use them as a list filter: companies hiring for X, sorted by headcount, exported to a sequence that says "I noticed you're hiring." That email gets deleted because it reads like recruiting spam, and because it is about the posting instead of the problem.

The posting is not the signal. The posting is the brief. A company's first Revenue Operations hire has a budget, a mandate, and 90 days to show something. The job description tells you what the something is ("own quota and comp"), which systems it has to happen in ("HubSpot, Gong, Apollo"), what is broken today ("commission statements are built by hand and late every month"), and who is going to be the buyer's boss. Nobody writes that much about their own pain anywhere else in public.

So the play has two windows. Before the hire starts, you talk to the hiring manager about what the new person will need on day one. Six weeks after the posting, you talk to whoever got the job, who is now looking for a quick win and has read the same posting you did. Everything in between is plumbing.

Who it's for

  • You sell to SaaS companies, and a specific hire means they have your problem. For a quota and comp tool it's the first RevOps hire. For a content tool it's the first content marketer. Pick the title that means "about to buy."
  • Your buyer is between 40 and 500 employees. Below that the hire is a founder doing it on Sundays. Above that it's a team, and the posting is a backfill.
  • You can write two short emails that are about the reader's first 90 days, not about your product.
  • You're fine sending 5 to 15 emails a day from this, not 200. The signal is narrow on purpose.

The build

1. WatchA job-postings source runs daily for the titles that mean "about to buy"
2. QualifyFit, first hire of its kind, not already a customer, posted in the last 30 days
3. ReadClaygent pulls the stack, the pain line, the first duty, and the reporting line out of the posting
4. WriteTwo first lines from the posting's own words: hiring manager now, new hire later
5. Send and logSmartlead sends, HubSpot records the signal, the company is quiet for 90 days

Stack

WatchClay's job-postings source inside a Workflow (beta, included in a Clay plan; free plan to test, Starter is about $149/month). Free version: n8n polling a job board's search feed for the same titles.
QualifyA rules file (headcount band, industries, countries, titles to include and exclude). The "first hire" test is a Clay people search for the same title at the company, expecting zero. The "already a customer" test is a HubSpot free lookup.
ReadClaygent, with a prompt that returns JSON: tools named, first responsibility listed, the one sentence of pain, who the role reports to. Runs only after qualification, because it costs credits and qualification is free.
WriteA template with four slots filled from that JSON. No generative copy. The mock below shows why.
Send and logSmartlead ($39/month) with the slots as custom fields. HubSpot free gets a contact, a "hiring signal" source property, and the follow-up date.
  1. Pick the title that means "about to buy." Write the include list (Revenue Operations, RevOps, Sales Operations, GTM Operations, Marketing Operations) and the exclude list (Analyst, Senior, Coordinator, Intern). A Senior RevOps Manager posting means a team exists. An Analyst posting means the budget is spent.
  2. Put the fit rules in a file sales can edit. Headcount 40 to 500, the industries you win in, US and Canada, nothing older than 30 days. Keep it as a sheet or a CSV, not as settings buried in a tool.
  3. Set the postings source to run daily. In Clay, that's a Workflow trigger on new postings matching the title list. Clay added a way to send previewed signal results straight into a Workflow trigger on October 19, which is the piece that makes this a loop instead of a weekly export.
  4. Qualify before you spend a credit. Title, headcount, industry, country, age, and the HubSpot check (skip customers and open deals) are all free. Dedupe on company so a reposted job doesn't send twice.
  5. Run the "first hire" test. Search people at the company for the same title family. Zero results is the signal. One or two means a growing team: still a lead, different message, lower priority. Five means it's a backfill, drop it.
  6. Read the posting with Claygent. The prompt asks for four things and nothing else: the tools named, the first responsibility in the list, the one sentence that describes what is broken today, and who the role reports to. If the posting has no pain sentence, the workflow stops. A posting with no pain in it gives you nothing to say.
  7. Write both emails from those four slots. The hiring manager gets one now: "You're hiring your first RevOps Manager and the posting says commission statements are built by hand every month." The new hire gets one 45 days after the posting date: "From the posting, it looks like forecasting and comp administration is job one." Neither mentions your product in the first line.
  8. Send, log, and suppress. Smartlead sends the first; HubSpot stores the follow-up date and the posting URL; a daily n8n or Clay run picks up contacts whose date has arrived, checks that someone with the title now exists at the company, and sends the second. The company is suppressed for 90 days after either send.

The mock

Marlstone is a made-up quota and commission tool for SaaS sales teams. The hire that means "about to buy" is the first RevOps, sales ops, or GTM ops person. Below are 30 fake job postings at 28 fake companies, run through the real rules. The postings, the rules, and the script are in the folder.

A posting, as the workflow reads it

Revenue Operations Lead
Bramblewick · 62 people · B2B SaaS · Toronto · reports to the COO · posted Oct 18
You will stand up forecasting and comp administration for a 9-person sales team, working in HubSpot and Apollo. Today, commission statements are built by hand every month and are late every month. You'll be the first person in this seat.

The rules (from icp.csv)

RuleConditionResult
TitleContains Revenue Operations, RevOps, Sales Ops, GTM Ops, or Marketing Ops; does not contain Analyst, Senior, Coordinator, InternContinue, else drop
Fit40 to 500 employees, listed industries, US or CanadaContinue, else drop
FreshPosted in the last 30 days, company not seen beforeContinue, else drop
CRMNot a customer, no open dealContinue, else drop
FirstZero people with an ops title at the company todayContinue, else drop
QuotableThe posting has a sentence about what is brokenWrite, else drop

What the script writes

Now, to the COO at Bramblewick
You're hiring your first Revenue Operations Lead and the posting says commission statements are built by hand every month and are late every month. The first 90 days of that hire usually go to standing up forecasting and comp administration for a 9-person sales team, in HubSpot and Apollo.
December 2, to whoever gets the job
Congrats on the new role. From the posting, it looks like standing up forecasting and comp administration for a 9-person sales team is job one.

Out of 30 fake postings, 12 qualified. Three were already in the CRM, three were the wrong size, three were stale, three had a title that only looked like the signal (Chief of Staff, Growth Marketing Manager, an SDR), two were Senior or Analyst variants, two were reposts, one was outside the US and Canada, one was a design agency. Twelve out of thirty is the high end; the fake set is stacked. On a real feed expect one in ten.

The files:

  • postings.csv, 30 fake job postings with the four slots already extracted
  • icp.csv, the rules
  • match.py, applies the rules and prints both emails for each qualified posting
python3 match.py 2026-10-27
# 30 postings, 12 qualified
# dropped: 3 already in the CRM, 3 headcount out of band, 3 posting older than 30 days,
#          3 title is not the signal, 2 junior or senior variant, 2 duplicate company,
#          1 country not a fit, 1 industry not a fit

-> Fernhollow  (140 people, B2B SaaS, US)  posted 2026-10-14, reports to VP Sales
   now, to the VP Sales:
   "You're hiring your first Revenue Operations Manager and the posting says our pipeline
    reporting lives in four spreadsheets and nobody trusts the number. ..."
   2026-11-28, to whoever gets the job:
   "Congrats on the new role. From the posting, it looks like owning the lead-to-cash
    process across marketing, sales, and CS is job one."
...

What breaks

It reads like a recruiter. "I saw you're hiring" is the most deleted opening line in B2B. The fix is structural, not clever: the first line quotes the pain the posting describes, and the second line is about the hire's first 90 days. Your product shows up in the third line or not at all.

The grammar of a template. A slot filled from a posting is a verb phrase in whatever form the posting used. "Own the lead-to-cash process" drops into "it looks like own the lead-to-cash process is job one," and now you sound like a bot. The fix is in the read step, not the write step: Claygent is told to return the duty as a gerund ("owning the lead-to-cash process"), the pain line as a complete sentence in the company's own words, and nothing in title case. The mock's CSV is already in that shape. A human still reads every email the first week.

Ghost postings. Agencies repost evergreen roles, and some companies leave a job up for a year. The 30-day cutoff and the per-company dedupe catch most of it. For the rest, the "first hire" test fails after the role is filled, which is the point of running it again before the second email.

Credits. Claygent reads cost money; everything before it is free. Qualify first, read second, and never run the read on the full feed to "see what's there." That order is the whole difference between $30 a month and $300.

The second email fires at nobody. Forty-five days after the posting, the role may not be filled. Before sending, search for a person with that title who started in the last 60 days. None found, push the date 30 days and try again, up to twice. Then give up.

Copy it

Take the three files, change the title list in icp.csv to the hire that means your buyer, and rewrite the two templates around their first 90 days. Then move the rules into a Clay Workflow with a postings trigger and point the output at Smartlead. If you'd rather I look at how your Clay tables are spending credits before you add another workflow, that's the Clay credit audit.

One play like this, every week.

The email gets the build files and the mock before they go on the site. No pitch in it.

Get the weekly play →