Tech Stack Recon

Reverse-engineer a company's sales and marketing tech stack from public signals.

How to use it

  1. Hit Copy SKILL.md — or use the Claude Code line below to get every file.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/competitive-intel/capabilities/tech-stack-teardown#main ~/.claude/skills/tech-stack-teardown

For one project only, change the path to .claude/skills/tech-stack-teardown. This skill also uses Next.js, recon.py — copying SKILL.md alone won't be enough. See the folder on GitHub.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text326 lines
tech-stack-teardown/SKILL.md326 lines12.1 KBpushed 96d agoRawView on GitHub

Tech Stack Recon

Reverse-engineer a company's sales, marketing, and outbound infrastructure from public signals. No login, no API access to their tools needed — everything is derived from DNS records, website source code, technology profiling, blacklist databases, and public complaints.

What It Detects

Category Tools Detected
CRM HubSpot, Salesforce (via SPF, website pixels, DNS)
Cold Email Tools Smartlead, Instantly, Outreach, Salesloft, Lemlist (via SPF, DKIM, TXT records, website source)
People Databases Apollo, ZoomInfo, Clearbit, 6sense (via website tracker scripts)
Email Delivery SendGrid, Amazon SES, Postmark, Mailgun, Mandrill (via SPF includes, DKIM selectors)
Email Marketing Mailchimp, Brevo, ActiveCampaign, Klaviyo (via DKIM selectors)
Ad Retargeting LinkedIn Insight Tag, Facebook Pixel, AdRoll, Reddit Ads, Twitter Ads (via Apify profiler + source)
Website Builder Webflow, Framer, Next.js, WordPress (via Apify profiler + source)
Chat / Support Intercom, Drift, Crisp, Zendesk (via website source)
Analytics Google Analytics, Segment, Mixpanel, Amplitude, PostHog, Heap (via website source)
Outbound Domains Separate cold sending domains (via SPF-only Google Workspace + redirect to primary)

How It Works

The skill runs 5 layers of detection, each revealing different signals:

Layer 1: DNS Records (Free, instant)

MX     → Primary email provider (Google Workspace, Microsoft 365, etc.)
SPF    → Every service authorized to send email on their behalf
DKIM   → Cryptographic proof of which tools actually send email
DMARC  → Email authentication policy (how strict they are)
TXT    → Misc verifications (Smartlead tracking domains, tool verifications)
CNAME  → Subdomains pointing to third-party services

This is the highest-signal layer. SPF and DKIM don't lie — if SendGrid is in their SPF, they use SendGrid.

Layer 2: Website Source Inspection (Free, instant)

Fetches the target website and searches HTML for:

  • Tracking pixels (Apollo, REB2B, HubSpot, Facebook, LinkedIn)
  • Script tags loading third-party tools
  • Meta tags and framework signatures
  • Hidden form handlers and API endpoints

Layer 3: Apify Technology Profiler (Pay-per-use, ~$0.005/domain)

Runs justa/technology-profiling-engine actor for deep detection of 7,000+ technologies using 8-tier inspection with confidence scores. Catches tools that don't appear in source code (loaded dynamically, via GTM, etc.).

Layer 4: Blacklist Checks (Free, instant)

Queries 6 major DNS-based blacklists:

  • Spamhaus (zen.spamhaus.org)
  • Barracuda (b.barracudacentral.org)
  • SpamCop (bl.spamcop.net)
  • SORBS (dnsbl.sorbs.net)
  • SURBL (multi.surbl.org)
  • URIBL (black.uribl.com)

Layer 5: Public Complaint Search (Free)

Web searches for spam complaints on Trustpilot, Reddit, SpamCop forums, and general web. Also searches for the company + tool names to find public mentions of their stack.

Cost

Component Cost
DNS queries Free
Website source fetch Free
Blacklist checks Free
Web searches Free
Apify Technology Profiler ~$0.005 per domain

Typical costs:

Scenario Domains Est. Cost
Single company 1 ~$0.005
Small batch 5 ~$0.025
Large batch 20 ~$0.10

Skip the Apify profiler with --no-apify for free-only analysis (DNS + source + blacklists).

Setup

1. Required

# dig (DNS lookups) — included on macOS/Linux
which dig

# curl (website source fetch) — included on macOS/Linux
which curl

# Python 3 with requests + dotenv
pip3 install requests python-dotenv

2. Optional (for Apify Technology Profiler)

