Dataspryva

Company Intent Scorer: Hiring, Funding & News Signals

Grade a list of companies A-D on real buying-readiness signals - hiring activity, funding events, and news momentum - with a plain-English reason behind every score for sales prioritization.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringoptionalScore every company, or compare this run with the previous run for the same monitor key.
companiesTextstringoptionalPaste company names, one per line. Domains and careers URLs are accepted in the advanced list below.
companiesarrayoptionalAdvanced list. Each item can include companyName (or name), domain, careersUrl, ats, atsToken and disambiguator. Plain strings are also accepted. If provided, this overrides the text list.
Show all input fields
FieldTypeRequiredDescription
modestringoptionalScore every company, or compare this run with the previous run for the same monitor key.
companiesTextstringoptionalPaste company names, one per line. Domains and careers URLs are accepted in the advanced list below.
companiesarrayoptionalAdvanced list. Each item can include companyName (or name), domain, careersUrl, ats, atsToken and disambiguator. Plain strings are also accepted. If provided, this overrides the text list.
signalsarrayoptionalBuying signals to check. Disabling a scored signal normalizes the remaining weights to 100.
lookbackDaysintegeroptionalFunding, news and executive-change window. News trend counts also cover 7, 30 and 90 days.
minScoreintegeroptionalDrop scored companies below this intent score. Error records are always kept.
targetTechnologystringoptionalOptional technology to check on the company homepage, e.g. HubSpot or Marketo. The gap result does not change the intent score.
includeRawSignalsbooleanoptionalIn full output, add sample job titles and the top news headlines for auditing.
outputFormatstringoptionalcompact returns ranking fields plus top signals. full adds the score breakdown and per-signal detail.
maxCompaniesintegeroptionalHard cap on companies processed per run.
maxConcurrencyintegeroptionalHow many companies to process in parallel. Lower values are gentler on public sources.
monitorKeystringoptional(mode=monitor) Name of the tracking history. Use the same key each run to compare against the previous snapshot.
emitUnchangedbooleanoptional(mode=monitor) Include companies with no new or resolved signals and no score change.

Download the published input schema

