EmailSpy scrapes multiple sources to uncover publicly available emails for any domain. It even catches those tricky [at] symbols. Uses hybrid Firecrawl and Puppeteer approach. Try it, then clone and customize this low-code, open-source tool for free.
🚨 Important: This is a fronend of the app. The real magic happens in n8n workflow. You can find more information about it here.
⚠️ Note: EmailSpy is my very first project in Next.js (I'm not a professional frontend developer) and it's been made 90% with AI. I'm sure there are many things that could be improved. For any suggestions, I'll be very grateful.
You can find instructions here.
git clone https://github.com/workfloows/emailspy-ui.git
npm install
Replace N8N_INSTANCE_URL
in .env
with your n8n instance URL.
N8N_INSTANCE_URL=https://your-n8n-instance.com
If developing locally, set N8N_INSTANCE_URL
to local address of n8n (e.g. http://0.0.0.0:5678
).
If developing locally, change callback URLs in app/actions.ts
to match your local address.
const callbackUrl = `http://localhost:3000/api/email-results/${callbackId}`
const response = await fetch(`http://localhost:3000/api/email-results/${callbackId}`)
If deploying to Vercel, leave both callback URLs unchanged.
npm run dev
a) Deploy preview
vercel
b) Deploy production
vercel --prod