Search the text of recent job posts for the words your buyers use when they have the problem you solve. A company hiring someone to "plan and lead the full ERP implementation" has told you what it is working on, the ad carries a date, and you get a sentence to open your email with.
On TheirStack, a search for job posts that say who will lead an ERP implementation finds 217 still-open job posts from 165 companies with 50 to 2,000 employees, posted in the last 30 days, as of 2 Nov 2026. The rest of this post shows that search, two more like it, and where the method breaks.
Why industry and headcount lists can't tell you who needs it now
A list filtered by industry and headcount shows who could buy and says nothing about this month. Intent data built on web browsing and content consumption shows that someone read about a topic. A job post is the company's own dated text, naming the task and the team that will do it, and you can open it and check it before you write to them.
Apollo and ZoomInfo give you the contact, a job post gives you the reason to call
Keep them. As of Nov 2026, Apollo advertises "verified emails and phone numbers" and ZoomInfo "verified data on 500M+ contacts and 100M+ companies", and you still need that once you know who to call. Both homepages also list intent data, so check what your plan already includes.
The job post adds the account and the reason to call: a sentence the company wrote itself, which you can read first and quote in your opening line. In a TheirStack search you select the companies and click Find people, and Apollo opens in a new tab with those companies filled in. That menu also covers ContactOut, Instantly and LinkedIn. It has no ZoomInfo option, so ZoomInfo users can export a CSV instead.
Three buyer phrases turned into searches
All three use filters from job search: Job description searches the full text with keywords or regex, and Buying intent topic matches topics we detect in the post. All counts are as of 2 Nov 2026, for posts from the last 30 days, still open, from direct employers. Each opened post links to its original source, so you can check every match.
You sell ERP implementation services: "lead the ERP implementation"
A hiring manager writes down who will own the project, so search for the ownership verbs next to the project.
Job description (regex): (?i)\b(lead|leading|own|owning|drive|driving|manage|managing|support|supporting)\b.{0,30}\bERP (implementation|migration|rollout|selection)\b
Job title excludes: consultant
Company description excludes (any of): consulting, consultancy, implementation partner
Employees: 50 to 2,000
Date posted: last 30 days
Job Closed: only open jobs
Company type: direct employerResult: 217 job posts from 165 companies. Open this search.
The three posts I read were all direct matches: one company is "starting a company-wide ERP implementation", one wants a finance lead to "drive enterprise ERP implementation/upgrades", and a US manufacturer is hiring a VP to "drive the group-wide ERP implementation". That last post already names the ERP and a Q3 2027 launch, so a software vendor is late there, while a firm selling integration or training may still have a way in.
You sell SOC 2 readiness: "a SOC 2 Type I report within six months"
The Buying intent topic filter set to SOC 2, at companies up to 200 employees, gives 1,963 job posts from 1,313 companies. That includes every company that merely has the certification. To find the ones still on their way to it, add the wording of a first audit and leave out companies that sell security.
Buying intent topic: SOC 2
Job description (regex, any of): (?i)\b(achieve|achieving|obtain|obtaining|pursue|pursuing|prepare for|preparing for|working towards?|path to)\b.{0,40}\bSOC ?2\b ; (?i)\bfirst\b.{0,20}\bSOC ?2\b
Company description excludes (any of): compliance, cybersecurity
Employees: up to 200
Date posted: last 30 days
Job Closed: only open jobs
Company type: direct employerResult: 20 job posts from 17 companies. Open this search. It is a short list, and the posts show why it is worth having: one asks for "a SOC 2 Type I report within six months", another for "the path to and maintenance of SOC2".
You sell expense or accounts payable software: "collect and attach receipts"
The work your product automates is written into the ad of the person hired to do it, so pair the task with the role.
Job title (any of): bookkeeper, accounts payable, accounting manager, accountant
Job description (regex, any of): (?i)\b(manual|manually)\b.{0,50}\b(invoices?|expense reports?)\b ; (?i)\b(collect|collecting|chase|chasing)\b.{0,30}\b(invoices?|receipts)\b
Company description excludes (any of): accounting firm, bookkeeping services, tax services
Employees: up to 500
Date posted: last 30 days
Job Closed: only open jobs
Company type: direct employerResult: 75 job posts from 68 companies. Open this search. One bookkeeper post reads "Collect and attach receipts and invoices to every expense".
This search took a correction. My first version also matched "manual" near "receipts", and it brought in a treasury accountant whose "inbound receipts" were incoming cash, plus an accounting firm hiring for a client. The version above drops the first and filters the second. I then read the ten newest matches on 4 Nov. Eight describe someone in the company collecting or manually handling invoices or receipts, though two of those are one ad listed twice. The other two don't fit: a bookkeeper at a financial planning firm who works on clients' books, and a junior accountant whose match was about issuing invoices and collecting debt. So expect some noise, and read a few posts yourself.
Run it from the API or your AI assistant
This request counts the ERP search through the Job Search API. With limit: 1 and include_total_results: true it costs 1 API credit whatever the total, and nothing if no job matches.
curl -X POST 'https://api.theirstack.com/v1/jobs/search' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"posted_at_max_age_days": 30,
"is_closed": false,
"company_type": "direct_employer",
"min_employee_count": 50,
"max_employee_count": 2000,
"job_description_pattern_or": ["(?i)\\b(lead|leading|own|owning|drive|driving|manage|managing|support|supporting)\\b.{0,30}\\bERP (implementation|migration|rollout|selection)\\b"],
"job_title_pattern_not": ["(?i)\\bconsultant\\b"],
"company_description_pattern_not": ["consulting", "consultancy", "implementation partner"],
"include_total_results": true,
"limit": 1
}'The SOC 2 search uses job_keyword_slug_or: ["soc-2"] as the API form of the topic filter:
curl -X POST 'https://api.theirstack.com/v1/jobs/search' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"posted_at_max_age_days": 30,
"is_closed": false,
"company_type": "direct_employer",
"max_employee_count": 200,
"job_keyword_slug_or": ["soc-2"],
"job_description_pattern_or": ["(?i)\\b(achieve|achieving|obtain|obtaining|pursue|pursuing|prepare for|preparing for|working towards?|path to)\\b.{0,40}\\bSOC ?2\\b", "(?i)\\bfirst\\b.{0,20}\\bSOC ?2\\b"],
"company_description_pattern_not": ["compliance", "cybersecurity"],
"include_total_results": true,
"limit": 1
}'And the accounts payable search:
curl -X POST 'https://api.theirstack.com/v1/jobs/search' \
-H 'Authorization: Bearer <YOUR_API_KEY>' \
-H 'Content-Type: application/json' \
-d '{
"posted_at_max_age_days": 30,
"is_closed": false,
"company_type": "direct_employer",
"max_employee_count": 500,
"job_title_or": ["bookkeeper", "accounts payable", "accounting manager", "accountant"],
"job_description_pattern_or": ["(?i)\\b(manual|manually)\\b.{0,50}\\b(invoices?|expense reports?)\\b", "(?i)\\b(collect|collecting|chase|chasing)\\b.{0,30}\\b(invoices?|receipts)\\b"],
"company_description_pattern_not": ["accounting firm", "bookkeeping services", "tax services"],
"include_total_results": true,
"limit": 1
}'In an AI assistant connected to the TheirStack MCP server (https://api.theirstack.com/mcp), the search_jobs tool takes the same filters at the same credit cost, and the keyword research skill works out the phrases from your product's website and tests them against real posts.
What these searches cost in credits
In the app, results first appear with company names blurred, and revealing or exporting a company costs 1 company credit and gives you that company for 90 days. Revealing all 165 companies in the ERP search would cost 165 company credits; the SOC 2 list would cost 17. Over the API the same ERP results would cost 217 API credits, at 1 per job. The free plan includes 50 company credits and 200 API credits per month, which is enough to test one phrase on your own market. If you only need a list for one campaign, company credits also come in one-time packs with no subscription, from 1,000 credits for $109, and unused paid credits stay in your account for 12 months after purchase.
Where searching job posts falls short
A phrase can match the wrong part of the ad. I tried a pattern for replacing or migrating off spreadsheets and Excel and got 192 job posts from 130 companies, at up to 1,000 employees, as of 2 Nov 2026. Of the first three results, two were one company's About section describing the spreadsheets its own product replaces, and the third was a company saying its teams had already replaced theirs with bespoke tooling. None was a buyer, so that search is not in the list above.
Apart from the ten accounts payable posts above, the posts I checked are a spot check of a few per search, so the precision of these counts is unmeasured. The same role can also appear more than once, which is why the company count is the better number to plan with. Company data has errors too: one match in the SOC 2 search showed 11 employees alongside 1,846 job posts in our data, so a size filter can let the wrong company through.
A job post also says nothing about budget or how far along a decision is, and a company that isn't hiring for the problem won't show up at all. The patterns above are in English, and other markets need their own wording. Excluding words from company descriptions can remove real buyers as well as the vendors you meant to drop.
Start from the sentence your best customer would have written
Write down the sentence your best customer would have put in a job ad before they bought from you, paste two or three short phrases from it into the Job description filter ("contains any of") on a new job search, and read ten posts before you trust the count. The guide to finding companies with the problems your software solves covers the method, and the MCP page covers running it from your assistant.

Hermes
OpenClaw
Clay
n8n
Make
Zapier
Databar
Salesforce
HubSpot
Attio
Pipedrive
Apollo
Instantly
ContactOut