Custom email (SMTP)
Configure custom SMTP and transactional email providers for organization outbound mail.
InsightHire sends journey invites, interview notifications, and recruiter messages from your organization's email identity when custom email is configured. The primary self-serve path is SMTP, with additional API providers supported.
Detailed SMTP reference: docs.insighthire.com/email/smtp
Settings path
| Action | Path |
|---|---|
| Email settings hub | /admin/email-settings |
| Provider setup wizard | /admin/email-settings/setup |
| Verify configuration | /admin/email-settings/verify |
Email configuration requires org admin privileges (adminOrgProcedure for create/update/test).
Supported providers
| Provider | Type | Common use |
|---|---|---|
| SMTP | SMTP relay | Gmail, Outlook, custom mail server |
| SendGrid | API | High-volume transactional |
| Mailgun | API | Developer-friendly ESP |
| Resend | API | Modern transactional API |
| AWS SES | API | AWS-native sending |
| Postmark | API | Reliable transactional |
| SparkPost | API | Analytics-focused ESP |
Default platform journey pipeline may use InsightHire-operated Mailgun (in.insighthire.com) for inbound Indeed apply — that is separate from your outbound SMTP/API configuration.
SMTP setup
Required fields
| Field | Typical value | Notes |
|---|---|---|
| Host | smtp.gmail.com, smtp.office365.com, etc. | Your provider's SMTP hostname |
| Port | 587 (STARTTLS) or 465 (SSL) | Provider-specific |
| Username | Full email or API username | Often the sending address |
| Password | App password or SMTP credential | Not your main account password for Gmail |
| Secure | false for 587 + STARTTLS | true for implicit SSL on 465 |
| Require TLS | true (recommended) | Upgrades plain connection |
From identity
Also configure on create:
- From email — must be authorized by your SMTP provider
- From name — display name candidates see
- Reply-To — optional override for candidate replies
Setup flow
- Go to
/admin/email-settings/setup. - Select SMTP Server.
- Enter host, port, username, password, and TLS options.
- Set from email and from name.
- Save via
emailConfiguration.createoremailConfiguration.update. - Complete verification (see below).
For provider-specific guidance (Gmail app passwords, Office 365 SMTP auth, SPF/DKIM), see docs.insighthire.com/email/smtp.
Verification
After saving, InsightHire issues a verification token. The verify flow:
- InsightHire sends a confirmation email using the new configuration.
- Recipient clicks the verification link (or submit token via
emailConfiguration.verify). - Configuration marked verified — outbound mail uses org settings.
Unverified configurations may be rejected at send time.
Testing
| Action | Procedure |
|---|---|
| Test SMTP connection | emailConfiguration.test |
| Send test message | emailConfiguration.sendTest with to, subject, body |
Test emails include tracking pixels when enabled (trackOpens, trackClicks on enhanced email service).
Domain authentication (API providers)
For SendGrid, Mailgun, SES, etc.:
emailConfiguration.addDomain— register sending domain- Add DNS records (SPF, DKIM, DMARC) at your DNS host
emailConfiguration.verifyDomain— confirm records propagated
emailConfiguration.getDomains lists domain verification status.
How outbound mail is routed
enhanced-email.service.ts resolves sending path per organization:
- Load
email_configurationsfor org - Check rate limits (
emailConfiguration.checkRateLimits) - Create transporter — SMTP via nodemailer or provider SDK for API types
- Send and increment usage counters
- Log to email logs for statistics
If no org configuration exists, platform default sending may apply for certain system emails — journey invites should use org SMTP when configured.
API reference
| Procedure | Access | Purpose |
|---|---|---|
emailConfiguration.get | Org member | Current config (secrets masked) |
emailConfiguration.create | Org admin | Initial setup |
emailConfiguration.update | Org admin | Change provider/settings |
emailConfiguration.verify | Org member | Confirm via token |
emailConfiguration.test | Org admin | Connection test |
emailConfiguration.sendTest | Org admin | Send test email |
emailConfiguration.addDomain | Org admin | Register domain |
emailConfiguration.getDomains | Org member | List domains |
emailConfiguration.verifyDomain | Org admin | DNS verification |
emailConfiguration.getStatistics | Org member | Send stats |
emailConfiguration.getLogs | Org member | Recent send log |
Security notes
- Passwords and API keys stored encrypted; API returns
********mask on read. - Use app-specific passwords for Gmail/Outlook — never commit credentials to source control.
- Restrict SMTP credentials to send-only service accounts where possible.
- Enable SPF, DKIM, and DMARC on your sending domain to protect deliverability.
Troubleshooting
| Symptom | Check |
|---|---|
| Authentication failed | Username/password; app password enabled; SMTP auth allowed by provider |
| Connection timeout | Firewall, port 587 vs 465, secure/requireTLS mismatch |
| Messages go to spam | SPF/DKIM/DMARC; verify domain; warm up new sender |
| Verification never arrives | Check spam; confirm from address allowed by provider |
| Rate limit errors | getStatistics — org may have hit configured send limits |
Related
- Integrations overview
- Indeed email apply — inbound mail on
in.insighthire.com(distinct from outbound SMTP) - Calendar & meetings — interview invite delivery paths

