Company Buying Signals: Hiring, SEC Filings & News
Pricing
from $100.00 / 1,000 why-now packs
Company Buying Signals: Hiring, SEC Filings & News
Find why a company is worth contacting now: hiring spikes, SEC filings and news, ranked with dates and source URLs. Use this when a sales agent needs cited reasons to reach out. From $0.03.
Pricing
from $100.00 / 1,000 why-now packs
Rating
0.0
(0)
Developer
mohamed senator
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Share
Company Why-Now Signals (MCP) — Hiring, SEC Filings, News with Sources
Use this tool when an AI agent (or a person) needs to know why a company is worth contacting right now and wants evidence it can cite: who is hiring and for which senior roles, what the company just filed with the SEC, and what the news says (funding, layoffs, leadership change, M&A, launches, expansion, legal). Input is a company domain (plus an optional name or ticker). Output is compact JSON: an entity with a confidence score, dated signals — each with a source URL, fetch time and confidence — and, in why_now_pack, a ranked top 3 reasons to reach out now with whyNow text and machine-readable actions.

It is a normal pay-per-event (PPE) Actor — not Standby — so it works from the Apify MCP server (https://mcp.apify.com), the API, schedules and agent-payment flows. Everything is built from passive public data (the company's own public pages, public job-board APIs, SEC EDGAR, GDELT). Classification and ranking are rule-based; no LLM is involved, so results are deterministic and every signal can be traced to its source.

Modes (one tool per mode)
mode | Use it to… | Returns |
|---|---|---|
why_now_pack | Get everything and the ranked answer in one call | hiring + filings + news signals, top-3 ranking with evidence, timing score, actions |
hiring | See growth and senior hires | ATS detected, open roles by department/location, new roles since a date, senior and first-in-function hires |
filings | Catch corporate events | recent 8-K, 10-K/10-Q, S-1 and Form D filings with item codes translated to plain English |
news | Catch announced events | GDELT news classified into funding, layoffs, leadership change, M&A, product launch, expansion, legal; syndicated copies merged |
Calling it from an MCP client
{ "tool": "<your-username>/company-why-now-signals", "arguments": { "mode": "why_now_pack", "domain": "acme-widgets.example", "since": "2026-09-01" } }
For scheduled monitoring, pass since = the date of your last run: only signals newer than it are returned (and only those are billed).
Entity resolution comes first
- The homepage is read (respecting
robots.txt): JSON-LDOrganization,og:site_name,<title>, the © line and the domain label give name candidates. - Candidates are matched against SEC
company_tickers.json(and the ticker you pass, if any). Private companies that file Form D are looked up by exact name in EDGAR. entity.confidence(0–1) is the noisy-OR of the evidence weights, listed inentity.evidence(type, value, weight, source). A name you pass is accepted at 0.6 unless the site clearly says something else, in which case the match is flagged and capped at 0.55.
Below 0.6 the match is lowConfidence. Signals that depend on the name (filings and news) are still returned but labelled lowConfidence: true and are never charged; the item gets outcome: "no_match" with reason: "low_confidence_entity_match…". Hiring signals come from the company's own site/ATS and do not depend on the name match. Fix a low-confidence match by passing companyName and/or ticker.
Output at a glance

outcome—found|no_match|unavailable|error. Onlyfoundis ever charged.entity— name, legal name,confidence,lowConfidence,evidence[],sec(CIK, ticker, match type).signals[]—{ id, mode, kind, title, date, strength, confidence, lowConfidence, source{url,fetchedAt}, evidence[], data }.topSignals[](pack) —{ rank, headline, whyNow, date, score, confidence, source, evidence, corroboratedBy }. Ranking = strength × recency (21-day half-life) × confidence, with a bonus when another source corroborates the same event (e.g. funding news + Form D) and a discount for repeating the same kind.actions[]—{ id, priority, type: "reach_out", basedOn, text }.score—{ value 0–100, label hot | warm | cold }timing score from the top signals.sources[]— URL and fetch time for every fact.
The examples below were produced from the project's offline test fixtures for the fictional company "Acme Widgets, Inc." (
acme-widgets.example). They show the exact shape of real output (long arrays are shortened with"..."), not measurements of a real company.
why_now_pack — $0.10
{"domain": "acme-widgets.example","mode": "why_now_pack","outcome": "found","summary": "Acme Widgets (acme-widgets.example): timing hot (75/100). Top reasons to reach out now: 1) 8-K filed 2026-10-02: Executive or board change (5.02, 9.01) [2026-10-02]; 2) Acme Widgets raises $80 million Series C led by Northwind Capital [2026-09-29]; 3) 9 new roles since 2026-09-06 (12 open) on greenhouse [2026-09-30].","checkedAt": "2026-10-06T12:00:00.000Z","windows": {"hiring": "2026-09-06T12:00:00.000Z","filings": "2026-07-08T12:00:00.000Z","news": "2026-09-06T12:00:00.000Z"},"entity": {"name": "Acme Widgets","legalName": "Acme Widgets, Inc.","confidence": 0.99,"lowConfidence": false,"evidence": [{"type": "jsonld_name","value": "Acme Widgets","weight": 0.7},{"type": "jsonld_legal_name","value": "Acme Widgets, Inc.","weight": 0.6},{"type": "og_site_name","value": "Acme Widgets","weight": 0.55},{"type": "sec_name_match","value": "Acme Widgets, Inc.","weight": 0.5},"..."],"sec": {"cik": 1234567,"ticker": "ACMW","title": "Acme Widgets, Inc.","matchType": "name_exact"}},"score": {"value": 75,"label": "hot"},"topSignals": [{"rank": 1,"kind": "exec_change_filing","headline": "8-K filed 2026-10-02: Executive or board change (5.02, 9.01)","whyNow": "Leadership change (2026-10-02): new leaders reassess priorities, teams and vendors in their first months.","date": "2026-10-02","score": 78.5,"confidence": 0.99,"source": {"url": "https://www.sec.gov/Archives/edgar/data/1234567/000123456726000041/acmw-20261001.htm","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["5.02 Director or executive officer departure, election or appointment"],"corroboratedBy": ["news-leadership_change-2026-09-26-1","senior_hire-acme-widgets.example-vp-of-sales"]},{"rank": 2,"kind": "funding","headline": "Acme Widgets raises $80 million Series C led by Northwind Capital","whyNow": "Fresh funding (2026-09-29): new budget and a mandate to scale are likely.","date": "2026-09-29T14:30:00Z","score": 70.3,"confidence": 0.96,"source": {"url": "https://techcrunch.example/acme-widgets-series-c","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["category: funding","publisher: techcrunch.example","syndicated by reuters.example, siliconnews.example"],"corroboratedBy": ["filing-0001234567-26-000038"]},{"rank": 3,"kind": "hiring_surge","headline": "9 new roles since 2026-09-06 (12 open) on greenhouse","whyNow": "Hiring ramp (2026-09-30): teams are scaling and tooling gaps open up.","date": "2026-09-30T13:00:00.000Z","score": 67.6,"confidence": 0.98,"source": {"url": "https://boards.greenhouse.io/acmewidgets","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["Engineering: 4 open","Sales: 3 open","Customer Success: 1 open","new: Data Analyst","new: Senior Software Engineer, Platform"],"corroboratedBy": ["news-expansion-2026-09-18-3"]}],"actions": [{"id": "action-1","priority": "high","type": "reach_out","basedOn": "filing-0001234567-26-000041","text": "Leadership change (2026-10-02): new leaders reassess priorities, teams and vendors in their first months. Reference: \"8-K filed 2026-10-02: Executive or board change (5.02, 9.01)\""},"..."],"signals": ["... 15 signals (see hiring/filings/news modes)"],"hiring": "{ ... section ... }","filings": "{ ... section ... }","news": "{ ... section ... }","sources": [{"url": "https://acme-widgets.example/","fetchedAt": "2026-10-06T12:00:00.000Z"},{"url": "https://www.sec.gov/files/company_tickers.json","fetchedAt": "2026-10-06T12:00:00.000Z"},{"...": "9 more"}]}
hiring — $0.03
The ATS is detected from links on the homepage and careers pages (Greenhouse, Lever, Ashby, Workable, SmartRecruiters). If no link is found, Greenhouse/Workable/SmartRecruiters boards are probed by name and accepted only if the board's own name matches the company.
{"domain": "acme-widgets.example","mode": "hiring","outcome": "found","summary": "Acme Widgets (acme-widgets.example): 5 signals (1 open roles, 1 hiring surge, 1 senior hire, 2 first function hire). Latest: 12 open roles on greenhouse; most in Engineering [2026-10-06].","checkedAt": "2026-10-06T12:00:00.000Z","windows": {"hiring": "2026-09-06T12:00:00.000Z"},"entity": {"name": "Acme Widgets","legalName": "Acme Widgets, Inc.","confidence": 0.99,"lowConfidence": false,"evidence": [{"type": "jsonld_name","value": "Acme Widgets","weight": 0.7},{"type": "jsonld_legal_name","value": "Acme Widgets, Inc.","weight": 0.6},{"type": "og_site_name","value": "Acme Widgets","weight": 0.55},{"type": "sec_name_match","value": "Acme Widgets, Inc.","weight": 0.5},"..."],"sec": {"cik": 1234567,"ticker": "ACMW","title": "Acme Widgets, Inc.","matchType": "name_exact"}},"score": {"value": 49,"label": "warm"},"signals": [{"id": "open-roles-acme-widgets.example","kind": "open_roles","title": "12 open roles on greenhouse; most in Engineering","date": "2026-10-06T12:00:00.000Z","strength": 39,"confidence": 0.95,"lowConfidence": false,"source": {"url": "https://boards.greenhouse.io/acmewidgets","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["Engineering: 4","Sales: 3","Customer Success: 1","Design: 1"]},{"id": "hiring-surge-acme-widgets.example","kind": "hiring_surge","title": "9 new roles since 2026-09-06 (12 open) on greenhouse","date": "2026-09-30T13:00:00.000Z","strength": 73,"confidence": 0.9,"lowConfidence": false,"source": {"url": "https://boards.greenhouse.io/acmewidgets","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["Engineering: 4 open","Sales: 3 open","Customer Success: 1 open","new: Data Analyst","new: Senior Software Engineer, Platform","new: Software Engineer, Backend"]},{"id": "senior_hire-acme-widgets.example-vp-of-sales","kind": "senior_hire","title": "Senior hire: VP of Sales (Sales)","date": "2026-09-22T13:00:00.000Z","strength": 80,"confidence": 0.9,"lowConfidence": false,"source": {"url": "https://boards.greenhouse.io/acmewidgets/jobs/1006","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["VP-level title","location: New York, NY"]},"..."],"hiring": {"ats": {"ats": "greenhouse","token": "acmewidgets","detectedVia": "careers_page_link","boardUrl": "https://boards.greenhouse.io/acmewidgets"},"openRoles": 12,"byDepartment": [{"name": "Engineering","count": 4},{"name": "Sales","count": 3},{"name": "Customer Success","count": 1},"..."],"byLocation": [{"name": "New York, NY","count": 3},{"name": "Remote - US","count": 3},"..."],"window": {"since": "2026-09-06T12:00:00.000Z","basis": "posted"},"newRolesCount": 9,"newRoles": [{"title": "Data Analyst","department": "Engineering","location": "Remote - US","url": "https://boards.greenhouse.io/acmewidgets/jobs/1011","postedAt": "2026-09-30T13:00:00.000Z"},{"title": "Senior Software Engineer, Platform","department": "Engineering","location": "San Francisco, CA","url": "https://boards.greenhouse.io/acmewidgets/jobs/1001","postedAt": "2026-09-28T13:00:00.000Z"},"..."],"seniorRoles": [{"title": "VP of Sales","department": "Sales","level": "vp","firstInFunction": false,"reasons": ["VP-level title"]},{"title": "Head of Security","department": "Security","level": "head_of","firstInFunction": true,"reasons": ["\"Head of\" title","only 1 open role in Security (first-in-function)"]},{"title": "Founding Marketing Manager, EMEA","department": "Marketing","level": "founding","firstInFunction": true,"reasons": ["founding / first-hire role"]},"..."]},"sources": [{"url": "https://acme-widgets.example/","fetchedAt": "2026-10-06T12:00:00.000Z"},{"url": "https://www.sec.gov/files/company_tickers.json","fetchedAt": "2026-10-06T12:00:00.000Z"},{"...": "7 more"}]}
Seniority is classified from titles (C-level, VP, Head of, Director, Founding/First …); a senior role in a department with at most two open roles is flagged firstInFunction. Dates: Lever/Ashby/Workable/SmartRecruiters give a publish date; Greenhouse gives first_published when available, otherwise updated_at — then window.basis is "updated" and signals say so.
filings — $0.03
Reads EDGAR submissions JSON with the SEC-required User-Agent (contact from SEC_CONTACT_EMAIL) and a request throttle well under SEC's 10 requests/second.
{"domain": "acme-widgets.example","mode": "filings","outcome": "found","summary": "Acme Widgets (acme-widgets.example): 5 signals (1 exec change filing, 1 financing filing, 1 periodic report, 1 earnings filing, 1 private financing filing). Latest: 8-K filed 2026-10-02: Executive or board change (5.02, 9.01) [2026-10-02].","checkedAt": "2026-10-06T12:00:00.000Z","windows": {"filings": "2026-07-08T12:00:00.000Z"},"entity": {"name": "Acme Widgets","legalName": "Acme Widgets, Inc.","confidence": 0.99,"lowConfidence": false,"evidence": [{"type": "jsonld_name","value": "Acme Widgets","weight": 0.7},{"type": "jsonld_legal_name","value": "Acme Widgets, Inc.","weight": 0.6},{"type": "og_site_name","value": "Acme Widgets","weight": 0.55},{"type": "sec_name_match","value": "Acme Widgets, Inc.","weight": 0.5},"..."],"sec": {"cik": 1234567,"ticker": "ACMW","title": "Acme Widgets, Inc.","matchType": "name_exact"}},"score": {"value": 52,"label": "warm"},"signals": [{"id": "filing-0001234567-26-000041","kind": "exec_change_filing","title": "8-K filed 2026-10-02: Executive or board change (5.02, 9.01)","date": "2026-10-02","strength": 80,"confidence": 0.95,"lowConfidence": false,"source": {"url": "https://www.sec.gov/Archives/edgar/data/1234567/000123456726000041/acmw-20261001.htm","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["5.02 Director or executive officer departure, election or appointment"]},{"id": "filing-0001234567-26-000038","kind": "financing_filing","title": "8-K filed 2026-09-18: Financing (1.01, 3.02, 9.01)","date": "2026-09-18","strength": 80,"confidence": 0.95,"lowConfidence": false,"source": {"url": "https://www.sec.gov/Archives/edgar/data/1234567/000123456726000038/acmw-20260917.htm","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["1.01 Entered into a material definitive agreement","3.02 Unregistered sale of equity securities (private financing)"]},"..."],"filings": {"status": "ok","company": {"cik": 1234567,"name": "Acme Widgets, Inc.","tickers": ["ACMW"],"matchType": "name_exact"},"countsByForm": {"8-K": 3,"10-Q": 1,"D": 1},"filings": [{"form": "8-K","filedAt": "2026-10-02","items": [{"code": "5.02","label": "Director or executive officer departure, election or appointment","category": "exec_change"},{"code": "9.01","label": "Financial statements and exhibits","category": "other"}],"events": ["exec_change"],"url": "https://www.sec.gov/Archives/edgar/data/1234567/000123456726000041/acmw-20261001.htm"},{"form": "8-K","filedAt": "2026-09-18","items": [{"code": "1.01","label": "Entered into a material definitive agreement","category": "material_agreement"},{"code": "3.02","label": "Unregistered sale of equity securities (private financing)","category": "financing"},{"code": "9.01","label": "Financial statements and exhibits","category": "other"}],"events": ["material_agreement","financing"],"url": "https://www.sec.gov/Archives/edgar/data/1234567/000123456726000038/acmw-20260917.htm"},"..."]},"sources": [{"url": "https://acme-widgets.example/","fetchedAt": "2026-10-06T12:00:00.000Z"},{"url": "https://www.sec.gov/files/company_tickers.json","fetchedAt": "2026-10-06T12:00:00.000Z"},{"...": "1 more"}]}
8-K item codes are translated (e.g. 5.02 → executive/board change, 2.01 → M&A, 1.01/3.02 → agreement/private financing, 2.05 → restructuring, 1.05 → cybersecurity incident). 8-Ks that only carry exhibits (9.01) or Reg FD text are not turned into signals.
news — $0.03
GDELT DOC 2.0, queried for the company name and domain. Articles that mention the company neither in the headline nor in the URL/publisher are dropped as noise; headlines are classified by keyword rules; syndicated copies (same headline after stripping publisher suffixes and money formats, or ≥ 80 % token overlap) are merged into the earliest article with alsoReportedBy.
{"domain": "acme-widgets.example","mode": "news","outcome": "found","summary": "Acme Widgets (acme-widgets.example): 5 signals (1 funding, 1 leadership change, 1 product launch, 1 expansion, 1 m and a). Latest: Acme Widgets raises $80 million Series C led by Northwind Capital [2026-09-29].","checkedAt": "2026-10-06T12:00:00.000Z","windows": {"news": "2026-09-06T12:00:00.000Z"},"entity": {"name": "Acme Widgets","legalName": "Acme Widgets, Inc.","confidence": 0.99,"lowConfidence": false,"evidence": [{"type": "jsonld_name","value": "Acme Widgets","weight": 0.7},{"type": "jsonld_legal_name","value": "Acme Widgets, Inc.","weight": 0.6},{"type": "og_site_name","value": "Acme Widgets","weight": 0.55},{"type": "sec_name_match","value": "Acme Widgets, Inc.","weight": 0.5},"..."],"sec": {"cik": 1234567,"ticker": "ACMW","title": "Acme Widgets, Inc.","matchType": "name_exact"}},"score": {"value": 47,"label": "warm"},"signals": [{"id": "news-funding-2026-09-29-0","kind": "funding","title": "Acme Widgets raises $80 million Series C led by Northwind Capital","date": "2026-09-29T14:30:00Z","strength": 80,"confidence": 0.88,"lowConfidence": false,"source": {"url": "https://techcrunch.example/acme-widgets-series-c","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["category: funding","publisher: techcrunch.example","syndicated by reuters.example, siliconnews.example"]},{"id": "news-leadership_change-2026-09-26-1","kind": "leadership_change","title": "Acme Widgets appoints Jane Roe as Chief Financial Officer","date": "2026-09-26T12:00:00Z","strength": 75,"confidence": 0.7,"lowConfidence": false,"source": {"url": "https://businesswire.example/acme-cfo","fetchedAt": "2026-10-06T12:00:00.000Z"},"evidence": ["category: leadership_change","publisher: businesswire.example"]},"..."],"news": {"query": "(\"Acme Widgets\" OR \"acme-widgets.example\") sourcelang:english","totals": {"articles": 12,"relevant": 10,"classified": 9,"afterDedupe": 7,"unclassified": 1},"byCategory": {"funding": 1,"leadership_change": 1,"product_launch": 1,"expansion": 1,"m_and_a": 1,"legal": 1,"layoffs": 1},"events": [{"category": "funding","title": "Acme Widgets raises $80 million Series C led by Northwind Capital","publisher": "techcrunch.example","date": "2026-09-29T14:30:00Z","confidence": 0.88,"alsoReportedBy": ["reuters.example","siliconnews.example"],"copies": 2},{"category": "leadership_change","title": "Acme Widgets appoints Jane Roe as Chief Financial Officer","publisher": "businesswire.example","date": "2026-09-26T12:00:00Z","confidence": 0.7,"alsoReportedBy": [],"copies": 0},{"category": "product_launch","title": "Acme Widgets launches Widget Pro 2 for enterprise teams","publisher": "acme-widgets.example","date": "2026-09-20T09:00:00Z","confidence": 0.7,"alsoReportedBy": [],"copies": 0},"..."]},"sources": [{"url": "https://acme-widgets.example/","fetchedAt": "2026-10-06T12:00:00.000Z"},{"...": "2 more"}]}
Pricing
Pay-per-event, per company. You pay only when an item has outcome: "found": at least one confident signal. No data, low-confidence-only results, unreachable sources, errors and invalid input cost $0.
| Mode | Event | Price per company |
|---|---|---|
hiring | hiring-signals | $0.03 |
filings | filing-signals | $0.03 |
news | news-signals | $0.03 |
why_now_pack | why-now-pack | $0.10 |
why_now_pack is charged once ($0.10, not the sum of three modes) when at least one of its signals is confident.
Spending limits. The Actor respects your run's maximum cost. When it is reached the run stops cleanly: the item that would exceed it is not delivered or charged, remaining companies are returned as outcome: "unavailable" with stoppedReason: "max_total_charge_reached", and the run summary says so.
Input
| Field | Default | Max | Notes |
|---|---|---|---|
mode | why_now_pack | see above | |
domain | company domain, e.g. stripe.com | ||
companyName | optional, improves entity resolution | ||
ticker | optional US ticker | ||
companies | 25 items | bulk: strings or {domain, companyName, ticker} | |
since | 365 days back | return only newer signals (YYYY-MM-DD / ISO). Default windows: 30 d hiring and news, 90 d filings. News looks back at most ~90 days | |
maxCompanies | 10 | 25 | |
maxNewsArticles | 100 | 250 | |
maxFilings | 30 | 100 | |
maxJobs | 1000 | 3000 | |
maxConcurrency | 3 | 5 | |
requestTimeoutSecs | 12 | 30 | every request has a timeout and is retried with backoff |
Empty input runs a fast demo on example.com.
Environment variables (set as secret environment variables in Actor settings; none is a key, none is required): SEC_CONTACT_EMAIL — the contact address sent in the SEC User-Agent (SEC asks for one; defaults to a placeholder, which SEC may throttle).
Data sources and etiquette
The company's public pages (robots.txt honoured; SSRF-guarded), public job-board APIs of Greenhouse, Lever, Ashby, Workable and SmartRecruiters, SEC EDGAR (company_tickers.json, submissions, company search for Form D filers), and GDELT DOC 2.0. No login, no paywalled sources, no scraping of job-board HTML. Descriptive User-Agent (CompanyWhyNowBot/…); SEC requests use the SEC-required form CompanyWhyNowSignals/0.1 (<contact>).
Limitations
- Coverage: hiring needs a supported public ATS (many companies use others, e.g. Workday, iCIMS, custom pages — those return
no_match). SEC filings cover US registrants (and Form D filers found by exact name); foreign private issuers (6-K/20-F) are not covered. - Entity resolution is heuristic. Common names, rebrands and holding structures can resolve wrongly; check
entity.confidenceandentity.evidence, and passcompanyName/tickerfor anything below 0.9 that matters. - News is keyword-classified from headlines only (no article text, no LLM). Expect misses and occasional false positives;
confidencereflects keyword strength, not truth. GDELT is a global aggregator with uneven coverage and a ~90-day lookback, and is occasionally slow or rate-limited (reported asunavailable, not charged). - Dates: Greenhouse boards without
first_publishedexpose only last-updated times; roles can look "new" because they were edited. - Senior/first-in-function detection is title-based. The ranking weights and keyword rules are fixed and documented here, not tuned per customer.
- No contact details, no people data, no private-company financials.
Related Actors
- Google Trends Scraper: Bulk Compare 100+ Keywords: see whether search interest in the companies you track is rising, with up to 500 names on one Google Trends scale.
- YouTube Transcripts for AI: bulk YouTube transcripts from videos, channels and search as text, Markdown and RAG chunks.
Feedback
Something not working, or a feature you need? Open an issue in the Issues tab with your input and I'll take a look. If the Actor saves you time, a short review on its Store page helps other people find it.
Local development
npm cinpm run build && npm run lint && npm test # offline unit tests with fixturesSEC_CONTACT_EMAIL=you@yourdomain.com npm run smoke # live: every mode against 3 real companiesapify run # default input = example.com demo