Job Posts to B2B Buying Signals avatar

Job Posts to B2B Buying Signals

Pricing

from $15.00 / 1,000 qualified accounts

Go to Apify Store
Job Posts to B2B Buying Signals

Job Posts to B2B Buying Signals

Run selected upstream job Actors or process existing job data, then turn job posts into evidence-backed B2B buying-signal accounts with cost caps, scores, personas, and outreach angles.

Pricing

from $15.00 / 1,000 qualified accounts

Rating

0.0

(0)

Developer

SignalFlow Studio

SignalFlow Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Turn job scraper outputs into evidence-backed B2B account signals.

This Actor is a sales-intelligence layer for job data. It accepts uploaded job rows, an existing Apify dataset, or one or more user-selected upstream job scraper Actors, then returns qualified companies whose hiring activity suggests an active buying need. Each result includes matched evidence, a signal score, inferred need, why-now context, recommended persona, and outreach angle.

It is not a LinkedIn scraper, Indeed scraper, or email finder. By default, it calls selected upstream job Actors using the Apify runtime token of the user who starts the run, then aggregates the returned job posts into account-level buying signals.

Who it is for

  • CRM, RevOps, Salesforce, and HubSpot implementation agencies.
  • Data, BI, AI, analytics, and cloud consulting teams.
  • Cybersecurity, compliance, SOC, GRC, and SIEM service providers.
  • Outbound agencies turning job-post datasets into weekly account lists.
  • B2B sales teams that want account-level signals instead of raw job rows.

Source modes

Upstream Actor

This is the default mode. Adjust jobSearchKeyword and jobSearchLocation, optionally enable more source presets, then start the run. No manual API token input is needed on Apify because the platform provides the run token for the user who starts the Actor.

Run mechanism:

  • This Actor calls each selected upstream Actor through Apify's run-sync-get-dataset-items API.
  • The upstream Actor receives the source-specific upstreamInput and returns its dataset items to this Actor.
  • Apify sets APIFY_TOKEN to the API token of the user who started the run, so upstream runs are started as that user, not as this Actor's owner.
  • Each enabled simple source or enabled upstreamActors item can start one upstream Actor run.
  • If an upstream Actor is paid, unavailable, private, or requires rental/access, that upstream run can fail or create a separate charge according to the upstream Actor's own Pricing tab.
  • This Actor passes both maxTotalChargeUsd and maxItems to upstream runs. maxTotalChargeUsd caps the upstream run charge; maxItems limits charged result count for pay-per-result upstream Actors when supported by Apify.

Official Apify references:

Default simple inputs:

FieldDefault
jobSearchKeywordRevOps Manager
jobSearchLocationUnited States
maxJobsPerSource50; mapped per source as LinkedIn count, Indeed maxRows, and ATS API limit
maxUpstreamChargeUsdPerSource1.00
useLinkedInJobstrue; curious_coder/linkedin-jobs-scraper, price snapshot: $1.00 / 1,000 results
useIndeedJobsfalse; borderline/indeed-scraper, price snapshot: $5.00 / 1,000 jobs
useGreenhouseJobsfalse; fantastic-jobs/greenhouse-jobs-api, price snapshot: from $1.20 / 1,000 jobs
useLeverJobsfalse; fantastic-jobs/lever-co-jobs-api, price snapshot: from $0.80 / 1,000 jobs
useAshbyJobsfalse; fantastic-jobs/ashby-jobs-api, price snapshot: from $1.20 / 1,000 jobs

Use upstreamActors only when you need custom Actor IDs or source-specific JSON inputs.

Uploaded job rows

Paste or upload job rows directly when you already have job data.

Existing Apify dataset

Process a dataset produced by another Actor. Private datasets are read with the run user's Apify token.

Default presets and upstream price snapshot:

Snapshot checked on 2026-05-27. Upstream authors can change pricing; the upstream Actor's Pricing tab is authoritative at run time.

