# B2B Sales Trigger Feed: Hiring + Tech Leads (`offerastudio/b2b-sales-trigger-feed`) Actor

Find companies that show buying signals: hiring a role you target AND using (or not using) a technology, with public e-mails, phones and social profiles. Reads company career boards and websites. Monitor mode returns only newly matching companies.

- **URL**: https://apify.com/offerastudio/b2b-sales-trigger-feed.md
- **Developed by:** [Offera Studio](https://apify.com/offerastudio) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 lead returneds

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does B2B Sales Trigger Feed do?

**B2B Sales Trigger Feed** is built for **agencies and sales teams that sell to companies at the moment they have a need**. Example: an e-mail marketing agency wants companies that **use Shopify**, **do not use Klaviyo** and are **hiring a marketing role right now**, with public contact details, delivered to its CRM every week. You give it a list of companies (domains or career-page URLs). For each one it reads the **public job board** (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio), checks the **website's technology**, and keeps only the companies that match **both** filters. Then it adds **public e-mails (with a same-domain flag), phones and social profiles** from the company's own website. In **monitor mode** only companies that **newly match** are returned. Send the dataset to your **CRM, Slack or e-mail** with an Apify integration or webhook.

Per lead you get:

- 🏢 **company**, **domain**, careers board and job system
- 💼 **matching open roles** (title, link, posted date, location, department) and the total
- 🧰 **technologies matched** and everything detected on the site
- 📇 **contacts**: public e-mails (`sameDomain`, `generic`), phones, LinkedIn/X and other profiles
- 📝 a one-sentence **signal** for the CRM, and **isNew** in monitor mode

### Who is it for?

- **Marketing, web and e-commerce agencies** looking for stores with a gap you can fill.
- **SaaS sales teams** targeting companies that hire for the team that buys their product and run a specific stack.
- **Recruiters and staffing firms** tracking who is hiring for a role.

### How to use it

1. Click **Try for free**: six well-known web shops are checked for a marketing role, Shopify and no Klaviyo (about 15 seconds).
2. Enter your **Companies**. Strings work (`acme.com`), and objects give the careers page when auto-detection fails: `{"domain": "acme.com", "careersUrl": "https://jobs.lever.co/acme"}`.
3. Set **Job title keywords**, **Departments**, **Must use** and **Must not use technology**.
4. For a weekly feed set **Mode** to `monitor`, name it, save as a **task** and **schedule** it.

### Input example

```json
{
    "companies": ["brooklinen.com", "mejuri.com", { "domain": "acme.com", "careersUrl": "https://jobs.lever.co/acme" }],
    "jobTitleKeywords": ["marketing", "growth"],
    "mustUseTech": ["Shopify"],
    "mustNotUseTech": ["Klaviyo"],
    "includeContacts": true,
    "mode": "monitor",
    "monitorName": "klaviyo-gap-weekly"
}
```

### Output example

Real rows from a run on 7 October 2026 (shortened):

```json
[
    {
        "rowType": "lead",
        "company": "blueland",
        "domain": "blueland.com",
        "ats": "lever",
        "openRoles": 14,
        "matchingRolesTotal": 1,
        "matchingRoles": [{ "title": "Sr. Brand Marketing Manager", "department": "Marketing" }],
        "technologiesMatched": ["Shopify"],
        "signal": "blueland is hiring 1 matching role (Sr. Brand Marketing Manager), uses Shopify and not Klaviyo; 1 public e-mail found."
    },
    {
        "rowType": "lead",
        "company": "Vuori, Inc",
        "domain": "vuoriclothing.com",
        "ats": "smartrecruiters",
        "matchingRolesTotal": 2,
        "technologiesMatched": ["Shopify"],
        "signal": "Vuori, Inc is hiring 2 matching roles (Sr. Director, Marketing & Creative Operations, Manager, Product Marketing), uses Shopify and not Klaviyo; 1 public e-mail, 1 phone found."
    }
]
```

That run checked 6 companies in about 11 seconds: 4 leads, 2 without a matching role. Technology detection is based on the public homepage, so it is a strong hint, not a guarantee. Companies that do not match, companies that could not be checked (`unchecked` rows with a reason such as `no-ats-found`) and the final `summary` row are free.

### How much does it cost?

This Actor uses **pay per event**:

| Event | Price |
| --- | --- |
| Lead returned | **$0.01** per lead |
| Non-matching companies, unchecked companies, summary row | **free** |

- Checking 1,000 companies that produce 40 leads costs **$0.40**.
- Apify also charges a tiny standard start fee per run. Set **Maximum cost per run** to cap spending.

### Data sources and terms

- **Public job-board APIs** of the supported systems (the same endpoints their own career pages use) and the company's **careers page** to find the board (robots.txt respected).
- The company's **public homepage** for technology detection and, if asked, its contact, legal and about pages (robots.txt respected, polite delays). Only information the company publishes is collected; **business e-mails can be personal data**: use them according to your local rules (GDPR, ePrivacy, CAN-SPAM).
- DNS-over-HTTPS for mail provider hints. This Actor is **not affiliated with any job system or technology vendor** named here.

### Limitations

- Only the seven job systems above are read; companies on Workday, SuccessFactors or custom pages are returned as `unchecked` (give the board URL if it is on a supported system).
- The **technology filter needs the company website** (a domain). A careers URL alone only supports the hiring filter.
- Technology detection reads one page; tools loaded after consent or only on other pages can be missed (a company can use Klaviyo without us seeing it).
- Sites that block automated visits are `unchecked`.
- Job title matching is a "contains" match on the title; use several keywords.

### FAQ

#### What does "newly match" mean?

In monitor mode a company is returned when it did not match in the previous run with the same Monitor name (or has never been seen).

#### Can I use only the hiring filter?

Yes. Leave both technology fields empty; the Actor still adds the detected technologies and contacts.

#### How do I reset the memory?

Use a new Monitor name or delete the named key-value store `sales-triggers-<name>`.

### More tools from the same developer

All pay-per-result, no proxy or login needed, built and maintained by the same developer:

**Website audits**

- [Website Accessibility Checker: WCAG 2.2 & EAA](https://apify.com/offerastudio/website-accessibility-audit): accessibility issues with fixes, SEO basics and security headers.
- [Cookie & Tracker Audit: GDPR Consent Checker](https://apify.com/offerastudio/cookie-tracker-audit): cookies and tracking tags that load before consent.
- [AI Crawler Access Checker: robots.txt & llms.txt](https://apify.com/offerastudio/ai-crawler-access-audit): which AI crawlers a site allows, plus llms.txt.
- [Structured Data Validator: Schema & Rich Results](https://apify.com/offerastudio/structured-data-validator): JSON-LD and Microdata checked against Google's rich result rules.
- [Website Change Monitor: Diffs, Prices & Alerts](https://apify.com/offerastudio/website-change-monitor): get a row only when a page changes, with a clean diff.
- [Policy Change Monitor: Privacy & Terms Tracker](https://apify.com/offerastudio/policy-change-monitor): privacy policy and terms changes, classified clause by clause.
- [SaaS Pricing Monitor: Track Competitor Plans](https://apify.com/offerastudio/saas-pricing-monitor): competitor pricing plans as structured data, with price-change diffs.
- [Sitemap Change Monitor: New & Removed URLs](https://apify.com/offerastudio/sitemap-change-monitor): new, removed and changed URLs from a site's sitemaps.
- [Site SEO Crawler: Broken Links & On-Page Audit](https://apify.com/offerastudio/site-seo-crawler-audit): site-wide crawl for broken links, redirects and on-page SEO issues.
- [Website Tech Stack Detector: Bulk Lead Filters](https://apify.com/offerastudio/website-tech-stack-detector): technologies used by websites, with filters for lead lists.
- [Domain Availability & Expiry Checker (RDAP)](https://apify.com/offerastudio/domain-whois-availability): domain availability, registrar and expiry dates from RDAP.
- [Status Page SLA Monitor: Uptime & Incidents](https://apify.com/offerastudio/status-page-sla-monitor): SaaS vendor uptime, incidents and a monthly SLA table from public status pages.

**Company data and compliance**

- [Company Contact Finder: Emails, Phones & Socials](https://apify.com/offerastudio/company-contact-finder): contact details published on company websites.
- [UK New Companies Feed: Companies House Daily](https://apify.com/offerastudio/uk-new-companies-feed): newly incorporated UK companies with sector filters.
- [EU VAT Number Validator: Bulk VIES Checker](https://apify.com/offerastudio/eu-vat-number-validator): bulk VAT checks with name, address and consultation number.
- [LEI Corporate Tree: GLEIF Parents & Subsidiaries](https://apify.com/offerastudio/gleif-lei-corporate-tree): LEI lookup with parents, subsidiaries and a KYC summary.
- [UK Company Distress Watch: Insolvency Alerts](https://apify.com/offerastudio/uk-company-distress-watch): administrations, liquidations and winding-up petitions from The Gazette.
- [IBAN Validator: Bulk Check & Bank Lookup](https://apify.com/offerastudio/iban-bank-validator): IBAN format and checksum, plus bank name and BIC where open data exists.
- [Sanctions Screening: OFAC, EU, UN & UK Lists](https://apify.com/offerastudio/sanctions-screening): names screened against official sanctions lists, with match scores.
- [OSHA & EPA Violation Monitor: Fines by Company](https://apify.com/offerastudio/osha-epa-violation-monitor): US OSHA and EPA enforcement cases and penalties by company.
- [Email List Precheck: Syntax, MX & Disposable Check](https://apify.com/offerastudio/email-list-precheck): cheap email list hygiene before a real verification.
- [UK Company Officer Changes: Director & PSC Alerts](https://apify.com/offerastudio/uk-company-officer-changes): director, owner, address and status changes for a watchlist of UK companies.
- [FDA Warning Letters Monitor: By Company & Subject](https://apify.com/offerastudio/fda-warning-letters-monitor): FDA warning letters by company and subject, with cited regulations.
- [Supplier Risk Report: Sanctions, VAT & Insolvency](https://apify.com/offerastudio/supplier-risk-report): one risk row per supplier from eight official registers, with changes since last run.
- [Brand Impersonation Domain Monitor: Look-alikes](https://apify.com/offerastudio/brand-impersonation-domain-monitor): look-alike domains and certificates that imitate your brand, with a risk score.

**Media and AI**

- [Audio & Video Transcriber: Podcasts, SRT, Speakers](https://apify.com/offerastudio/audio-video-transcriber): audio, video, podcasts and social links to text, SRT and VTT.
- [Podcast Mention Alerts: Brand Mentions by Second](https://apify.com/offerastudio/podcast-mention-alerts): where your brand is said in new podcast episodes, with the exact second.
- [News Brand Mentions Monitor: New Articles Only](https://apify.com/offerastudio/news-brand-mentions-monitor): new news articles about your brand, people or topics.
- [YouTube Channel Monitor: New Videos & Growth](https://apify.com/offerastudio/youtube-channel-monitor): new videos and view growth of the channels you watch.

**Market signals**

- [US WARN Layoff Notices: 12 States Daily Feed](https://apify.com/offerastudio/us-warn-layoff-notices): layoff and plant closure notices from official state sources.
- [US Product Recalls Monitor: FDA & CPSC Feed](https://apify.com/offerastudio/us-product-recalls-monitor): FDA and CPSC recalls in one feed, with severity.
- [EU Tenders Feed: TED Public Procurement Alerts](https://apify.com/offerastudio/eu-tender-feed): EU public tenders from TED with CPV, country and value filters.
- [Liquor License Openings: New Bars & Stores (US)](https://apify.com/offerastudio/liquor-license-openings): new US liquor licences from official state open data.
- [Clinical Trials Change Monitor: Status & Updates](https://apify.com/offerastudio/clinicaltrials-change-monitor): status, enrollment and results changes on ClinicalTrials.gov studies.
- [Career Site Jobs Monitor: ATS Jobs & New Roles](https://apify.com/offerastudio/career-site-jobs-monitor): open roles from company career sites, with new and closed roles since the last run.
- [App Reviews Monitor: App Store & Google Play](https://apify.com/offerastudio/app-store-reviews-monitor): app reviews from both stores, only new ones in monitor mode.
- [US Federal Contracts Feed: SAM.gov & USAspending](https://apify.com/offerastudio/us-federal-contracts-feed): SAM.gov contract opportunities with the buyer's award history.
- [Grants.gov Opportunities: US Federal Grants Feed](https://apify.com/offerastudio/grants-gov-opportunities): US federal grant opportunities by keyword, eligibility and agency.
- [Federal Register Monitor: US Rules & Notices Feed](https://apify.com/offerastudio/federal-register-monitor): new US rules, proposed rules and notices by agency or topic.
- [Local Business Leads: OpenStreetMap, No Website](https://apify.com/offerastudio/local-business-leads-osm): local businesses by city and category, including those with no website.
- [Solana Token Pair Monitor: New & Trending Pairs](https://apify.com/offerastudio/solana-token-pair-monitor): new and trending Solana pairs with liquidity, volume and safety flags.

### Feedback

Missing a source, a filter or a field? Open an issue on the **Issues** tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/offerastudio/b2b-sales-trigger-feed/changelog.md

# Actor input Schema

## `companies` (type: `array`):

Company domains or career-page URLs, as strings ("allbirds.com", "https://boards.greenhouse.io/allbirds") or objects {"name": "Acme", "domain": "acme.com", "careersUrl": "https://jobs.lever.co/acme"}. The technology filter needs the company website, so give a domain. Supported job systems: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio. Up to 2,000.

## `jobTitleKeywords` (type: `array`):

A company matches when it has an open role whose title contains any of these words (case-insensitive), e.g. marketing, growth, "email". Empty: any open role counts.

## `departments` (type: `array`):

Optional: the role's department or team must contain one of these words, e.g. Marketing, Growth.

## `mustUseTech` (type: `array`):

The website must use at least one of these (names as in our technology list, e.g. Shopify, WooCommerce, HubSpot, Stripe, Klaviyo).

## `mustNotUseTech` (type: `array`):

The website must use none of these, e.g. Klaviyo: a company with a gap you can fill.

## `includeContacts` (type: `boolean`):

Read the homepage and its contact, legal and about pages (robots.txt respected) for public e-mails (with a same-domain flag), phones and social profiles.

## `mode` (type: `string`):

All: every matching company. Monitor: only companies that did not match in the earlier run with the same monitor name (the first run returns all).

## `monitorName` (type: `string`):

Names this watch (monitor mode). Runs with the same name share a memory of which companies matched, in a named key-value store.

## Actor input object example

```json
{
  "companies": [
    "brooklinen.com",
    "mejuri.com",
    "vuoriclothing.com",
    "peakdesign.com",
    "blueland.com",
    "harrys.com"
  ],
  "jobTitleKeywords": [
    "marketing"
  ],
  "mustUseTech": [
    "Shopify"
  ],
  "mustNotUseTech": [
    "Klaviyo"
  ],
  "includeContacts": true,
  "mode": "all"
}
```

# Actor output Schema

## `leads` (type: `string`):

No description

## `contacts` (type: `string`):

No description

## `notes` (type: `string`):

No description

# 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 = {
    "companies": [
        "brooklinen.com",
        "mejuri.com",
        "vuoriclothing.com",
        "peakdesign.com",
        "blueland.com",
        "harrys.com"
    ],
    "jobTitleKeywords": [
        "marketing"
    ],
    "mustUseTech": [
        "Shopify"
    ],
    "mustNotUseTech": [
        "Klaviyo"
    ],
    "includeContacts": true,
    "mode": "all"
};

// Run the Actor and wait for it to finish
const run = await client.actor("offerastudio/b2b-sales-trigger-feed").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 = {
    "companies": [
        "brooklinen.com",
        "mejuri.com",
        "vuoriclothing.com",
        "peakdesign.com",
        "blueland.com",
        "harrys.com",
    ],
    "jobTitleKeywords": ["marketing"],
    "mustUseTech": ["Shopify"],
    "mustNotUseTech": ["Klaviyo"],
    "includeContacts": True,
    "mode": "all",
}

# Run the Actor and wait for it to finish
run = client.actor("offerastudio/b2b-sales-trigger-feed").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "companies": [
    "brooklinen.com",
    "mejuri.com",
    "vuoriclothing.com",
    "peakdesign.com",
    "blueland.com",
    "harrys.com"
  ],
  "jobTitleKeywords": [
    "marketing"
  ],
  "mustUseTech": [
    "Shopify"
  ],
  "mustNotUseTech": [
    "Klaviyo"
  ],
  "includeContacts": true,
  "mode": "all"
}' |
apify call offerastudio/b2b-sales-trigger-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,offerastudio/b2b-sales-trigger-feed"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/MuTzbhz0n9Zfx0Jhy/builds/dflICXABiQfhaeMKs/openapi.json
