B2B Sales Triggers - Hiring Surge, Funding, Press, Exec Changes
Pricing
from $10.00 / 1,000 company records
B2B Sales Triggers - Hiring Surge, Funding, Press, Exec Changes
B2B intent data aggregator. For a list of target companies, computes: hiring surge (LinkedIn delta), funding rounds, press mentions, executive changes, tech stack adoption, recent patent filings, customer mentions. Composite trigger score per company. For SDR teams.
Pricing
from $10.00 / 1,000 company records
Rating
0.0
(0)
Developer
Seibs.co
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
4
Monthly active users
12 days ago
Last modified
Categories
Share
B2B Sales Triggers
TL;DR for SDR teams and RevOps building outbound on intent signals: Watches a list of target companies for buying triggers (funding rounds, exec hires, layoffs, M&A, product launches, expansion press) and returns each trigger pre-scored with date, source, summary, and outreach angle. Compared to Apollo or ZoomInfo intent feeds at $0.50-$1.00 per record, this returns the raw triggers underneath (news, LinkedIn, press releases) at $0.02-$0.05 per company per run with full evidence text. Free Apify plan handles small target lists on your $5 platform credit. PPE charges scale linearly with companies x signals. Upgrade to Apify Starter ($49/mo) for production cadence.
Run it in 30 seconds
# Via the Apify Python SDKfrom apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("seibs.co/b2b-sales-triggers").call(run_input={"companies": ["Stripe","Anthropic","Notion"],"lookback_days": 30,"min_trigger_score": 0.5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Or via curl:
curl -X POST "https://api.apify.com/v2/acts/seibs.co~b2b-sales-triggers/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"companies": ["Stripe", "Anthropic", "Notion"], "lookback_days": 30, "min_trigger_score": 0.5}'
Or click "Try for free" on this page if you prefer the no-code UI.
What you get
Each run produces:
- A clean dataset, filterable in the Apify console and downloadable as CSV or JSON
- An OUTPUT.html dashboard preview of your top records
- A sample-output preview at ./.actor/sample-output.json
Per-archetype custom artifacts shipped with this actor:
- top-triggers.csv (ranked by trigger_score, with outreach_angle column)
- outreach-templates.html (per-trigger-type cold email with copy buttons)
- trigger-timeline.csv (chronological view per company for sequencing)
What does B2B Sales Triggers do?
Feed it a list of target companies (mix of names and domains). For each company it runs eight independent intent detectors against public sources (LinkedIn jobs, TechCrunch RSS, Google News, SEC EDGAR 8-Ks, homepage HTML, crt.sh certificate transparency, PatentsView, Google web search) and returns a composite 0-1 trigger score with the raw evidence per signal. composite_trigger_score >= 0.6 flags a high-intent alert ready for SDR action.
Features
- Eight independent intent signals (any failing signal never blocks the others).
- Composite trigger score normalized by enabled-signal weight, so disabling a signal does not dilute the result.
top_triggersranks the firing signals descending by score - the SDR sees the "why" at a glance.- Server-side
min_trigger_scorefloor drops noise before emit. - Domain normalization to eTLD+1 + LinkedIn slug resolver with manual-override input for hard-to-resolve companies.
- Concurrency-controlled (1-8 companies in parallel) with per-request timeouts.
Use cases
- SDR / outbound teams prioritizing a daily call list out of a 10K-account TAM.
- RevOps / sales engineering enriching MQLs with intent context before queue assignment.
- Founders running founder-led sales who want a Monday-morning hit list.
- Lifecycle / customer-marketing teams looking for expansion signals on existing accounts.
- Competitive intel teams tracking funded competitors who are now hiring at scale.
FAQ
Q: Is this legal? A: Yes - every signal source is public-web data: LinkedIn jobs pages, TechCrunch RSS, Google News HTML, SEC EDGAR filings, company homepages, crt.sh certificate transparency logs, PatentsView's free public API, and Google web search. No paid databases, no scraped private endpoints.
Q: Why might a run fail?
A: (1) LinkedIn slug resolution failure when the company's slug differs from its display name - fix with linkedin_company_url_overrides. (2) Datacenter proxy rate-limiting - keep RESIDENTIAL with US country code. (3) Concurrency too high on a small TAM - drop to 2-4 for cleaner Google News results.
Q: How fresh is the data?
A: Live at crawl time. lookback_days controls how far back each signal looks (default 90), but the fetch itself is real-time. Funding news typically lands within hours of announcement; 8-K filings show within a day.
Q: Can I schedule this daily or weekly? A: Yes - daily for high-priority watchlists (named accounts you want fresh intent on), weekly for the broader TAM. Use Apify Schedules and feed the output into your SDR queue via webhook.
Q: How do I push results into a CRM?
A: The output is account-level intent enrichment - drop it onto leads in HubSpot, Salesforce, Pipedrive, or Apollo via Zapier/Make/n8n. composite_trigger_score makes a clean custom field for queue prioritization. Webhook the high-intent alerts straight to a Slack channel.
Q: How accurate is the trigger score?
A: It is a heuristic 0-1 composite of 8 independent public-web signals, normalized by the sum of enabled-signal weights. Treat >= 0.6 as a high-intent threshold (worth a manual look or auto-cadence trigger), >= 0.8 as drop-everything-and-call. It is not predictive ML - it is a transparent, explainable additive score where top_triggers always tells you why a company ranked where it did.
Q: Will this scrape Bombora / 6sense / ZoomInfo? A: No - public web only. We do not touch paid intent providers.
Q: How does PPE pricing actually work here? A: $0.01 per company processed (always), $0.02 per high-intent alert (composite >= 0.6), $0.005 per signal that scored >= 0.5. A typical 1000-account list is roughly $10 base plus alerts on the ~10-20% with meaningful intent.
Related Actors
- ../sec-edgar-intel/ - deeper 8-K, 10-K, S-1, and insider-trading parsing when SEC filings are your highest-signal source.
- ../reddit-topic-watcher/ - layer Reddit recommendation-request and alternative-seek leads on top of company-level intent.
- Pair with any of the 15 lead-finder actors (e.g.
home-services-lead-finder,houzz-contractor-leads,shopify-store-discovery,contract-heavy-smb-lead-finder) - those find the fit; this actor scores the intent. Run lead-finder first, feed the company list into this actor'scompaniesinput.
Integrations
- Zapier - push to HubSpot/Salesforce/Pipedrive/Apollo/Klaviyo
- Make.com - workflow automation
- n8n - self-hosted automation
- Apify webhooks - POST to your endpoint
- API + dataset export (JSON/CSV/Excel/XML)
- MCP / AI agents - call from Claude/GPT/LangChain
Signals
| Signal | What it means | Source |
|---|---|---|
hiring_surge | Open LinkedIn roles classified by department | LinkedIn /company/ |
funding | Recent round, amount, lead investors | TechCrunch + Crunchbase News RSS |
press_mentions | Recent news count + sentiment hint | Google News HTML search |
exec_change | C-suite arrivals + departures | SEC 8-K full-text + Google News fallback |
tech_stack_change | Marketing / sales / analytics SaaS detected on homepage | Homepage HTML + headers |
domain_changes | New subdomains + DNS snapshot | crt.sh certificate transparency + DNS |
patent_filings | Filings in last N days by assignee | PatentsView free API |
customer_mentions | Sites declaring "powered by / built with / using | Google web HTML search |
Composite scoring
funding 0.22hiring_surge 0.18exec_change 0.15press_mentions 0.10patent_filings 0.10tech_stack_change 0.10customer_mentions 0.08domain_changes 0.07
Score is normalized by the sum of weights of enabled signals, then clamped to [0, 1]. >= 0.6 = high-intent alert.
Input
See .actor/INPUT_SCHEMA.json. Sample:
{"companies": ["Stripe", "openai.com", "Anthropic"],"enabled_signals": ["hiring_surge", "funding", "press_mentions", "exec_change"],"lookback_days": 90,"min_trigger_score": "0.3","concurrency": 4,"use_apify_proxy": true,"apify_proxy_groups": ["RESIDENTIAL"],"apify_proxy_country": "US"}
Output
Sample output: ./.actor/sample-output.json â€" copy-paste-ready preview of real-looking records.
First record inline:
{"company_name": "Gravity Forms, Inc.","normalized_domain": "gravityforms.example","linkedin_url": "https://www.linkedin.com/company/gravity-forms-example","scraped_at": "2026-05-13T23:01:14Z","available": true,"reason": null,"triggers": {"hiring_surge": {"open_role_count": 38,"role_distribution": {"engineering": 18,"sales": 11,"marketing": 4,"ops": 2,"hr": 2,"other": 1},"surge_signal": true,"score": 0.92},"funding": {"latest_round_type": "Series C","latest_amount_usd": 65000000,"latest_date": "2026-04-22","investors": ["Insight Partners","Tiger Global","Bessemer Venture Partners"],"source_url": "https://example-news.com/gravity-forms-65m-series-c","score": 0.95},"press_mentions": {"mentions_count": 14,"top_articles": [{"title": "Gravity Forms raises $65M to expand enterprise SaaS","url": "https://example-news.com/gravity-forms-65m","date": "2026-04-22","sentiment_hint": "positive"},{"title": "Forms platform Gravity adds 80 engineers, signals enterprise push","url": "https://example-tech.com/gravity-hiring-surge","date": "2026-05-02","sentiment_hint": "positive"}],"keywords_matched": ["raises","expand","hiring"],"score": 0.78},"exec_change": {"departures": [],"arrivals": ["Maya Lindgren \u2014 Chief Revenue Officer (formerly Stripe)"],"source_filing_or_url": "https://www.linkedin.com/in/maya-lindgren-example","score": 0.71},"tech_stack_change": {"added": ["segment","snowflake","amplitude"],"removed_suspected": [],"score": 0.42},"domain_changes": {"new_subdomains": ["enterprise.gravityforms.example","trust.gravityforms.example"],"record_changes": [{"type": "MX","value": "aspmx.l.google.com"}],"score": 0.55},"patent_filings": {"recent_filing_count": 0,"cpc_clusters": [],"sample_titles": [],"score": 0.0},"customer_mentions": {"mention_count": 4,"mention_urls": ["https://example-press.com/zendesk-now-on-gravity"],"score": 0.32}},"composite_trigger_score": 0.81,"top_triggers": ["funding","hiring_surge","press_mentions","exec_change","domain_changes"]}
One record per company that passes the score floor:
{"company_name": "Stripe","normalized_domain": "stripe.com","linkedin_url": "https://www.linkedin.com/company/stripe","scraped_at": "2026-05-14T12:00:00Z","available": true,"triggers": {"hiring_surge": {"open_role_count": 248, "score": 0.91},"funding": {"latest_round_type": "Series I", "latest_amount_usd": 6500000000, "score": 0.85},"press_mentions": {"mentions_count": 42, "score": 0.66}},"composite_trigger_score": 0.78,"top_triggers": ["hiring_surge", "funding", "press_mentions"]}
Pricing
Pay-per-event:
$0.010per company processed (always charged).$0.020per high-intent alert (composite >= 0.6).$0.005per signal that scored >= 0.5.
A typical SDR-prioritized account costs roughly $0.02 - $0.06 to enrich. A list of 1000 accounts costs ~$10 base plus alerts and enrichments on the ~10-20% with meaningful intent.
FAQ
Q: Do I need a residential proxy? A: For LinkedIn jobs and Google News yes - datacenter IPs get challenged. RESIDENTIAL with US country code is the default.
Q: Why is tech_stack_change.removed_suspected always empty?
A: Detecting removals requires a prior snapshot we do not store. The current-state stack is detected; you can run the actor weekly and diff stack arrays on your side.
Q: Will this scrape Bombora / 6sense / ZoomInfo? A: No - public web only. We do not scrape paid intent providers.
Q: A company I expect to score high came back with 0.0. Why?
A: Most often: LinkedIn slug resolution failed because the company's slug differs from its name. Use linkedin_company_url_overrides to pin the slug. Also verify proxy session is not being rate-limited.
Save your input as an Apify Task
Apify Tasks let you save a configured input once and re-run it with a single click - no need to re-type search terms, locations, filters, or tier settings every time. Tasks are the foundation for everything that comes next: schedules, monitor mode, and webhook routing all attach to a saved Task, not to the raw actor.
Steps to save your current input as a Task:
- On this actor's Apify Store page, click
Runwith your input fully configured. - Click the
Save as taskbutton at the top of the run page. - Name the task something memorable (e.g.
SaaS hiring triggers - daily). - Reload the task page and click
Startanytime to re-run with the same inputs.
Tasks unlock the next two features below: scheduling and monitor mode.
Run this weekly with Apify Schedules
Apify Schedules cron-run any saved Task automatically. Pair this with the saved Task above and you get hands-off recurring runs with no manual clicks, no missed weeks, and a steady stream of fresh data into your CRM or warehouse.
Steps to schedule a Task:
- Save your input as a Task (see above).
- Go to https://console.apify.com/schedules and click
Create new schedule. - Pick your Task and set the cron expression. Common patterns:
- Daily at 9am UTC:
0 9 * * * - Weekly on Mondays at 9am:
0 9 * * 1 - Monthly on the 1st:
0 9 1 * *
- Daily at 9am UTC:
- Save. Apify will run your Task on that schedule automatically, push the dataset to whatever integrations you have wired up, and fire run-completion webhooks for downstream automation.
Run daily to catch hiring spikes, funding rounds, and exec changes the morning they go public.
Monitor mode (v2, beta)
Monitor mode is the v2 evolution of this actor and is currently in BETA. It turns a recurring schedule into a true change-feed instead of a firehose of duplicate records.
How it works:
- When this actor runs under an Apify Schedule, monitor mode is enabled automatically.
- Instead of emitting ALL records every run, it emits ONLY records that are NEW or CHANGED since the last scheduled run.
- A digest record summarizes the delta (X new, Y changed, Z removed) at the top of every run.
- Optional: provide a Slack or email webhook URL in the
monitor_webhook_urlinput field and the digest fires there too, so your team gets the delta in their inbox or channel without polling the dataset. - Cost: a single
scheduled_delta_runevent ($0.05) per scheduled run, plus standard PPE on emitted delta records only. Predictable monthly cost, no surprise bills from re-charging for unchanged records.
Monitor mode is rolling out to the top 3 actors first (this one included if it's hotel-motel-lead-finder, google-maps-reviews-pro, or mcp-accounting-firm-leads). Full portfolio coverage by end of June.
Support
Open an issue on the actor's GitHub or contact via Apify Store. Include the run ID and input config.
Changelog
See ./CHANGELOG.md.
Found this useful?
If this actor saved you time or money, please consider leaving a quick review on the Apify Store. Reviews help other buyers find work that solves their problem and let me prioritize the features paying customers actually use. Leave a review: https://apify.com/seibs.co/b2b-sales-triggers#reviews