View complete JSON
{
  "description": "Choose score or monitor, paste companies, and select the buying signals to check.",
  "properties": {
    "companies": {
      "description": "Advanced list. Each item can include companyName (or name), domain, careersUrl, ats, atsToken and disambiguator. Plain strings are also accepted. If provided, this overrides the text list.",
      "editor": "json",
      "items": {
        "properties": {
          "ats": {
            "description": "Optional provider name when you already know it: greenhouse, ashby, lever, workable, smartrecruiters, recruitee, personio, breezy or workday.",
            "title": "ATS provider",
            "type": "string"
          },
          "atsToken": {
            "description": "Optional board token for the provider, e.g. the token in jobs.ashbyhq.com/linear.",
            "title": "ATS token",
            "type": "string"
          },
          "careersUrl": {
            "description": "Optional careers page or job-board URL, e.g. https://jobs.lever.co/acme.",
            "title": "Careers URL",
            "type": "string"
          },
          "companyName": {
            "description": "The company's legal or brand name.",
            "title": "Company Name",
            "type": "string"
          },
          "disambiguator": {
            "description": "Optional word that must appear in news headlines, e.g. software for a common-word company name.",
            "title": "Disambiguator",
            "type": "string"
          },
          "domain": {
            "description": "Optional root domain, e.g. notion.so. Avoids domain lookup.",
            "title": "Domain",
            "type": "string"
          },
          "name": {
            "description": "Alias for companyName.",
            "title": "Name (alias)",
            "type": "string"
          }
        },
        "type": "object"
      },
      "title": "Companies (advanced)",
      "type": "array"
    },
    "companiesText": {
      "description": "Paste company names, one per line. Domains and careers URLs are accepted in the advanced list below.",
      "editor": "textarea",
      "prefill": "Figma\nNotion\nLinear",
      "title": "Companies (one per line)",
      "type": "string"
    },
    "emitUnchanged": {
      "default": false,
      "description": "(mode=monitor) Include companies with no new or resolved signals and no score change.",
      "prefill": false,
      "title": "Emit unchanged companies",
      "type": "boolean"
    },
    "includeRawSignals": {
      "default": false,
      "description": "In full output, add sample job titles and the top news headlines for auditing.",
      "prefill": false,
      "title": "Include raw evidence",
      "type": "boolean"
    },
    "lookbackDays": {
      "default": 90,
      "description": "Funding, news and executive-change window. News trend counts also cover 7, 30 and 90 days.",
      "maximum": 365,
      "minimum": 7,
      "prefill": 90,
      "title": "Lookback days",
      "type": "integer"
    },
    "maxCompanies": {
      "default": 100,
      "description": "Hard cap on companies processed per run.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max companies",
      "type": "integer"
    },
    "maxConcurrency": {
      "default": 3,
      "description": "How many companies to process in parallel. Lower values are gentler on public sources.",
      "maximum": 10,
      "minimum": 1,
      "prefill": 3,
      "title": "Max concurrency",
      "type": "integer"
    },
    "minScore": {
      "default": 0,
      "description": "Drop scored companies below this intent score. Error records are always kept.",
      "maximum": 100,
      "minimum": 0,
      "prefill": 0,
      "title": "Minimum score",
      "type": "integer"
    },
    "mode": {
      "default": "score",
      "description": "Score every company, or compare this run with the previous run for the same monitor key.",
      "editor": "select",
      "enum": [
        "score",
        "monitor"
      ],
      "enumTitles": [
        "Score companies",
        "Monitor changes since previous run"
      ],
      "prefill": "score",
      "title": "Mode",
      "type": "string"
    },
    "monitorKey": {
      "description": "(mode=monitor) Name of the tracking history. Use the same key each run to compare against the previous snapshot.",
      "editor": "textfield",
      "title": "Monitor key",
      "type": "string"
    },
    "outputFormat": {
      "default": "compact",
      "description": "compact returns ranking fields plus top signals. full adds the score breakdown and per-signal detail.",
      "editor": "select",
      "enum": [
        "compact",
        "full"
      ],
      "enumTitles": [
        "Compact (ranking)",
        "Full (all signal detail)"
      ],
      "prefill": "compact",
      "title": "Output format",
      "type": "string"
    },
    "signals": {
      "default": [
        "hiring",
        "funding",
        "news",
        "execChanges",
        "layoffs",
        "techStack"
      ],
      "description": "Buying signals to check. Disabling a scored signal normalizes the remaining weights to 100.",
      "editor": "select",
      "items": {
        "enum": [
          "hiring",
          "funding",
          "news",
          "execChanges",
          "layoffs",
          "techStack"
        ],
        "enumTitles": [
          "Hiring (ATS boards)",
          "Funding (SEC Form D + press)",
          "News momentum",
          "Executive changes",
          "Layoffs / risk",
          "Tech stack enrichment"
        ],
        "type": "string"
      },
      "prefill": [
        "hiring",
        "funding",
        "news",
        "execChanges",
        "layoffs",
        "techStack"
      ],
      "title": "Signals",
      "type": "array",
      "uniqueItems": true
    },
    "targetTechnology": {
      "description": "Optional technology to check on the company homepage, e.g. HubSpot or Marketo. The gap result does not change the intent score.",
      "editor": "textfield",
      "title": "Target technology",
      "type": "string"
    }
  },
  "required": [],
  "schemaVersion": 1,
  "title": "B2B Sales Trigger Intelligence Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
companiesstringoptionalOne record per company with score, grade, signals and evidence; company_error records when all enabled sources fail.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Graded company records with hiring, funding, news, executive-change, layoff and technology evidence, plus monitor diffs.",
  "properties": {
    "companies": {
      "description": "One record per company with score, grade, signals and evidence; company_error records when all enabled sources fail.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "Company intent records",
      "type": "string"
    }
  },
  "title": "Company Intent Scorer: Hiring, Funding & News Signals Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "description": "Graded company records with hiring, funding, news, executive-change, layoff and technology evidence, plus monitor diffs.",
  "title": "Company Intent Scorer: Hiring, Funding & News Signals Output",
  "views": {
    "funding": {
      "display": {
        "component": "table",
        "properties": {
          "companyName": {
            "format": "text",
            "label": "Company"
          },
          "fundingSignal": {
            "format": "object",
            "label": "Funding"
          }
        }
      },
      "title": "Funding Signals",
      "transformation": {
        "fields": [
          "companyName",
          "fundingSignal"
        ]
      }
    },
    "hiring": {
      "display": {
        "component": "table",
        "properties": {
          "ats": {
            "format": "text",
            "label": "ATS"
          },
          "careersUrl": {
            "format": "text",
            "label": "Careers"
          },
          "companyName": {
            "format": "text",
            "label": "Company"
          },
          "hiringSignal": {
            "format": "object",
            "label": "Hiring"
          }
        }
      },
      "title": "Hiring Signals",
      "transformation": {
        "fields": [
          "companyName",
          "ats",
          "careersUrl",
          "hiringSignal"
        ]
      }
    },
    "monitor": {
      "display": {
        "component": "table",
        "properties": {
          "companyName": {
            "format": "text",
            "label": "Company"
          },
          "grade": {
            "format": "text",
            "label": "Grade"
          },
          "monitor": {
            "format": "object",
            "label": "Changes"
          },
          "score": {
            "format": "number",
            "label": "Score"
          }
        }
      },
      "title": "Monitor Changes",
      "transformation": {
        "fields": [
          "companyName",
          "grade",
          "score",
          "monitor"
        ]
      }
    },
    "news": {
      "display": {
        "component": "table",
        "properties": {
          "companyName": {
            "format": "text",
            "label": "Company"
          },
          "newsSignal": {
            "format": "object",
            "label": "News"
          }
        }
      },
      "title": "News Signals",
      "transformation": {
        "fields": [
          "companyName",
          "newsSignal"
        ]
      }
    },
    "overview": {
      "display": {
        "component": "table",
        "properties": {
          "companyName": {
            "format": "text",
            "label": "Company"
          },
          "domain": {
            "format": "text",
            "label": "Domain"
          },
          "grade": {
            "format": "text",
            "label": "Grade"
          },
          "priorityFlag": {
            "format": "boolean",
            "label": "Priority"
          },
          "rationale": {
            "format": "text",
            "label": "Rationale"
          },
          "score": {
            "format": "number",
            "label": "Score"
          },
          "topSignal": {
            "format": "text",
            "label": "Top Signal"
          }
        }
      },
      "title": "Overview",
      "transformation": {
        "fields": [
          "companyName",
          "domain",
          "grade",
          "score",
          "priorityFlag",
          "topSignal",
          "rationale"
        ]
      }
    },
    "risk": {
      "display": {
        "component": "table",
        "properties": {
          "companyName": {
            "format": "text",
            "label": "Company"
          },
          "execChangeSignal": {
            "format": "object",
            "label": "Executive changes"
          },
          "riskSignal": {
            "format": "object",
            "label": "Layoff risk"
          }
        }
      },
      "title": "Executive & Risk Signals",
      "transformation": {
        "fields": [
          "companyName",
          "execChangeSignal",
          "riskSignal"
        ]
      }
    },
    "technology": {
      "display": {
        "component": "table",
        "properties": {
          "companyName": {
            "format": "text",
            "label": "Company"
          },
          "targetTechnology": {
            "format": "object",
            "label": "Target technology"
          },
          "techStackSignal": {
            "format": "object",
            "label": "Tech stack"
          }
        }
      },
      "title": "Technology",
      "transformation": {
        "fields": [
          "companyName",
          "techStackSignal",
          "targetTechnology"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

Company Intent Scorer: Hiring, Funding & News Signals

Turn a list of target accounts into a ranked buying-signal report. For every company this actor checks public job boards, SEC Form D filings and funding coverage, entity-filtered news, executive changes, layoff risk and the company homepage, then returns one graded record with the evidence behind the score. No cookies, logins, API keys or proxy setup are needed.

What this actor does

  • Scores and ranks every company on a 0–100 intent score with an A–D grade, priorityFlag, topSignal, topSignals[] and a plain-English rationale
  • Finds real hiring on nine public applicant-tracking systems, including Workday, with role counts, 7/30/90-day velocity, function/seniority mix, remote counts and locations
  • Finds real funding from SEC Form D filings and entity-matched press, with amount, round, valuation, date and confidence
  • Filters news to the company, then derives news momentum, executive changes and layoff risk from the same matched headlines
  • Adds a technology stack as enrichment and can check for one target technology without changing the intent score
  • Monitors changes between runs: new signals, resolved signals, score movement and whether a company changed at all
  • Omits empty fields at every depth instead of returning nulls

Output per company

Every record includes:

  • companyName — company name as provided
  • domain — verified primary domain, when one can be confirmed
  • companyUrl — homepage URL built from the verified domain
  • careersUrl — careers page or public job-board URL when found
  • ats — job-board provider when a board was found
  • grade — A, B, C or D
  • score — intent score from 0 to 100
  • priorityFlag — true for grade A, funding in the last 180 days, or an executive change in the last 30 days
  • topSignal — one-line summary of the strongest signal
  • topSignals[] — up to three strongest signals with type, label, summary, score, maxScore, latestDate, source and url
  • rationale — why the company received its grade, using the real counts and dates
  • runTimestamp — ISO 8601 run timestamp
  • errors[] — per-source notes when a signal could not be fetched or a board was not found
  • targetTechnology — when requested: { name, present, category?, confidence? }
  • monitor — in monitor mode: previousRunAt, newSignals[], resolvedSignals[], scoreDelta and changed

With outputFormat: "full" the record adds:

  • scoreBreakdown — normalized point contributions for hiring, funding, news and execChanges, plus riskAdjustment
  • hiringSignal — openRoles, postedLast7Days, postedLast30Days, postedLast90Days, remoteRoles, functionMix, seniorityMix, departmentMix, locations, newestPostingDate, legacy totalOpenRoles, rolesLast30Days, hasExecutiveRoles, hasSalesRoles, roleMix, and sample titles/jobs when raw evidence is enabled
  • fundingSignal — amountUsd, roundType, announcedDate, daysSinceRound, valuationUsd, source, sourceUrl, headline, confidence, secFilingUrl, investors[]
  • newsSignal — mentionsLast7Days, articleCount30d, mentionsLast90Days, positive/negative/neutral counts, topicTags, topSourceDomains, and top headlines when raw evidence is enabled
  • techStackSignal — technologies[] with name, category, confidence and evidence, plus categories, detectedCount, homepageUrl and the target-technology result
  • execChangeSignal — changes[] with title, person, level, date, source and URL
  • riskSignal — events[] with confirmed/hedged layoff items
  • signals[] — normalized evidence rows for every enabled signal

If every enabled source fails for a company, the record instead contains type: "company_error", companyName, errors[] and runTimestamp.

Input

Field Type Default Description
mode string score score or monitor
companiesText string – Company names, one per line
companies array – Advanced list of objects (or plain strings); accepts companyName/name, domain, careersUrl, ats, atsToken, disambiguator
signals array ["hiring","funding","news","execChanges","layoffs","techStack"] hiring, funding, news, execChanges, layoffs, techStack
lookbackDays integer 90 Funding, news and executive-change window (7–365)
minScore integer 0 Drop scored companies below this score
targetTechnology string – Optional technology gap check, e.g. HubSpot
includeRawSignals boolean false In full output, add sample job titles and top headlines
outputFormat string compact compact ranking or full evidence detail
maxCompanies integer 100 Hard cap per run (1–1000)
maxConcurrency integer 3 Companies processed in parallel (1–10)
monitorKey string – Tracking history name for mode: "monitor"
emitUnchanged boolean false In monitor mode, also emit companies with no change

Example: score a short target list

{
  "mode": "score",
  "companiesText": "Figma\nNotion\nLinear",
  "outputFormat": "compact"
}

Example: weekly account monitoring

{
  "mode": "monitor",
  "companiesText": "Figma\nNotion\nLinear\nRamp\nDatabricks",
  "monitorKey": "q4-enterprise-targets",
  "minScore": 40,
  "maxCompanies": 200
}

Example: full evidence with a technology gap check

{
  "mode": "score",
  "companiesText": "Databricks\nSupabase\nCloudflare",
  "outputFormat": "full",
  "includeRawSignals": true,
  "targetTechnology": "Marketo",
  "lookbackDays": 120
}

Example: known domains and job boards

{
  "mode": "score",
  "companies": [
    { "companyName": "Notion", "domain": "notion.so", "disambiguator": "workspace" },
    { "companyName": "Linear", "careersUrl": "https://jobs.ashbyhq.com/linear" },
    { "companyName": "Scale AI", "ats": "greenhouse", "atsToken": "scaleai" }
  ],
  "outputFormat": "full"
}

Use cases

  • SDR and AE prioritization — sort a territory by intent grade before a prospecting block
  • Account-based marketing — trigger plays when a target starts hiring, raises a round or changes leadership
  • RevOps hygiene — re-score dormant accounts and filter out anything below the score your team acts on
  • Competitive and market research — compare hiring pace, funding events and technology choices across a market
  • Customer expansion — watch existing accounts for new funding, new executives and hiring surges
  • Weekly change monitoring — use mode: "monitor" to see only the accounts that changed since the last run

FAQ

What sources does the score use? Public applicant-tracking boards for hiring, SEC Form D filings and press coverage for funding, Google News RSS for entity-matched news, and the company's public homepage for technology detection.

How is the score calculated? Hiring contributes up to 40 points, funding up to 35, news up to 15 and executive changes up to 10. If you disable a scored signal, the remaining weights are normalized to 100. A confirmed company-specific layoff in the last 90 days subtracts up to 10 points; risk can never raise the score. Grade A is 70+, B is 45–69, C is 20–44 and D is below 20.

Why is funding missing for some companies? The actor reports only funding it can verify from an SEC Form D or an entity-matched press headline with a real amount or round. Private companies without a recent filing or clear coverage are left without a funding signal rather than guessed at.

Why does a company have no hiring signal? Only public job boards are used. If the company's careers site does not expose one of the supported boards, the actor omits the hiring signal and adds a note instead of counting unrelated jobs.

Why is news missing or smaller than a web search? Headlines must contain the company name as the subject, and tracker pages, listicles, homonyms and another-entity mentions are removed. Add a disambiguator in the advanced list when a company name is a common word.

Do I need an API key or a proxy? No. The actor uses public, cookieless sources. Just fill in the input and run it.

How does monitor mode remember the previous run? It stores a compact snapshot under your monitorKey. Use the same key on every scheduled run; a new key starts a fresh baseline. emitUnchanged controls whether unchanged companies appear too.

What is the difference between compact and full output? Compact returns the ranking fields and top signals. Full adds the score breakdown and the detailed hiring, funding, news, technology, executive-change and risk objects.

Why are some Workday posting dates approximate? Workday normally shows relative dates such as "Posted 5 Days Ago" or "30+ Days Ago". The actor maps those to dates and marks the hiring signal as approximate when a board uses them.

Is this affiliated with the job boards, SEC or news publishers? No. This is an independent actor that reads public information; it is not affiliated with or endorsed by those services.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build snh2nvfgk9s62uO6W. Documentation is regenerated from the default published build; private drafts are not included.