PresetActorStore linkUpstream price snapshot
linkedin_jobs_popularcurious_coder/linkedin-jobs-scraperhttps://apify.com/curious_coder/linkedin-jobs-scraper$1.00 / 1,000 results
indeed_jobs_popularborderline/indeed-scraperhttps://apify.com/borderline/indeed-scraper$5.00 / 1,000 jobs
greenhouse_jobs_apifantastic-jobs/greenhouse-jobs-apihttps://apify.com/fantastic-jobs/greenhouse-jobs-apifrom $1.20 / 1,000 jobs
lever_jobs_apifantastic-jobs/lever-co-jobs-apihttps://apify.com/fantastic-jobs/lever-co-jobs-apifrom $0.80 / 1,000 jobs
ashby_jobs_apifantastic-jobs/ashby-jobs-apihttps://apify.com/fantastic-jobs/ashby-jobs-apifrom $1.20 / 1,000 jobs
customAny public or accessible Actor IDCheck the custom Actor pageCheck the custom Actor Pricing tab

Simple mode maps the keyword/location fields to each upstream Actor's current input schema:

SourceSimple input sent upstream
LinkedInurls=[generated LinkedIn jobs search URL], count=max(maxJobsPerSource, 10), scrapeCompany=true
Indeedquery=jobSearchKeyword, location=jobSearchLocation, maxRows=maxJobsPerSource
Greenhouse / Lever / AshbytitleSearch=[jobSearchKeyword], locationSearch=[jobSearchLocation], limit=max(maxJobsPerSource, 200), includeAi=false, includeLinkedIn=true

Upstream Actor fees are separate and charged by each selected upstream Actor to the user who starts the run.

Quick start

Default run:

{
"jobSearchKeyword": "RevOps Manager",
"jobSearchLocation": "United States",
"maxJobsPerSource": 50,
"maxUpstreamChargeUsdPerSource": 1,
"playbook": "crm_revops",
"jobKeywords": ["RevOps Manager", "Revenue Operations", "HubSpot"],
"enableAiInsights": false,
"minSignalScore": 60,
"maxResults": 25
}

Advanced multi-Actor override:

{
"sourceMode": "upstream_actor",
"upstreamActors": [
{
"enabled": true,
"label": "LinkedIn RevOps search",
"upstreamPreset": "linkedin_jobs_popular",
"upstreamInput": {
"urls": ["https://www.linkedin.com/jobs/search/?keywords=RevOps+Manager&location=United+States"],
"count": 100,
"scrapeCompany": true
}
},
{
"enabled": true,
"label": "Indeed Salesforce search",
"upstreamPreset": "indeed_jobs_popular",
"upstreamInput": {
"query": "Salesforce Administrator",
"location": "United States",
"maxRows": 100
}
}
],
"playbook": "crm_revops",
"jobKeywords": ["RevOps Manager", "Salesforce Administrator", "HubSpot"],
"maxJobsToProcess": 100,
"maxResults": 25
}

Inputs

FieldDescription
sourceModeDefaults to upstream_actor; can also be uploaded_job_rows or dataset.
jobSearchKeywordMain role, skill, or tool keyword for the default upstream job search.
jobSearchLocationLocation passed to upstream job sources that support location search.
maxJobsPerSourceLimit passed to each simple upstream source using that Actor's expected field. LinkedIn has minimum count=10; Greenhouse/Lever/Ashby have minimum limit=200.
maxUpstreamChargeUsdPerSourceMaximum charge passed to each upstream Actor run as Apify maxTotalChargeUsd. Default USD 1.00 per enabled upstream source.
useLinkedInJobs, useIndeedJobs, useGreenhouseJobs, useLeverJobs, useAshbyJobsSimple source toggles for non-technical users.
upstreamActorsAdvanced override array for multiple custom upstream Actor configs. Leave empty to use the simple toggles.
simulateUpstreamRunUses mock items instead of calling upstream Actors. Useful for testing.
sourceDatasetIdExisting Apify dataset ID to process.
jobRowsUploaded job rows.
playbookcrm_revops, data_stack, cybersecurity, or custom.
jobKeywordsExtra job title, skill, or tool keywords to match.
locationsOptional location keyword filters.
postedWithinDaysPreferred recency window for jobs with dates.
minSignalScoreMinimum score required for dataset output.
maxJobsToProcessDefault 100, hard cap 10000.
maxResultsDefault 25, hard cap 500.
enableAiInsightsBYOK AI-assisted insight generation; deterministic text is used without a key.
aiProviderApiKeyOptional secret BYOK key for AI-assisted insight generation.

Output

The default dataset contains one row per qualified account:

{
"companyName": "Instrumentl",
"domain": "instrumentl.com",
"playbook": "crm_revops",
"signalScore": 78,
"signalTier": "medium",
"inferredNeed": "Likely scaling CRM, sales operations, or revenue operations workflows",
"whyNow": "The company shows 1 matching hiring signal(s), including RevOps Manager.",
"recommendedPersona": "VP Sales, RevOps Lead, COO, Head of Sales Operations",
"outreachAngle": "Lead with CRM implementation cleanup, reporting automation, pipeline process design, and RevOps capacity support.",
"matchedKeywords": ["hubspot", "revops", "revops manager"],
"openRolesCount": 1,
"evidence": [
{
"source": "lever_public_job",
"jobTitle": "RevOps Manager",
"postedAt": "2026-05-20",
"url": "https://jobs.lever.co/Instrumentl/a2c6c454-00a1-4ab0-9c02-cddfffec17b5"
}
],
"status": "qualified"
}

The key-value store also includes:

  • OUTPUT: complete JSON output with summary and results.
  • REPORT: a Markdown report for human review.

Pricing and cost model

Suggested pay-per-event model:

  • apify-actor-start: small automatic start fee.
  • source_dataset_processed: charged when a source dataset is processed.
  • upstream_actor_called: charged once per upstream Actor successfully triggered.
  • job_normalized: charged per normalized job row processed.
  • qualified_account: charged per evidence-backed qualified account.
  • ai_insight: charged when BYOK AI insight generation succeeds.

There are two cost layers:

  1. This Actor's PPE events:

    • apify-actor-start: charged automatically by Apify when the run starts.
    • upstream_actor_called: charged once after this Actor successfully triggers an upstream Actor.
    • job_normalized: charged per normalized job row analyzed by this Actor.
    • qualified_account: charged per evidence-backed account emitted.
    • ai_insight: charged only when BYOK AI generation succeeds.
  2. Upstream Actor charges:

    • Each selected upstream Actor has its own pricing model and may charge separately.
    • This Actor passes maxUpstreamChargeUsdPerSource as maxTotalChargeUsd to each upstream run.
    • This Actor also passes Apify maxItems to each upstream run to cap charged result count for PPR Actors when supported.
    • The default is USD 1.00 per enabled upstream source.
    • maxJobsPerSource is mapped to each upstream Actor's documented input field, but upstream Actors may still interpret limits differently.

Apify Store notes that PPE Actors charge for creator-defined events and that some Actors include platform usage in event prices while others charge it separately. Always check each upstream Actor's Pricing tab before enabling it.

AI provider costs are BYOK by default. If aiProviderApiKey is empty, this Actor does not call an external AI provider and uses deterministic insight text.

Limits

Default public run:

  • runs the LinkedIn Jobs preset with RevOps Manager and United States,
  • requests up to 50 jobs from the default LinkedIn source,
  • caps each upstream Actor run at USD 1.00 through Apify maxTotalChargeUsd,
  • processes up to 100 normalized job rows,
  • emits up to 25 qualified accounts.

Hard caps:

  • maxJobsToProcess: 10000
  • maxResults: 500

Compliance and acceptable use

Use only data you are allowed to process. Respect source website terms, upstream Actor terms, privacy laws, and outreach rules in your jurisdiction. Do not use output for spam, harassment, discriminatory targeting, or unlawful profiling.

Known limits

  • Upstream Actor input schemas and output fields can change; review every selected upstream Actor before production runs.
  • Default run timeout is 300 seconds. The default one-source run is designed for this; if you enable several real upstream sources, increase the run timeout in Apify run options.
  • Company domain extraction depends on source data quality.
  • This Actor does not guarantee personal contact data or verified emails.
  • AI insight text summarizes visible evidence and should be reviewed before use.

Local development

npm install
npm run sample
npm run smoke
npm run mock-upstream
npm test

npm run mock-upstream validates multiple upstream Actor adapters using simulated upstream dataset items. It does not call any upstream Actor.

Apify deployment

This Actor is intended to be prepared privately first. Do not publish automatically.

npx apify-cli@1.6.1 push --version 0.1 --build-tag latest
npx apify-cli@1.6.1 call signalflow_studio/job-posts-to-buying-signals --input-file fixtures/cloud-smoke-input.json --memory 1024 --timeout 180 --json