# Get your token at https://console.apify.com/account/integrations
# Add to .env:
APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE

Usage

Single Company

python3 scripts/recon.py --domains pump.co

Batch of Companies

python3 scripts/recon.py --domains "dili.ai,pump.co,runautomat.com"

Free-Only Mode (No Apify)

python3 scripts/recon.py --domains pump.co --no-apify

Output to File

python3 scripts/recon.py --domains "dili.ai,pump.co" --output /path/to/report.md

JSON Output

python3 scripts/recon.py --domains pump.co --json

What the Script Does

For each domain:

  1. DNS Scan — Queries MX, SPF, DKIM (18 common selectors), DMARC, TXT records, and 30+ common subdomains (email, tracking, click, bounce, send, smtp, mail, etc.)
  2. Website Source Scan — Fetches the homepage HTML and greps for 40+ known tool signatures (script URLs, pixel IDs, tracking domains)
  3. Apify Technology Profile (optional) — Runs deep 8-tier technology detection for 7,000+ technologies with confidence scores
  4. Blacklist Check — Queries 6 DNS-based blacklists for the domain
  5. Outbound Domain Detection — Checks if common variations of the domain exist (get[name].com, try[name].com, [name]reach.com, etc.) and analyzes their DNS for cold outbound patterns
  6. Report Generation — Produces a structured markdown report with confirmed tools, evidence, email auth assessment, blacklist status, and an overall assessment

Agent Integration

When using this skill as an agent, follow this flow:

  1. User provides one or more company domains
  2. Run recon.py for all domains (confirm Apify cost if > 5 domains)
  3. Present the report — group findings by:
    • Confirmed tools (with evidence)
    • Email authentication (SPF/DKIM/DMARC assessment)
    • Deliverability (blacklist status + spam complaints)
    • Notable signals (outbound domains, missing DMARC, SPF gaps)
  4. If batch, include a comparative summary table at the end

Agent Without the Script

The agent can perform all checks manually using built-in tools:

DNS checks — Use Bash tool:

dig +short MX example.com
dig +short TXT example.com
dig +short TXT _dmarc.example.com
dig +short TXT selector._domainkey.example.com
dig +short CNAME subdomain.example.com

Website source scan — Use Bash tool:

curl -sL https://www.example.com | grep -oi 'pattern1\|pattern2\|pattern3' | sort -u

Blacklist checks — Use Bash tool:

dig +short example.com.zen.spamhaus.org A

Apify profiler — Use Bash tool with Python:

# See scripts/recon.py for the full implementation

Spam complaints — Use WebSearch tool:

"example.com" spam OR unsolicited OR "cold email" OR blacklist

DNS Record Cheat Sheet

SPF Includes → Tool Identification

SPF Include Tool
_spf.google.com Google Workspace
spf.protection.outlook.com Microsoft 365
sendgrid.net SendGrid
amazonses.com Amazon SES
*.hubspotemail.net HubSpot
*.rsgsv.net or servers.mcsv.net Mailchimp/Mandrill
spf.mandrillapp.com Mandrill (Mailchimp transactional)
mail.zendesk.com Zendesk
*.freshdesk.com Freshdesk
spf.mailjet.com Mailjet
spf.brevo.com Brevo (Sendinblue)
_spf.salesforce.com Salesforce
mktomail.com Marketo
postmarkapp.com Postmark
mailgun.org Mailgun

DKIM Selectors → Tool Identification

Selector Pattern Tool
google._domainkey Google Workspace
selector1._domainkey / selector2._domainkey Microsoft 365
s1._domainkey / s2._domainkey*.sendgrid.net SendGrid
k1._domainkey*.mcsv.net or dkim.mcsv.net Mailchimp
k2._domainkey / k3._domainkeydkim2.mcsv.net / dkim3.mcsv.net Mailchimp
mandrill._domainkey Mandrill
pm._domainkey Postmark
smtp._domainkey Generic SMTP
em._domainkey Various (check CNAME target)

TXT Records → Tool Identification

TXT Pattern Tool
open.sleadtrack.com Smartlead (custom tracking domain)
hubspot-developer-verification=* HubSpot
anthropic-domain-verification-* Anthropic (Claude)
MS=* Microsoft 365
google-site-verification=* Google Search Console
slack-domain-verification=* Slack
atlassian-domain-verification=* Atlassian (Jira/Confluence)
docusign=* DocuSign
facebook-domain-verification=* Facebook/Meta
_github-pages-challenge-* GitHub Pages
stripe-verification=* Stripe

