Tech Stack Detector · M365 & Google Workspace · By Domain
Pricing
Pay per usage
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
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
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 goal | Suggested setup |
|---|---|---|
| HR tech sales rep | Prioritize accounts on Microsoft 365 vs Google Workspace | Default run (Slack probe on) |
| SaaS vendor (identity, security, backup) | Segment prospects by email stack | Default run |
| Outbound SDR / BDR | Personalize messaging by detected platform | Default run |
| Market research analyst | Map collaboration adoption across a domain list | skipSlackProbe: true for faster bulk |
| IT consultant | Quick stack audit before a discovery call | 3–10 domain test run first |
| RevOps / data ops | Enrich CRM company records with stack field | API 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
- Open this Actor in the Apify Console and paste company domains (e.g.
renault.com,axa.com). - Leave Skip Slack probe off for the fullest results, or turn it on for large DNS-only exports.
- Click Start — rows appear in the Dataset tab as they complete.
- Download JSON or CSV from the run, or call the dataset API.
What it extracts
| Field | Description |
|---|---|
domain | Normalized company domain |
platform | Microsoft 365, Google Workspace, Slack, or Other |
confidence | high, medium, low, or error |
mx_host | Primary MX record host (when present) |
slack_workspace | Slack workspace URL when detected |
dns_signals | MX/TXT signals used (e.g. MX:…, TXT:…) |
detected_at | ISO timestamp |
error_message | Error detail when lookup failed (not billed) |
Typical fill rates
| Signal | Indicative 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).
| Scenario | FREE | Bronze | Silver | Gold |
|---|---|---|---|---|
| 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.
Is it legal to detect collaboration platforms from DNS?
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
| Parameter | Type | Default | Description |
|---|---|---|---|
domains | string[] | — | Company domains or URLs (required) |
skipSlackProbe | boolean | false | DNS-only mode — skip Slack HTTP probe |
concurrency | integer | 50 | Parallel domain lookups (1–100) |
maxDomains | integer | 3000 | Cap after dedupe; 0 = no cap |
verboseLogs | boolean | false | Technical 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 confirmedmedium— TXT confirmation or email proxy + TXT matchlow— No definitive stack signal (platformOther)error— Lookup failed (error_messageset; row not billed)
How it works
- Normalize pasted URLs to registrable domains and dedupe.
- DNS MX records — primary signal for Google Workspace and Microsoft 365.
- DNS TXT records — secondary signal; detects M365/Google behind Mimecast, Proofpoint, etc.
- Slack probe (optional) — checks
https://{slug}.slack.comwhen DNS saysOther.
Local development
npm installnpm testapify 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.comderived from the domain (e.g.acme.com→acme.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.