Written by Mike Hurley, founder of WarmUp. This runs our own pipeline; it is not a demo build.
Job postings to qualified accounts in the CRM · four runs a morning

Read the board left to right, following the numbers on the column labels: the postings and the five rings, the feed, Stage 1 (is the title a signal?), Stage 2 (is the company one we want?), the verdict. The strip under the legend follows one posting through. The band at the bottom is what a morning returns and why it is built this way. Click the board to open it full size.
Why it helps
A company that posts a job for a GTM engineer or a RevOps lead has already decided it needs one. That is the clearest buying signal I know of, and it is public. The feed turns each posting into a ranked account on the rep's daily list the same morning, with the posting itself as the reason to call. Most of the companies it finds are already on our map with a segment and a tier, so the rep opens the list and sees who to call first and why. The few we have never seen go through the qualify step once, and the answer is kept.
The other half is what it does not spend. The only paid step is a research call on a company nobody has looked at before, and it runs once per company. Every run counts against a day cap and a monthly total. If a run would go over, the routine stops, and the receipt says why.
Why we built it this way
- The rings read the title and nothing else. Five lists of whole phrases, each with a weight. The description is read for four named cases only, so two people running the feed get the same answer, and changing a rule is a one-line edit.
- Exclusions run before the rings. Sales Manager, Head of Sales and Customer Success are never a signal, whatever else the title says. It is the cheapest check, so it goes first.
- Twelve postings for one role are one signal. One event per company, per ring, per day. The signals table is only ever added to, never edited, so a receipt from last month still reads true today.
- A known company is a free read. Only a company we have never seen pays for a qualify run, and its answer goes onto the map so the run never repeats.
- An unknown is never a pass. A conditional title with no marker in the description, or a posting with no date, waits for a person to look at it.
- The broker holds the cap, so the workflow cannot ignore it. A day cap and a monthly total. Over the cap the routine stops. It does not overspend and explain later.
How to build it
- Write the rings down first. One file: five title lists with a weight each (ours are 100, 85, 75, 60 and 40), the exclusion list, and the four description cases with the words that decide them. Every other step reads this file, so a change here is the only change you ever make.
- Pick a posting source you can search by title. We use a career-site job feed on Apify, run through Freckle, one run per ring with a date window. The source returns a fixed batch each run and mixes in old postings, so the date window does the filtering, not the limit you pass.
- Land every posting in a signals table you only add to, keyed on company domain, ring and posting date. Refuse a second event for the same company and ring on the same day.
- Look the domain up on your map before you spend anything. Known: read its segment, tier and status. Unknown: send it to a qualify workflow that reads the company's own site (home, about, product pages) and fills a fixed set of fields, with a quoted sentence as evidence, plus one company enrichment for headcount, HQ and ownership. Write the answer back to the map.
- Score how recent the signal is; fit already lives on the account. The timing score is the ring's weight, fading over 14 days, plus 10 for a funding round in the last 90 days. Fit and tier belong to the account. A signal moves an account up inside its tier and never changes the tier.