# Hiring Leads with Contacts & Intent Signals (`xavier_rx/hiring-leads-with-contacts`) Actor

Find companies that are actively hiring and enrich them with public business contacts, evidence and sales intent scores.

- **URL**: https://apify.com/xavier\_rx/hiring-leads-with-contacts.md
- **Developed by:** [Xavier](https://apify.com/xavier_rx) (community)
- **Categories:** Jobs, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $120.00 / 1,000 enriched hiring leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Hiring Leads with Contacts & Intent Signals

Turn public company career pages into CRM-ready sales opportunities. The Actor combines current hiring activity with public business contacts, website technologies, evidence URLs and a transparent intent score.

### Why use it

Hiring activity is a strong timing signal, but a list of open jobs is not yet a usable lead list. This Actor connects the signal to the company website and adds the public contact and context needed for outreach.

- Analyze Greenhouse, Lever and Ashby public boards.
- Start from a company website and automatically discover supported job boards.
- Extract public business emails, phones and social profiles.
- Detect common website and marketing technologies.
- Filter by role, location, recency, remote work and minimum job count.
- Rank every result with transparent hiring, contact and intent scores.
- Generate a deterministic outreach angle without an AI API key.
- Export JSON, CSV, Excel, XML or JSONL from the Apify dataset.

### Example input

```json
{
  "startUrls": [
    { "url": "https://jobs.ashbyhq.com/openai" }
  ],
  "websiteMappings": [
    {
      "jobBoardUrl": "https://jobs.ashbyhq.com/openai",
      "websiteUrl": "https://openai.com"
    }
  ],
  "targetRoles": ["sales", "solutions architect", "software engineer"],
  "targetLocations": ["remote", "united states"],
  "recentDays": 30,
  "onlyMatchingCompanies": false,
  "onlyWithContact": false,
  "offerContext": "our recruiting and engineering services",
  "maxPagesPerWebsite": 5,
  "includeJobDetails": false
}
```

`websiteMappings` is optional. Use it when an ATS board does not expose a reliable link to the official company website.

### Example output

```json
{
  "companyName": "Acme",
  "domain": "acme.com",
  "websiteUrl": "https://acme.com/",
  "emails": ["hello@acme.com"],
  "phones": ["+1 212 555 0100"],
  "linkedinUrl": "https://linkedin.com/company/acme",
  "technologies": ["HubSpot", "Google Tag Manager"],
  "totalOpenJobs": 24,
  "matchedJobs": 5,
  "recentJobs": 3,
  "intentScore": 78,
  "intentLevel": "very-high",
  "scoreReasons": [
    "Active hiring: 24 open roles",
    "3 roles posted or updated in the last 30 days",
    "5 target-profile job matches",
    "1 public business email found"
  ],
  "suggestedOutreach": "Reference the open ‘Solutions Architect’ role and connect your offer directly to the current hiring plan.",
  "boardUrl": "https://jobs.ashbyhq.com/acme"
}
```

### Pricing behavior

The Actor emits `enriched-lead` when a company website is successfully connected to the hiring signal and `hiring-lead` when only the public hiring intelligence is available. This keeps partial results cheaper and avoids hidden calls to other paid Actors.

### Responsible use

The Actor accesses public company websites and public ATS endpoints. Use results lawfully, respect privacy and marketing regulations, and do not use the data for spam, harassment or unlawful profiling.

# Actor input Schema

## `startUrls` (type: `array`):

Company websites or public Greenhouse, Lever and Ashby board URLs. Company websites are inspected for supported job-board links.

## `websiteMappings` (type: `array`):

Optional mappings when a company website cannot be discovered from its board. Example: \[{"jobBoardUrl":"https://jobs.ashbyhq.com/openai","websiteUrl":"https://openai.com"}].

## `targetRoles` (type: `array`):

Keywords used to identify commercially relevant open roles. Leave empty to match every role.

## `targetLocations` (type: `array`):

Optional locations such as United States, London, Brazil or Remote.

## `recentDays` (type: `integer`):

Jobs published or updated within this number of days count as recent.

## `minimumOpenJobs` (type: `integer`):

Skip companies with fewer open jobs.

## `onlyMatchingCompanies` (type: `boolean`):

Output only companies with at least one role matching both role and location filters.

## `onlyWithContact` (type: `boolean`):

Output only companies with at least one public business email or phone number.

## `includeJobDetails` (type: `boolean`):

Include normalized individual job records in each lead.

## `offerContext` (type: `string`):

Optional short description used to make the suggested outreach more relevant.

## `maxJobsPerCompany` (type: `integer`):

Maximum number of public jobs fetched and analyzed for each company.

## `maxPagesPerWebsite` (type: `integer`):

Maximum homepage, contact, about, team and careers pages inspected per company.

## `maxConcurrency` (type: `integer`):

Maximum number of company sources analyzed simultaneously.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://jobs.ashbyhq.com/openai"
    }
  ],
  "websiteMappings": [],
  "targetRoles": [
    "sales",
    "marketing",
    "growth",
    "customer success",
    "software engineer",
    "data engineer"
  ],
  "targetLocations": [],
  "recentDays": 30,
  "minimumOpenJobs": 1,
  "onlyMatchingCompanies": false,
  "onlyWithContact": false,
  "includeJobDetails": false,
  "offerContext": "",
  "maxJobsPerCompany": 500,
  "maxPagesPerWebsite": 5,
  "maxConcurrency": 5
}
```

# Actor output Schema

## `results` (type: `string`):

Company-level lead records ordered by input with evidence and outreach guidance.

## `summary` (type: `string`):

Counts for requested sources, discovered boards, output leads and partial failures.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://jobs.ashbyhq.com/openai"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("xavier_rx/hiring-leads-with-contacts").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://jobs.ashbyhq.com/openai" }] }

# Run the Actor and wait for it to finish
run = client.actor("xavier_rx/hiring-leads-with-contacts").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://jobs.ashbyhq.com/openai"
    }
  ]
}' |
apify call xavier_rx/hiring-leads-with-contacts --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=xavier_rx/hiring-leads-with-contacts",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/O5rcoGEMSEfxxtkIZ/builds/LE2TtOsHUZbCtaFje/openapi.json
