Enrich a list of company domains with hiring, funding and ad signals, and get re-charged only when something changes
Most company enrichment answers "what is this company?" once. For sales, investing and account research, the better question is "what changed at this company since I last looked?" New jobs, a new funding filing, new ads. Each is a reason to reach out this week.
What a profile contains
The Company Profile API on Apify takes a domain and returns one structured profile:
| Section | What | Source |
|---|---|---|
| Company | Name, description, logo, socials, emails/phones listed on the site, key pages | Company homepage |
| Tech stack | Analytics, CRM, chat, CMS, payments, frameworks (30+ detections) | Homepage code |
| Hiring | Open jobs, jobs posted in last 30 days, top departments/locations | Public Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee boards |
| Funding | Form D filings, latest date, amount sold/offered, executives | SEC EDGAR |
| Advertising | Google ads found by format, latest ad shown | Google Ads Transparency Center |
| Signals | hiring_actively, raised_recently_sec_form_d, running_google_ads, plus new jobs / new filing / new ads since last run | Computed |
No LinkedIn scraping and no logins.
Step 1: Enrich a list
{ "domains": ["ramp.com", "notion.so"], "companyNames": {"ramp.com": "Ramp Business Corporation"}, "deliveryMode": "changedOnly", "monitorName": "q4-target-accounts" } Adding the legal name in companyNames makes the SEC match exact. Otherwise check secMatchConfidence.
Step 2: Schedule weekly and only pay when something changed
In the default New or changed mode, a weekly run charges only for companies whose jobs, funding filings, ads or homepage changed since the last run. Unchanged companies and domains with no data are free. Each changed profile includes changesSinceLastRun, for example { "newJobs": 5, "newFormDFilings": 0, "newGoogleAds": 3, "changed": true }.
- Money: $0.03 per profile delivered. A 1,000-account list costs at most $30 the first time (domains with no data are free), and after that you only pay for accounts that changed.
- Time: no diffing last week's export against this week's.
- Mental effort: the weekly list is the call list: only accounts with something new.
from apify_client import ApifyClient client = ApifyClient("<YOUR_APIFY_TOKEN>") run = client.actor("SureSignal/company-profile-api").call(run_input={ "domains": open("accounts.txt").read().split(), "deliveryMode": "changedOnly", "monitorName": "q4-target-accounts", }) for p in client.dataset(run["defaultDatasetId"]).iterate_items(): print(p["domain"], p.get("buyingSignals"), p.get("changesSinceLastRun")) Send the results to your CRM with Make, Zapier or n8n, or let an AI agent call it through the Apify API or MCP server.
Honest limits
- Company-level data only. No personal contact data beyond what a company publishes on its own site.
- Hiring data needs one of the six supported job boards. Funding data needs a US Form D filing. Ads data needs Google ads activity. Empty sections are normal and still tell you something.
- SEC matching is strictest with legal names provided.
A decision is only as good as the information behind it. A weekly "what changed" list beats a once-a-year enrichment that's stale by spring.
SureSignal: only pay for new data.
Try it: company-profile-api on the Apify Store. You only pay for new data: runs on a schedule skip what you've already received.
