# Changelog of Email Pattern Finder - Discover Company Email Formats (`ryanclinton/email-pattern-finder`) Actor

- **URL**: https://apify.com/ryanclinton/email-pattern-finder/changelog.md
- **Full Actor documentation**: https://apify.com/ryanclinton/email-pattern-finder.md

## Changelog

### 1.3 (2026-09-15) — No pattern is reported unless one was actually detected

- `pattern` is now `null` when no real email could be matched to a person's name. It was previously filled with `{first}.{last}@domain`, the commonest corporate format, which made every undetected domain in a run look identical to a genuine detection
- New `patternBasis` field on every row: `matched`, `structural-guess`, or `none`
- New `statisticalPrior` field carries the global default when nothing was detected, so the information is still available but is no longer presented as a finding
- `recommendedSequence` is empty on an undetected domain instead of listing the default as a ranked recommendation
- `patternStabilityScore` is null on an undetected domain. It previously read 1.0 across runs because the default never changes, which surfaced as a "stable pattern" signal for domains nothing had ever been read from
- The status message now leads with how many domains produced a detected pattern, not how many rows were written
- Cross-run monitoring note: on the first run after this update, a domain that was previously reported with a default pattern will show `PATTERN_CHANGED`

### 1.2 (2026-06-13) — Faster runs and clearer cost upfront

- Domains with no discoverable emails skip an unnecessary deliverability sub-check, cutting per-domain time
- The run's maximum cost is shown in the status message before any charge
- Sites that block automated access are now labelled clearly with a recommended next step

### 1.1 (2026-05-30) — Undeliverable domains no longer charged

- Domains with no MX record (undeliverable) are no longer charged — you only pay for deliverable domains
- JavaScript-heavy sites are handled more reliably

### 1.0 (2026-05-28) — Status pane shows real progress on multi-domain runs (was previously masked by the crawler's queue stats)

### 1.0 (2026-05-23) — Fix: rare hang when monitor snapshot store is unavailable

### 1.0 (2026-05-01) — Domains that explicitly refuse email (RFC 7505 null MX) are now classified as undeliverable instead of valid.

### 1.0 (2026-05-01) — Faster runs — sources fetch in parallel, dead-MX domains short-circuit early, and verification runs alongside catch-all probing.

### 1.0 (2026-05-01) — Adds a per-domain send decision (send-now / verify-first / skip / enrich-more), MX validation, catch-all sequencing, and optional scheduled-run change tracking.

### 1.0 (2026-03-31) — Faster runs and cleaner output

### 1.0 (2026-03-31) — UX polish

### 1.0 (2026-03-31) — Reliability and billing fixes

### 1.0 (2026-03-25) — Major upgrade

#### New Features

#### Improvements

#### Bug Fixes
