Use case Leads and enquiries
Catch the first hire
A company that posts its first ever Marketing Manager has no marketing team. Until that person starts, and for a while after, the work is done by whoever is nearest or by an agency. The same goes for the first salesperson, the first IT hire, the first security engineer, the first finance manager. The posting is public. I built this to spot it without reading every board by hand.
The question this page answers
How do I find companies that are hiring for a function for the first time, so I can sell them the service before the team exists?
How the working version is put together
Point it at the boards
Public job boards as ats and identifier, one per line. Seven board systems are read directly through their public endpoints, from Greenhouse and Lever through Ashby, Personio and Workable to SmartRecruiters and Recruitee, with no key and no browser. A career page URL works too. If another Actor already scraped the postings, paste them in and nothing is fetched.
Sort every posting into a function
A rule table on the title puts each posting into one of thirteen functions, with the department as a fallback. The functions run from marketing and sales through people, finance, IT, security, data, design, product and legal to operations and engineering leadership. Anything that matches no rule is other and is never reported. A Senior Software Engineer is not a signal.
Remember what it has seen
The snapshot lives in a named store on your account, first-hire followed by your watch key, so a scheduled run and an agent calling the tool see the same history. Every employer's functions are kept with the date each was first seen and how many postings have been counted.
Compare, then write one row per employer and function
NEW_CATEGORY is the row you are paying for: the employer was in the last snapshot, had nothing in this function then, and has a posting now. FOUNDING_TITLE fires when the only posting in a function carries a title like first, founding or head of, and the row says it was inferred from the words. BASELINE is every function present on a first run. RECURRING is a function already on file.
Put the sentence next to the row
Each row carries a sample title with its URL and the number of postings open in that function now. It also says when the function was first seen on file. Underneath sit one sentence of reason with the numbers in it and one pitch angle written from the row alone. For a first marketing hire it reads: Acme is hiring its first marketing role, so until that person starts there is no marketing function in-house yet.
What the two cloud runs showed
I ran it twice against the same watch key over four real boards: GetYourGuide on Greenhouse, Qonto on Lever, Channable on Recruitee and Skroutz on Workable. The first run read a hundred and twenty-one postings and wrote twenty-four rows, all BASELINE, because there was nothing to compare against yet. The second run, the same boards a few minutes later, wrote twenty-four RECURRING rows and flagged nothing.
That zero is the result I care about. Before those runs I proved the memory locally in three passes: two functions for a made-up employer, then a third function added, which came back as the only NEW_CATEGORY, then the same three again, which came back with nothing flagged. A watch that flags the same thing every week is a wall, and this one does not.
Those four boards produced no first hires, and they never would
They are scale-ups with eleven to fifty open roles each, so every function is already staffed and the tool correctly says so. The one FOUNDING_TITLE that fired in local testing was a Head of Anti-Financial Crime Compliance at a thousand-person fintech, which is not a first hire, and after the legal rule was moved ahead of the finance rule it stopped firing. The product only earns its keep as a weekly watch on small companies with roughly three to twenty open roles. I am saying that here rather than letting the demo imply otherwise.
What first actually means to it
First is inferred from what the board shows. A company that already has a marketing team and posts one more marketer after months of no marketing postings will look like a new function to me, because I only know what I have seen. The row says when the function was first seen on file, so you can judge. Classification is a rule table, not a model. It covers the common titles and will misfile the odd creative one, so open the sample URL before you write.
What it costs to run
Two cents per employer that produced at least one posting, whatever the number of postings or functions. Boards and career pages cost nothing beyond that. The optional LinkedIn leg runs the LinkedIn Jobs Scraper on your own Apify account and is billed there, about a tenth of a cent per posting. I ran it on one LinkedIn company id and it read thirty postings for Google in under a minute, sorted into data, IT and operations. When it cannot run, the error is written into the output and the rest of the run carries on.
Read this before you spend anything
When I would tell you not to bother
If you want a list today rather than a watch, this is the wrong tool. The first run is a baseline and claims nothing. The signal arrives on the second run and after, when a function shows up that was not there before.
If your targets are large companies with every function staffed, nothing will ever fire, and that is the tool being right.
Teamtailor boards are not supported, because their jobs endpoint needs a key issued per company. Give the career page URL instead.
What lands on your desk
- One row per employer and function with a status: NEW_CATEGORY, FOUNDING_TITLE, BASELINE or RECURRING
- A sample title with its URL, postings open in that function now, and when it was first seen on file
- One sentence of reason with the numbers, and one pitch angle for the agency that fills the gap
- A run summary with the count per status, every signal row first, and any source that failed and why
- A named snapshot store on your account that a scheduled run and an agent share
- If you want the flagged rows landing in a CRM with a first email drafted, that is the work I do
Open the proof
Published case studies of systems that are running. Each links to the thing itself.
Other builds in this cluster
Same pattern, each one aimed at a different part of the business and linking to its own page.
Questions this page answers
- Which job boards does it read?
- Seven board systems through their public endpoints, from Greenhouse and Lever through Ashby, Personio and Workable to SmartRecruiters and Recruitee, plus any career page URL. Teamtailor is not supported because it needs a per-company key.
- What is a NEW_CATEGORY row?
- The employer was in the last snapshot, had no posting in that function then, and has one now. It is the row the tool exists for, and it can only appear from the second run against a watch key.
- Does the first run find anything?
- It does not. The first run is a baseline that records every function present. Run it on a schedule with the same watch key and the flags arrive when something changes.
- How did you prove it does not repeat itself?
- Three local runs: two functions, then a third added, which was the only flag, then the same three again with nothing flagged. Then two cloud runs over four real boards with the same key, and the second wrote zero new categories.
- What does it cost?
- Two cents per employer that produced at least one posting. The optional LinkedIn leg is billed to your own Apify account on top, about a tenth of a cent per posting, and needs a plan that can run public Actors, which every plan except Apify's Creator plan can.
Want this built and handed over working?
One line is enough to start. You get an honest answer on fit, and a number rather than a discovery call.
Start a brief


