Tech Stack Detector · M365 & Google Workspace · By Domain avatar

Tech Stack Detector · M365 & Google Workspace · By Domain

Pricing

Pay per usage

Go to Apify Store
Tech Stack Detector · M365 & Google Workspace · By Domain

Tech Stack Detector · M365 & Google Workspace · By Domain

Paste company domains — see Microsoft 365, Google Workspace, or Slack per row. Confidence score, MX signals, CSV-ready. Built for outbound & HR tech sales. No API key.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

Tech Stack Detector

Paste domains → know if prospects run Microsoft 365 or Google Workspace. One export-ready row per company — platform, confidence score, MX signals, optional Slack workspace.

No API key. No login. Paste domains only.

Who is this for?

You are…Typical goalSuggested setup
HR tech sales repPrioritize accounts on Microsoft 365 vs Google WorkspaceDefault run (Slack probe on)
SaaS vendor (identity, security, backup)Segment prospects by email stackDefault run
Outbound SDR / BDRPersonalize messaging by detected platformDefault run
Market research analystMap collaboration adoption across a domain listskipSlackProbe: true for faster bulk
IT consultantQuick stack audit before a discovery call3–10 domain test run first
RevOps / data opsEnrich CRM company records with stack fieldAPI run with your domain list

What you get by default: platform label, confidence, primary MX host, DNS signals, optional Slack workspace URL, timestamp.

When to skip Slack: For lists of 10,000+ domains, set Skip Slack probe to ON — DNS-only runs are roughly 4× faster (~12,000 domains per 30-minute run vs ~3,000 with Slack).

Quick start

  1. Open this Actor in the Apify Console and paste company domains (e.g. renault.com, axa.com).
  2. Leave Skip Slack probe off for the fullest results, or turn it on for large DNS-only exports.
  3. Click Start — rows appear in the Dataset tab as they complete.
  4. Download JSON or CSV from the run, or call the dataset API.

What it extracts

FieldDescription
domainNormalized company domain
platformMicrosoft 365, Google Workspace, Slack, or Other
confidencehigh, medium, low, or error
mx_hostPrimary MX record host (when present)
slack_workspaceSlack workspace URL when detected
dns_signalsMX/TXT signals used (e.g. MX:…, TXT:…)
detected_atISO timestamp
error_messageError detail when lookup failed (not billed)

Typical fill rates

SignalIndicative rate
M365 or Google when public MX exists~95%+
Stack behind Mimecast / Proofpoint (TXT confirmation)~70–85%
Slack workspace (default slug probe)~5–15% of domains

How much does it cost to detect collaboration platforms?

Pay-per-event pricing (compute is low — HTTP DNS + optional Slack probe).

ScenarioFREEBronzeSilverGold
25 domains (test)~$0.11~$0.10~$0.09~$0.08
1,000 domains~$1.08~$0.98~$0.88~$0.78
50,000 domains~$50.08~$45.08~$40.08~$35.08

Includes $0.08 actor start + per-row event (collaboration-platform-row). Error rows are not billed.

This Actor only reads public DNS records (MX, TXT) and optionally probes a public Slack workspace URL pattern. As with any dataset containing company identifiers, ensure your use complies with GDPR and applicable regulations.

Input

ParameterTypeDefaultDescription
domainsstring[]Company domains or URLs (required)
skipSlackProbebooleanfalseDNS-only mode — skip Slack HTTP probe
concurrencyinteger50Parallel domain lookups (1–100)
maxDomainsinteger3000Cap after dedupe; 0 = no cap
verboseLogsbooleanfalseTechnical debug lines in run log
{
"domains": ["renault.com", "axa.com", "qonto.com"],
"skipSlackProbe": false,
"maxDomains": 3000
}

Output example

{
"domain": "renault.com",
"platform": "Microsoft 365",
"confidence": "high",
"mx_host": "renault-com.mail.protection.outlook.com",
"slack_workspace": null,
"dns_signals": ["MX:renault-com.mail.protection.outlook.com"],
"detected_at": "2026-06-13T12:00:00.000Z",
"error_message": null
}

Confidence levels

  • high — MX directly points to M365/Google, or Slack workspace confirmed
  • medium — TXT confirmation or email proxy + TXT match
  • low — No definitive stack signal (platform Other)
  • error — Lookup failed (error_message set; row not billed)

How it works

  1. Normalize pasted URLs to registrable domains and dedupe.
  2. DNS MX records — primary signal for Google Workspace and Microsoft 365.
  3. DNS TXT records — secondary signal; detects M365/Google behind Mimecast, Proofpoint, etc.
  4. Slack probe (optional) — checks https://{slug}.slack.com when DNS says Other.

Local development

npm install
npm test
apify run

The CLI validates storage/key_value_stores/default/INPUT.json against the input schema. Use .actor/INPUT.json as the Console prefill template, or:

$apify run --input-file=./input.json

When running locally, keys in the simulated KV input override input.json at the repo root.

Limitations

  • Slack detection probes https://{first-label}.slack.com derived from the domain (e.g. acme.comacme.slack.com). Custom workspace slugs, subsidiaries, and rebrand domains are often missed. Treat Slack as a bonus signal, not a complete census.
  • For 5,000+ domains with Slack probe enabled, consider enabling a residential proxy on your Apify account (Run settings) to reduce throttling on Slack probes.
  • Practical throughput: ~3,000 domains/run with Slack (30 min timeout); ~12,000 DNS-only with skipSlackProbe: true.

Support

Contact corentin@outreacher.fr for custom integrations.