Company Hiring Signals — Job Postings to JSON avatar

Company Hiring Signals — Job Postings to JSON

Pricing

$2.00 / 1,000 results

Go to Apify Store
Company Hiring Signals — Job Postings to JSON

Company Hiring Signals — Job Postings to JSON

Scrape job postings by company name from Greenhouse, Lever & Ashby ATS. Hiring signals for sales intelligence & AI agents. $2 per 1,000 postings, no coding.

Pricing

$2.00 / 1,000 results

Rating

0.0

(0)

Developer

Hassan Hashish

Hassan Hashish

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Share

Scrape job postings from any company on Greenhouse, Lever or Ashby by company name — hiring signals as clean JSON at $0.002 per posting.

A company opening new roles is a buying signal: budget exists, growth is happening, tools are being bought. This actor turns any company name into its live job postings — normalized across the three most common tech ATS platforms (Greenhouse, Lever, Ashby) — so sales-intelligence agents, recruiting agents and research pipelines can read hiring activity as structured data. It reads each platform's public job-board API directly: no browser, no proxies, no scraping fragility, results in seconds.

What this actor does

  • Look up live job postings for any company hosted on Greenhouse, Lever or Ashby — auto-detected, one unified output shape
  • Hiring-signal fields: title, department, team, location(s), remote flag, employment type, compensation (when published), posted date
  • Filter by keywords, location, remote-only, or postedAfter for incremental scheduled runs (only new postings since last run)
  • Batch many companies in one run; cap spend with maxResults
  • Built for agents: flat JSON, sourceUrl + scrapedAt on every item for citation, callable via MCP and the Apify API

You only pay for successful results — failed or empty lookups cost nothing.

Why pick this Actor

  • One call queries three ATS platforms (Greenhouse, Lever, Ashby) and returns a single normalized schema — title, department, location, remote flag, compensation — no per-platform glue code
  • Per-result pricing ($0.002/result) with a hard maxResults spend cap — empty lookups cost $0
  • Flat, stable JSON schema with sourceUrl + scrapedAt on every item — citation-ready for RAG and grounding
  • Batch many queries in one run; overlapping results are deduplicated and charged once
  • MCP server, OpenAPI schema, and LangChain/CrewAI tool support out of the box — no glue code

Sample output

Each dataset item is flat, typed JSON with a sourceUrl and scrapedAt for citation/grounding:

{
"query": "stripe",
"source": "greenhouse",
"title": "Account Executive, AI Sales",
"department": "Sales",
"team": null,
"location": "San Francisco, CA",
"locations": null,
"remote": false,
"employmentType": null,
"compensation": null,
"postedAt": "2026-06-02T14:01:00.000Z",
"url": "https://stripe.com/jobs/search?gh_jid=7964697",
"sourceUrl": "https://boards-api.greenhouse.io/v1/boards/stripe/jobs",
"scrapedAt": "2026-06-10T15:00:00.000Z"
}

Input

{"queries":["stripe","openai","palantir"]}
FieldTypeDescription
queries / queryarray / stringCompany. One or many.
maxResultsintegerHard spend cap (billed per result).
includeDescriptionbooleanInclude full description text.
keywords / locations / remoteOnly / postedAfterfiltersNarrow results; enable delta/scheduled runs.

How much does it cost

Pay-per-result: $0.002 per successful result. No subscription, no compute-unit guesswork, no charge for empty results. An orchestrator can cap spend with maxResults.

How to use it with AI agents (MCP), Claude, and the API

Claude Desktop / Claude Code via Apify MCP

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "oblanceolate_mandola/company-hiring-signals"],
"env": { "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>" }
}
}
}

Python (Apify API)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("oblanceolate_mandola/company-hiring-signals").call(run_input={"queries":["stripe","openai","palantir"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

TypeScript (Apify API)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('oblanceolate_mandola/company-hiring-signals').call({"queries":["stripe","openai","palantir"]});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

LangChain / CrewAI tool

from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("oblanceolate_mandola/company-hiring-signals") # agent calls it autonomously

OpenAPI schema for self-integrating GPT agents is auto-exposed at the Actor's API tab.

Data & compliance

Reads only publicly accessible endpoints. No login, no credential harvesting, no CAPTCHA bypass. Every result carries its sourceUrl so downstream agents can cite and re-verify.

FAQ

How do I find a company's slug?

Use the identifier in its job-board URL: boards.greenhouse.io/stripe, jobs.lever.co/palantir, jobs.ashbyhq.com/openai. Pass that word as the query. The actor auto-detects which of the three platforms the company uses.

What if a company is not on Greenhouse, Lever, or Ashby?

You get zero results for that company and are charged nothing. Many large enterprises use Workday or Taleo, which this actor does not cover in v1.

How do I get only new postings since my last run?

Set postedAfter to your last run date (e.g. 2026-06-01). Combined with a scheduled run, this gives you an incremental hiring-signal feed.

Do I pay for companies that return no jobs?

No. You only pay for successful results — one charge per job posting actually returned.

Can AI agents call this Actor directly?

Yes — via the Apify MCP server (snippet above), the OpenAPI schema on the Actor's API tab, or the LangChain/CrewAI tool wrapper. Results are flat JSON with sourceUrl and scrapedAt on every item, so downstream agents can cite and re-verify.

What happens when there are no results?

You pay nothing. Billing is per dataset item delivered, so an empty lookup costs $0, and the run log states why (no match, source rate limit) instead of failing silently.

Changelog

  • 1.0 — Initial release: greenhouse, lever, ashby.