# Salesforce & HubSpot Project Signals | RevOps Radar (`logical_resourcefulnes/revops-opportunity-radar`) Actor

Find Salesforce & HubSpot consulting prospects from Greenhouse job posts. Get ranked companies, project evidence, source links and qualification questions. US/UK role filters. JSON/CSV. No AI key.

- **URL**: https://apify.com/logical_resourcefulnes/revops-opportunity-radar.md
- **Developed by:** [Revenue Pilot](https://apify.com/logical_resourcefulnes) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 company analyses

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

## Salesforce & HubSpot Project Signals | RevOps Radar

Decide which accounts deserve your next sales conversation. RevOps Opportunity Radar reads public Greenhouse job posts and ranks companies by concrete Salesforce or HubSpot project responsibilities, with source evidence, posting age, counter-signals and a question to qualify the opportunity.

For Salesforce, HubSpot and RevOps consultancies with a target account list whose Greenhouse boards are known. Use the built-in 10-company set to see how the analysis works before adding your own boards. English-language role filters cover the US and UK; they describe job locations, not company headquarters. No external AI key is required.

### What the results tell you

The Actor distinguishes implementation, migration, integration and automation responsibilities from generic tool experience. That helps you prioritize accounts and avoid treating every CRM mention as a buying signal. Each company gets a score, evidence links, cautions and a next question. A hiring signal is a reason to investigate, not proof of consulting demand or budget.

#### Actual output: strong, weak and no matching signal

These are saved **owner validation results observed on 12 October 2026**, with Salesforce/HubSpot and US/UK role filters. They are not customer results, current live leads or sales claims. Re-running can produce different results as jobs change.

| Company | Score / priority | What the evidence says | How to use it |
| --- | --- | --- | --- |
| Stripe | 80 / `review_now` | Partner Marketing Operations Manager includes Salesforce integration. [Job source](https://stripe.com/jobs/search?gh_jid=8187570). | Ask whether the team needs interim implementation or integration support while hiring. |
| Figma | 40 / `watch` | Business Systems Analyst lists Salesforce admin experience; no explicit CRM project responsibility was found. [Job source](https://boards.greenhouse.io/figma/jobs/6215865004?gh_jid=6215865004). | Verify the project before allocating outreach time. |
| Webflow | 0 / `low_fit` | No matching role within the selected filters. [Board source](https://job-boards.greenhouse.io/webflow). | Deprioritize this signal; it does not establish that the company has no need. |

The complete 10-company validation returned **2 `review_now`, 3 `watch` and 5 `low_fit`** analyses. All 10 successful analyses were priced, including the negative results. Five were marked `selectedForReview` at the default threshold of 35; that flag is different from the `review_now` priority tier.

Below is an **abbreviated actual Stripe result** using existing output fields. The source posting was 27 days old at observation; its updated date was not treated as a new publication.

```json
{
  "recordType": "account_analysis",
  "companyName": "Stripe",
  "score": 80,
  "priority": "review_now",
  "observedAt": "2026-10-12T02:40:31.130608+00:00",
  "platforms": ["salesforce"],
  "evidence": [
    {
      "title": "Partner Marketing Operations Manager",
      "projectEvidence": true,
      "evidenceExcerpt": "blockers for partners entering Stripe's GTM motion (e.g., Salesforce integration, partner recommender)",
      "sourceUrl": "https://stripe.com/jobs/search?gh_jid=8187570",
      "publishedAt": "2026-09-14T16:32:06-04:00",
      "ageDays": 27
    }
  ],
  "nextQuestion": "Is this team seeking interim implementation or integration support while hiring?",
  "counterSignals": ["An open internal role does not prove willingness to hire a consultancy."],
  "selectedForReview": true,
  "billable": true
}
```

### Try 10 companies for about $0.20

No account list or code is needed for the demonstration. Open [Salesforce & HubSpot Prospect Check — 10 Companies](https://apify.com/logical_resourcefulnes/revops-opportunity-radar/examples/salesforce-hubspot-prospect-check-10-companies), also available in this Actor's **Example tasks** tab. It uses the existing starter set; it is not an exhaustive prospect database or a promise of new accounts that match your ideal customer profile.

1. Sign in to Apify and open the example task.
2. Duplicate/use the task in your own account. Keep Salesforce/HubSpot and US/UK, or adjust those two filters.
3. Check the live Pricing tab and confirm **Maximum cost per run = $0.20005**, 10 companies, 256 MB and a 300-second run timeout. Automatic restart on error should be off.
4. Select **Start**. No approval from this Actor's operator is needed.
5. Open the **Account priorities** table, inspect **Evidence and limitations**, then export CSV, JSON or Excel. Use the questions to verify need before outreach.

You can also use the main Actor's Input form: choose **Scan the starter set**, leave additional boards empty and set **Maximum companies to analyze** to **10**. Check the same cost limit before starting. The main Actor's existing default maximum remains 50.

### Analyze your own target accounts

1. Open the company's careers page and find its public Greenhouse job-board link, such as `https://job-boards.greenhouse.io/stripe` or `https://boards.greenhouse.io/figma`.
2. In the main Actor's Input form select **Use only my boards** (`preset: none`). Otherwise the starter companies are also included.
3. Paste the board links or board names into **Additional Greenhouse boards**, choose the platforms you support and set the maximum companies and run cost.
4. Run and review the evidence before contacting an account.

Up to 50 distinct Greenhouse boards are supported. Plain company domains, LinkedIn profiles and other ATS platforms are not accepted. If an account has no Greenhouse board, this release cannot analyze it. Choose **Any stated location** for wider location coverage and check each role's location yourself.

### Pricing: pay for analysis, including a negative finding

**$0.02 per successfully analyzed company** ($20 per 1,000), plus **$0.00005 per container start**. With one ordinary start:

| Successfully analyzed companies | Event price |
| --- | ---: |
| 1 | $0.02005 |
| 10 | $0.20005 |
| 50 | $1.00005 |

- A company with no matching roles or a low score is still a successful, priced analysis. Negative screening helps you decide where not to spend sales time.
- Collection errors and diagnostic rows have no company-analysis fee. Duplicate aliases of a board within a run are analyzed and charged once. A separate run is a new analysis order.
- **Review threshold** (`minScore`) marks `selectedForReview`; it does not filter out priced analyses or reduce the bill. Limit the number of companies and set **Maximum cost per run** to control spending.
- The minimum run budget is $0.02005. Ordinary platform usage is included in event prices. Subsequent export/storage charges follow Apify's platform terms.
- Manually resurrecting a run adds another $0.00005 start event, potentially beyond its previous cost cap. Company analyses already charged are not charged again on that resumed run. Automatic restart on error is disabled.
- Apify Free-plan credits can cover usage under your plan; the price is not a claim that every run earns this developer revenue. Inspect the live Pricing tab before starting.

### Coverage, evidence and limits

Scores are transparent rules for review priority, not a purchase probability. Generic tool familiarity, old postings and negative/no-agency language reduce priority. Internal hiring may mean the company prefers doing the work itself. Publication dates are shown separately from updates; missing dates remain unknown. A score of zero does not prove absence of CRM need.

This release is a snapshot of current published jobs. It does not measure hiring acceleration, track closures, infer confirmed budgets or share customer histories. A default run uses 256 MiB memory, at most 50 boards and up to 180 seconds of source collection. One board failure produces a free diagnostic while other boards continue. Location recognition and source availability are not guaranteed.

Only documented public job-board GET endpoints are read, at no more than one request per second with one bounded retry. Robots restrictions are respected. No login-gated data, applicant data, contact harvesting or automated outreach. Job bodies are analyzed in memory; outputs retain facts and short, contact-redacted excerpts, not full descriptions. Customer inputs and results stay in the customer's run storage; no external AI provider receives them.

Readable public APIs do not grant unlimited redistribution rights. Follow applicable employer/platform terms and verify current need before outreach. This Actor is independent of Greenhouse and CRM vendors. Cloudflare boards are excluded while the applicability of automated-analysis restrictions is unresolved; requesting one returns a free diagnostic without fetching it.

### API and automation details

Use the Console, API or your own Apify schedule. Normal customer runs require no operator approval. Example API input for the same 10-company configuration:

```json
{"preset":"starter","boards":[],"geography":"us_uk","platforms":["salesforce","hubspot"],"minScore":35,"maxResults":10,"maxRunSecs":180}
```

The dataset can be exported as JSON, CSV or Excel or fetched through Apify's API. The **Complete results and summary** link opens the authoritative `OUTPUT` key-value record. If a dataset write times out, the Actor does not repeat an ambiguous write; retrieve `OUTPUT` if a row is missing from the table. Ambiguous company-analysis charges are never repeated on a resumed run. Run resurrection still incurs Apify's additional start event described above.

# Actor input Schema

## `preset` (type: `string`):

A small discovery set, not a complete market census. Select none when scanning only your own account list.

## `boards` (type: `array`):

Board names or HTTPS Greenhouse board links. 50 distinct boards maximum. Company domains and other ATS platforms are not supported yet.

## `geography` (type: `string`):

Uses the location of the role, not company headquarters. Remote with no stated country is excluded from US/UK.

## `platforms` (type: `array`):

A relevant CRM or operations role must mention one of these tools.

## `minScore` (type: `integer`):

Marks selectedForReview. All analyzed companies remain in the output and are priced the same, including low-fit companies.

## `maxResults` (type: `integer`):

Price: $0.02 per analyzed company, plus $0.00005 per container start. Errors are not company-analysis events.

## `maxRunSecs` (type: `integer`):

Collection stops at the time limit; delivered analyses remain available.

## Actor input object example

```json
{
  "preset": "starter",
  "boards": [],
  "geography": "us_uk",
  "platforms": [
    "salesforce",
    "hubspot"
  ],
  "minScore": 35,
  "maxResults": 50,
  "maxRunSecs": 180
}
```

# Actor output Schema

## `accounts` (type: `string`):

No description

## `completeResults` (type: `string`):

Authoritative OUTPUT record, including rows whose dataset delivery was uncertain.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("logical_resourcefulnes/revops-opportunity-radar").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("logical_resourcefulnes/revops-opportunity-radar").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 '{}' |
apify call logical_resourcefulnes/revops-opportunity-radar --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,logical_resourcefulnes/revops-opportunity-radar"
        }
    }
}
```

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/8Gyf5jVe3dFidD4gn/builds/cebPEfh5eXahbgaHR/openapi.json
