First-Time Hire Signals: a company's first marketer or IT hire avatar

First-Time Hire Signals: a company's first marketer or IT hire

Pricing

from $20.00 / 1,000 company checkeds

Go to Apify Store
First-Time Hire Signals: a company's first marketer or IT hire

First-Time Hire Signals: a company's first marketer or IT hire

I read a company's live job postings and remember which functions it has hired for before. When a function such as marketing or IT appears for the first time, that is the row: the company has no team for it yet. Each row carries one line of reason and one pitch angle for whoever fills that gap.

Pricing

from $20.00 / 1,000 company checkeds

Rating

0.0

(0)

Developer

Jessy Mariau

Jessy Mariau

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

an hour ago

Last modified

Share

First-Time Hire Signals

A company that posts its first ever Marketing Manager has no marketing team. Until that person starts, and for a good while after, the work is done by whoever is nearest or by an agency. The same is true of the first salesperson, the first IT hire, the first security engineer, the first finance manager. The posting is public. The gap it describes is the sales conversation.

I built this to spot those postings without reading every board by hand. Point it at the companies you care about, run it weekly, and it tells you which company is hiring for a function for the first time.

What it does

You give it public job boards, career page URLs, or LinkedIn company ids. Seven board systems are read directly:

  • Greenhouse
  • Lever
  • Ashby
  • Personio
  • Workable
  • SmartRecruiters
  • Recruitee

It reads every open posting and sorts each one into a function from its title, with the department as a fallback. The functions it knows:

  • marketing
  • sales
  • customer success and support
  • people and HR
  • finance
  • IT and internal ops
  • security
  • data and analytics
  • design
  • product management
  • legal and compliance
  • operations
  • engineering leadership

Anything that matches no rule is other and is never reported. A Senior Software Engineer is not a signal.

Then it compares what it found with the snapshot it saved last time you ran with the same watch key, and writes one row per employer and function with a status:

NEW_CATEGORY is the row you are paying for. The employer was in the last snapshot, had no posting in this function then, and has one now.

FOUNDING_TITLE fires when the only posting in a function carries a title like "first", "founding" or "head of". It is inferred from the words in the title rather than from history, and the row says so, which is why it can fire on a first run.

BASELINE is every function present on the first run against a new watch key. There is nothing to compare against yet, so nothing is claimed.

RECURRING is a function the employer already had on file.

Every 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. The pitch angle for a first marketing hire reads: Acme is hiring its first marketing role, so until that person starts there is no marketing function in-house yet.

Who I built it for

  • Marketing and growth agencies, who want the company that has just decided marketing is worth a salary and does not have a team yet
  • Managed service providers and IT consultancies, for the first internal IT hire
  • Security consultancies and compliance shops, for the first security or GRC role
  • Fractional CFOs, finance outsourcers and recruiters, for the first finance or people hire
  • Anyone selling into a function, who wants to know the week a company starts building it

How to run it

Put one board per line as ats:identifier, one career page URL per line, or one numeric LinkedIn company id per line. Pick a watch key and keep using it for the same list. Run it, then sort the Overview table on the status column.

{
"atsBoards": "greenhouse:getyourguide\nlever:qonto\nrecruitee:channable\nworkable:skroutz",
"watchedRoles": ["marketing", "sales", "it_ops", "security", "finance"],
"watchKey": "eu-scaleups",
"maxPostingsPerSource": 100
}

If another Actor already scraped the postings, paste them into the postings field as a JSON array of records with employer and title (plus url, department, location and date_posted when you have them) and nothing is fetched.

Leave every source empty and you get four demo rows, one per status, built by the same code that scores real ones. Nothing is charged and nothing leaves the container.

What comes back

The dataset holds one row per employer and function. The NEW_CATEGORY and FOUNDING_TITLE rows come first. I also write an OUTPUT record with the count per status, every signal row named with its pitch angle, any source that failed and why, and one plain line you can post into a channel.

The snapshot lives in a named key-value store on your account, first-hire- followed by your watch key, so a scheduled run and an agent calling the MCP tool see the same history.

What it costs

You are charged once per employer that produced at least one posting, whatever the number of postings or functions. The LinkedIn leg runs the public LinkedIn Jobs Scraper by curious_coder on your own account and that run is billed on top, exactly as if you had run it yourself. Boards and career pages cost nothing beyond the per-employer event.

Honest limits

  • The first run is a baseline, not a finding. The signal arrives on the second run and after, when a function shows up that was not there before. Run it on a schedule.
  • "First hire" 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 on the title and department, not a model. It covers the common titles and it will misfile the odd creative one. Open the sample URL before you write.
  • Teamtailor boards are not supported, because their jobs API needs a key issued per company. Give me the career page URL instead.
  • The LinkedIn leg needs an Apify plan that can run public Actors. When it cannot run, the error is written into source_errors and the rest of the run carries on.

Built by Fractional HQ · https://fractionalhq.uk