Website Source Patterns → Tool Identification

Pattern in HTML Tool
assets.apollo.io/micro/website-tracker Apollo.io (visitor tracking)
hs-script or js.hs-scripts.com HubSpot
px.ads.linkedin.com LinkedIn Insight Tag
connect.facebook.net or fbq( Facebook Pixel
snap.licdn.com LinkedIn Insight Tag
cdn.segment.com Segment
cdn.mxpnl.com or mixpanel Mixpanel
cdn.amplitude.com Amplitude
app.posthog.com or posthog PostHog
widget.intercom.io Intercom
js.driftt.com Drift
client.crisp.chat Crisp
static.zdassets.com Zendesk
s3-us-west-2.amazonaws.com + reb2b REB2B
clearbit.com/tag.js or reveal Clearbit Reveal
6sc.co or 6sense 6sense
tag.demandbase.com Demandbase
d.adroll.com AdRoll
googletagmanager.com Google Tag Manager
gtag('config', 'G-*') Google Analytics 4

Cold Outbound Domain Patterns

A separate domain is being used for cold email if it has:

  • Google Workspace MX (or similar) but no product/marketing email tools in SPF
  • SPF that only includes _spf.google.com (sending from raw mailboxes)
  • A 301/302 redirect to the company's primary domain
  • No website content of its own
  • Domain name follows patterns like: [brand]reach.com, get[brand].com, try[brand].com, meet[brand].com, [brand]hq.com

DMARC Assessment Guide

Policy Meaning Assessment
p=reject Reject unauthenticated email Strong — best practice
p=quarantine Send to spam if unauthenticated Good — enforcing
p=none Monitor only, don't enforce Weak — anyone can spoof the domain
No DMARC record No policy at all Missing — wide open to spoofing

Troubleshooting

"No tools detected"

  • The company may be very early-stage with minimal tooling
  • Some tools (like Apollo used only for prospecting, not sending) leave no DNS trace
  • LinkedIn Sales Navigator, Clay enrichment, and similar tools don't leave public signals
  • Try the Apify profiler if you only ran free-only mode

"SPF has Google only but they use Smartlead/Instantly"

  • This is normal. Smartlead and Instantly typically connect to Google Workspace mailboxes via SMTP and send through Google — so SPF passes via Google's include. The cold email tool itself doesn't need its own SPF entry.
  • Look for Smartlead's open.sleadtrack.com in TXT records or website source as confirmation.

"Apify profiler timed out"

  • Some sites take longer to load. The profiler has a 3-minute timeout.
  • Retry once. If it fails again, rely on DNS + source code analysis.

"artisan.ai resolves but redirects to Afternic"

  • The domain is parked/for sale. Check common alternatives: .co, .com, .io.
  • Wildcard DNS (all subdomains resolve to the same IP) is a sign of a parked domain.

Links

1---
2name: tech-stack-teardown
3description: >
4 Reverse-engineer a company's sales and marketing tech stack from public signals.
5 Detects CRMs, cold email tools, people databases, ad pixels, email delivery services,
6 and outbound sending domains via DNS records, website source inspection, Apify technology
7 profiling, blacklist checks, and public spam complaint searches. Works on single companies
8 or batches. Outputs a structured markdown report per company.
9tags: [competitive-intel]
10---
11 
12# Tech Stack Recon
13 
14Reverse-engineer a company's sales, marketing, and outbound infrastructure from public signals. No login, no API access to their tools needed — everything is derived from DNS records, website source code, technology profiling, blacklist databases, and public complaints.
15 
16## What It Detects
17 
18| Category | Tools Detected |
19|----------|---------------|
20| **CRM** | HubSpot, Salesforce (via SPF, website pixels, DNS) |
21| **Cold Email Tools** | Smartlead, Instantly, Outreach, Salesloft, Lemlist (via SPF, DKIM, TXT records, website source) |
22| **People Databases** | Apollo, ZoomInfo, Clearbit, 6sense (via website tracker scripts) |
23| **Email Delivery** | SendGrid, Amazon SES, Postmark, Mailgun, Mandrill (via SPF includes, DKIM selectors) |
24| **Email Marketing** | Mailchimp, Brevo, ActiveCampaign, Klaviyo (via DKIM selectors) |
25| **Ad Retargeting** | LinkedIn Insight Tag, Facebook Pixel, AdRoll, Reddit Ads, Twitter Ads (via Apify profiler + source) |
26| **Website Builder** | Webflow, Framer, Next.js, WordPress (via Apify profiler + source) |
27| **Chat / Support** | Intercom, Drift, Crisp, Zendesk (via website source) |
28| **Analytics** | Google Analytics, Segment, Mixpanel, Amplitude, PostHog, Heap (via website source) |
29| **Outbound Domains** | Separate cold sending domains (via SPF-only Google Workspace + redirect to primary) |
30 
31## How It Works
32 
33The skill runs 5 layers of detection, each revealing different signals:
34 
35### Layer 1: DNS Records (Free, instant)
36 
37```
38MX → Primary email provider (Google Workspace, Microsoft 365, etc.)
39SPF → Every service authorized to send email on their behalf
40DKIM → Cryptographic proof of which tools actually send email
41DMARC → Email authentication policy (how strict they are)
42TXT → Misc verifications (Smartlead tracking domains, tool verifications)
43CNAME → Subdomains pointing to third-party services
44```
45 
46This is the highest-signal layer. SPF and DKIM don't lie — if SendGrid is in their SPF, they use SendGrid.
47 
48### Layer 2: Website Source Inspection (Free, instant)
49 
50Fetches the target website and searches HTML for:
51- Tracking pixels (Apollo, REB2B, HubSpot, Facebook, LinkedIn)
52- Script tags loading third-party tools
53- Meta tags and framework signatures
54- Hidden form handlers and API endpoints
55 
56### Layer 3: Apify Technology Profiler (Pay-per-use, ~$0.005/domain)
57 
58Runs `justa/technology-profiling-engine` actor for deep detection of 7,000+ technologies using 8-tier inspection with confidence scores. Catches tools that don't appear in source code (loaded dynamically, via GTM, etc.).
59 
60### Layer 4: Blacklist Checks (Free, instant)
61 
62Queries 6 major DNS-based blacklists:
63- Spamhaus (zen.spamhaus.org)
64- Barracuda (b.barracudacentral.org)
65- SpamCop (bl.spamcop.net)
66- SORBS (dnsbl.sorbs.net)
67- SURBL (multi.surbl.org)
68- URIBL (black.uribl.com)
69 
70### Layer 5: Public Complaint Search (Free)
71 
72Web searches for spam complaints on Trustpilot, Reddit, SpamCop forums, and general web. Also searches for the company + tool names to find public mentions of their stack.
73 
74## Cost
75 
76| Component | Cost |
77|-----------|------|
78| DNS queries | Free |
79| Website source fetch | Free |
80| Blacklist checks | Free |
81| Web searches | Free |
82| Apify Technology Profiler | ~$0.005 per domain |
83 
84**Typical costs:**
85| Scenario | Domains | Est. Cost |
86|----------|---------|-----------|
87| Single company | 1 | ~$0.005 |
88| Small batch | 5 | ~$0.025 |
89| Large batch | 20 | ~$0.10 |
90 
91Skip the Apify profiler with `--no-apify` for free-only analysis (DNS + source + blacklists).
92 
93## Setup
94 
95### 1. Required
96 
97```bash
98# dig (DNS lookups) — included on macOS/Linux
99which dig
100 
101# curl (website source fetch) — included on macOS/Linux
102which curl
103 
104# Python 3 with requests + dotenv
105pip3 install requests python-dotenv
106```
107 
108### 2. Optional (for Apify Technology Profiler)
109 
110```bash
111# Get your token at https://console.apify.com/account/integrations
112# Add to .env:
113APIFY_API_TOKEN=apify_api_YOUR_TOKEN_HERE
114```
115 
116## Usage
117 
118### Single Company
119 
120```bash
121python3 scripts/recon.py --domains pump.co
122```
123 
124### Batch of Companies
125 
126```bash
127python3 scripts/recon.py --domains "dili.ai,pump.co,runautomat.com"
128```
129 
130### Free-Only Mode (No Apify)
131 
132```bash
133python3 scripts/recon.py --domains pump.co --no-apify
134```
135 
136### Output to File
137 
138```bash
139python3 scripts/recon.py --domains "dili.ai,pump.co" --output /path/to/report.md
140```
141 
142### JSON Output
143 
144```bash
145python3 scripts/recon.py --domains pump.co --json
146```
147 
148## What the Script Does
149 
150For each domain:
151 
1521. **DNS Scan** — Queries MX, SPF, DKIM (18 common selectors), DMARC, TXT records, and 30+ common subdomains (email, tracking, click, bounce, send, smtp, mail, etc.)
1532. **Website Source Scan** — Fetches the homepage HTML and greps for 40+ known tool signatures (script URLs, pixel IDs, tracking domains)
1543. **Apify Technology Profile** (optional) — Runs deep 8-tier technology detection for 7,000+ technologies with confidence scores
1554. **Blacklist Check** — Queries 6 DNS-based blacklists for the domain
1565. **Outbound Domain Detection** — Checks if common variations of the domain exist (get[name].com, try[name].com, [name]reach.com, etc.) and analyzes their DNS for cold outbound patterns
1576. **Report Generation** — Produces a structured markdown report with confirmed tools, evidence, email auth assessment, blacklist status, and an overall assessment
158 
159## Agent Integration
160 
161When using this skill as an agent, follow this flow:
162 
1631. User provides one or more company domains
1642. Run `recon.py` for all domains (confirm Apify cost if > 5 domains)
1653. Present the report — group findings by:
166 - **Confirmed tools** (with evidence)
167 - **Email authentication** (SPF/DKIM/DMARC assessment)
168 - **Deliverability** (blacklist status + spam complaints)
169 - **Notable signals** (outbound domains, missing DMARC, SPF gaps)
1704. If batch, include a comparative summary table at the end
171 
172### Agent Without the Script
173 
174The agent can perform all checks manually using built-in tools:
175 
176**DNS checks** — Use `Bash` tool:
177```bash
178dig +short MX example.com
179dig +short TXT example.com
180dig +short TXT _dmarc.example.com
181dig +short TXT selector._domainkey.example.com
182dig +short CNAME subdomain.example.com
183```
184 
185**Website source scan** — Use `Bash` tool:
186```bash
187curl -sL https://www.example.com | grep -oi 'pattern1\|pattern2\|pattern3' | sort -u
188```
189 
190**Blacklist checks** — Use `Bash` tool:
191```bash
192dig +short example.com.zen.spamhaus.org A
193```
194 
195**Apify profiler** — Use `Bash` tool with Python:
196```python
197# See scripts/recon.py for the full implementation
198```
199 
200**Spam complaints** — Use `WebSearch` tool:
201```
202"example.com" spam OR unsolicited OR "cold email" OR blacklist
203```
204 
205## DNS Record Cheat Sheet
206 
207### SPF Includes → Tool Identification
208 
209| SPF Include | Tool |
210|-------------|------|
211| `_spf.google.com` | Google Workspace |
212| `spf.protection.outlook.com` | Microsoft 365 |
213| `sendgrid.net` | SendGrid |
214| `amazonses.com` | Amazon SES |
215| `*.hubspotemail.net` | HubSpot |
216| `*.rsgsv.net` or `servers.mcsv.net` | Mailchimp/Mandrill |
217| `spf.mandrillapp.com` | Mandrill (Mailchimp transactional) |
218| `mail.zendesk.com` | Zendesk |
219| `*.freshdesk.com` | Freshdesk |
220| `spf.mailjet.com` | Mailjet |
221| `spf.brevo.com` | Brevo (Sendinblue) |
222| `_spf.salesforce.com` | Salesforce |
223| `mktomail.com` | Marketo |
224| `postmarkapp.com` | Postmark |
225| `mailgun.org` | Mailgun |
226 
227### DKIM Selectors → Tool Identification
228 
229| Selector Pattern | Tool |
230|-----------------|------|
231| `google._domainkey` | Google Workspace |
232| `selector1._domainkey` / `selector2._domainkey` | Microsoft 365 |
233| `s1._domainkey` / `s2._domainkey``*.sendgrid.net` | SendGrid |
234| `k1._domainkey``*.mcsv.net` or `dkim.mcsv.net` | Mailchimp |
235| `k2._domainkey` / `k3._domainkey``dkim2.mcsv.net` / `dkim3.mcsv.net` | Mailchimp |
236| `mandrill._domainkey` | Mandrill |
237| `pm._domainkey` | Postmark |
238| `smtp._domainkey` | Generic SMTP |
239| `em._domainkey` | Various (check CNAME target) |
240 
241### TXT Records → Tool Identification
242 
243| TXT Pattern | Tool |
244|-------------|------|
245| `open.sleadtrack.com` | **Smartlead** (custom tracking domain) |
246| `hubspot-developer-verification=*` | HubSpot |
247| `anthropic-domain-verification-*` | Anthropic (Claude) |
248| `MS=*` | Microsoft 365 |
249| `google-site-verification=*` | Google Search Console |
250| `slack-domain-verification=*` | Slack |
251| `atlassian-domain-verification=*` | Atlassian (Jira/Confluence) |
252| `docusign=*` | DocuSign |
253| `facebook-domain-verification=*` | Facebook/Meta |
254| `_github-pages-challenge-*` | GitHub Pages |
255| `stripe-verification=*` | Stripe |
256 
257### Website Source Patterns → Tool Identification
258 
259| Pattern in HTML | Tool |
260|----------------|------|
261| `assets.apollo.io/micro/website-tracker` | Apollo.io (visitor tracking) |
262| `hs-script` or `js.hs-scripts.com` | HubSpot |
263| `px.ads.linkedin.com` | LinkedIn Insight Tag |
264| `connect.facebook.net` or `fbq(` | Facebook Pixel |
265| `snap.licdn.com` | LinkedIn Insight Tag |
266| `cdn.segment.com` | Segment |
267| `cdn.mxpnl.com` or `mixpanel` | Mixpanel |
268| `cdn.amplitude.com` | Amplitude |
269| `app.posthog.com` or `posthog` | PostHog |
270| `widget.intercom.io` | Intercom |
271| `js.driftt.com` | Drift |
272| `client.crisp.chat` | Crisp |
273| `static.zdassets.com` | Zendesk |
274| `s3-us-west-2.amazonaws.com` + `reb2b` | REB2B |
275| `clearbit.com/tag.js` or `reveal` | Clearbit Reveal |
276| `6sc.co` or `6sense` | 6sense |
277| `tag.demandbase.com` | Demandbase |
278| `d.adroll.com` | AdRoll |
279| `googletagmanager.com` | Google Tag Manager |
280| `gtag('config', 'G-*')` | Google Analytics 4 |
281 
282### Cold Outbound Domain Patterns
283 
284A separate domain is being used for cold email if it has:
285- Google Workspace MX (or similar) but **no product/marketing email tools** in SPF
286- SPF that only includes `_spf.google.com` (sending from raw mailboxes)
287- A 301/302 redirect to the company's primary domain
288- No website content of its own
289- Domain name follows patterns like: `[brand]reach.com`, `get[brand].com`, `try[brand].com`, `meet[brand].com`, `[brand]hq.com`
290 
291## DMARC Assessment Guide
292 
293| Policy | Meaning | Assessment |
294|--------|---------|------------|
295| `p=reject` | Reject unauthenticated email | Strong — best practice |
296| `p=quarantine` | Send to spam if unauthenticated | Good — enforcing |
297| `p=none` | Monitor only, don't enforce | Weak — anyone can spoof the domain |
298| No DMARC record | No policy at all | **Missing** — wide open to spoofing |
299 
300## Troubleshooting
301 
302### "No tools detected"
303- The company may be very early-stage with minimal tooling
304- Some tools (like Apollo used only for prospecting, not sending) leave no DNS trace
305- LinkedIn Sales Navigator, Clay enrichment, and similar tools don't leave public signals
306- Try the Apify profiler if you only ran free-only mode
307 
308### "SPF has Google only but they use Smartlead/Instantly"
309- This is normal. Smartlead and Instantly typically connect to Google Workspace mailboxes via SMTP and send **through** Google — so SPF passes via Google's include. The cold email tool itself doesn't need its own SPF entry.
310- Look for Smartlead's `open.sleadtrack.com` in TXT records or website source as confirmation.
311 
312### "Apify profiler timed out"
313- Some sites take longer to load. The profiler has a 3-minute timeout.
314- Retry once. If it fails again, rely on DNS + source code analysis.
315 
316### "artisan.ai resolves but redirects to Afternic"
317- The domain is parked/for sale. Check common alternatives: `.co`, `.com`, `.io`.
318- Wildcard DNS (all subdomains resolve to the same IP) is a sign of a parked domain.
319 
320## Links
321 
322- [Apify Technology Profiling Engine](https://apify.com/justa/technology-profiling-engine)
323- [Apify API Token](https://console.apify.com/account/integrations)
324- [MXToolbox](https://mxtoolbox.com/) — manual verification
325- [Spamhaus Domain Lookup](https://check.spamhaus.org/)
326 

Discussion