AI-Powered Domain Research Tool with Multi-User Authentication, Automated Scheduling, Webhook Notifications & SEO Analytics
- User Registration & Login - Secure JWT-based authentication
- Password Hashing - bcrypt encryption for user passwords
- User-Specific Data - Each user has their own portfolio and sales tracking
- Session Management - 7-day JWT tokens with httpOnly cookies
- Cron-Based Scheduling - Set up automatic domain checks (daily, weekly, etc.)
- Flexible Timing - Use cron expressions like
0 9 * * *(daily at 9 AM) - Batch Monitoring - Check multiple domains in one scheduled job
- Background Processing - Jobs run in the background without user interaction
- Real-Time Alerts - Get notified when domains become available or are expiring
- Custom Endpoints - Configure webhooks to Slack, Discord, or custom URLs
- Event Types:
domain.available- Domain becomes availabledomain.expiring- Domain expiring soon (β€7 days)domain.registered- New domain registered
- Test Webhooks - Test your webhook configuration before going live
- Domain Authority (DA) - Check Moz Domain Authority
- Page Authority (PA) - Analyze page-level authority
- Backlink Analysis - View backlink count and referring domains
- Competitor Analysis - Compare multiple domains side-by-side
- API Integration - Supports Moz and Ahrefs APIs
- Removed Geo-Domains - Streamlined to focus on business domains
- Two Generation Types:
- Business Names - Brandable keyword combinations (e.g.,
madridpro.io) - Mixed - Combination of creative and industry-focused names
- Business Names - Brandable keyword combinations (e.g.,
- Enhanced Keyword Focus - Smarter keyword-based domain generation
- 5 LLM Providers Supported:
- π Local (Ollama) - FREE & PRIVATE (Qwen2.5, Phi3, Mistral, LLaMA 2)
- π€ OpenAI (GPT) - GPT-3.5, GPT-4
- π§ Claude (Anthropic) - Claude 3 Haiku, Sonnet
- β‘ Perplexity API - Sonar, Sonar Pro
- π Grok (xAI) - Grok Beta
- Smart Fallback - Uses keyword-based generator if LLM fails
- Customizable Length - Set min/max domain name length
- TLD Selection - Choose from 12+ popular extensions (.com, .io, .ai, etc.)
- Numbers & Hyphens - Toggle numeric and hyphenated domains
- Bulk Checking - Check up to 100 domains at once
- File Upload - Import domains from .txt or .csv files
- Multi-Method Verification:
- RDAP (Registry Data Access Protocol) - Fast & official
- WHOIS API - Fallback for unsupported TLDs
- DNS Lookup - Basic availability check
- Detailed Results:
- β Availability status
- π Expiration date
- π’ Registrar information
- β° Days until expiration
- π Verification method used
- Automatic Tracking - All scanned domains automatically saved
- Advanced Filters - Search by keyword, availability, or registrar
- Batch Actions - Remove all or individual domains
- Expiration Alerts - See domains expiring in 7, 14, 30, 60, or 90 days
- Real-Time Updates - Auto-refresh every 30 seconds
- Domain Inventory - Track all your owned domains
- Purchase Records - Log buy price, registrar, and notes
- Investment Tracking - See total portfolio value
- Export Ready - View all domains in organized tables
- Sales Recording - Log domain sales with buy/sell prices
- Automatic Calculations:
- π΅ Total Profit
- π Average Profit per Sale
- π ROI (Return on Investment)
- πΈ Total Revenue
- Time-Based Analytics - Filter by week, month, or year
- Historical Records - View complete sales history
- LLM Settings - Configure AI providers and API keys
- SEO API Keys - Add Moz and Ahrefs credentials
- Model Selection - Choose specific models for each provider
- Connection Testing - Test LLM/SEO API connections before saving
# 1. Clone the repository
git clone https://github.com/xcybermanx/domain-hunter-pro-enhanced.git
cd domain-hunter-pro-enhanced
# 2. Install dependencies
npm install
# 3. Start the server
node server.js
# 4. Open your browser
# Navigate to: http://localhost:3000# Create a .env file
PORT=3000
JWT_SECRET=your-super-secret-jwt-key-change-in-production- First time? Click Register and create an account
- Already have an account? Click Login
- Your data is isolated per user (portfolio, sales, etc.)
Go to Settings β LLM Configuration
# Install Ollama
curl https://ollama.ai/install.sh | sh
# Pull a model (choose one):
ollama pull qwen2.5:3b # β Recommended - Fast & Smart
ollama pull phi3:mini # β‘ Ultra Fast
ollama pull mistral:7b # π§ High QualityThen in Settings:
- β Enable Local LLM
- Select Model:
qwen2.5:3b - Endpoint:
http://localhost:11434/api/generate - Click Test Connection
- OpenAI: Get API key from platform.openai.com
- Claude: Get API key from console.anthropic.com
- Perplexity: Get API key from perplexity.ai
- Grok: Get API key from x.ai
- Go to AI Generator
- Choose generation type:
- Business Names - Brandable combinations
- Mixed - Creative + industry-focused
- Enter keywords (e.g.,
tech, digital, agency) - Select TLDs (.com, .io, .ai, etc.)
- β Check "Use AI/LLM" for smarter results
- Click Generate Domains
- After generation, you'll auto-switch to Scanner
- Or manually enter domains (one per line)
- Or upload a .txt/.csv file
- Click Check Domains
- View results: availability, expiration, registrar
- Click "Monitor" on any scanned domain
- View all in Monitoring page
- Filter by keyword, availability, or registrar
- Set up automated checks in Scheduler
Go to Scheduler page:
- Create a schedule:
- Name: "Daily Check"
- Cron:
0 9 * * *(daily at 9 AM) - Domains: Enter domains to monitor
- Click Create Schedule
- Toggle active/paused as needed
Common Cron Patterns:
0 9 * * *- Daily at 9 AM0 */6 * * *- Every 6 hours0 0 * * 1- Every Monday at midnight0 12 * * 1-5- Weekdays at noon
Go to Webhooks page:
- Create a webhook:
- Name: "Slack Notifications"
- URL: Your Slack/Discord webhook URL
- Events: Select trigger events
- Click Test Webhook to verify
- Active webhooks will send notifications automatically
Slack Webhook Setup:
- Go to Slack β Settings β Incoming Webhooks
- Create new webhook
- Copy URL (e.g.,
https://hooks.slack.com/services/...) - Paste in Domain Hunter Pro
Go to SEO Analytics page:
Single Domain:
- Enter domain name
- Click Analyze
- View DA, PA, backlinks, referring domains
Competitor Analysis:
- Enter multiple domains (one per line)
- Click Analyze Competitors
- View comparison table
Note: Requires Moz or Ahrefs API keys in Settings
- Go to Portfolio page
- Add domains you own
- Enter purchase price, registrar, notes
- View total investment on Dashboard
- Go to Profit Tracker page
- Add a sale:
- Domain name
- Buy price
- Sell price
- Dates
- View automatic profit, ROI calculations
- Filter analytics by week/month/year
- Express.js - Web server
- JWT - Authentication tokens
- bcrypt - Password hashing
- node-cron - Scheduled jobs
- axios - HTTP requests (RDAP/WHOIS/LLM APIs)
- multer - File uploads
- JSON files - Simple database (users, domains, schedules, webhooks)
- Vanilla JS - No frameworks, fast & lightweight
- CSS3 - Modern gradients, animations, responsive design
- FontAwesome - Icons
- Google Fonts - Inter typeface
All data stored in data/ folder:
users.json- User accounts (hashed passwords)domains.json- Scanned domains cacheschedules.json- Automated check scheduleswebhooks.json- Webhook configurationsconfig.json- LLM and SEO API settings
- β JWT Authentication - Secure token-based auth
- β Password Hashing - bcrypt with salt rounds
- β httpOnly Cookies - Prevents XSS attacks
- β
Rate Limiting - Prevents brute force attacks:
- Auth endpoints: 5 requests / 15 minutes
- API endpoints: 60 requests / minute
- β User Isolation - Each user's data is separate
- β Input Validation - Server-side validation on all inputs
POST /api/auth/register- Create new accountPOST /api/auth/login- LoginPOST /api/auth/logout- LogoutGET /api/auth/me- Get current user
POST /api/check-domain- Check single domainPOST /api/check-domains- Check multiple domainsPOST /api/generate-domains- AI domain generationPOST /api/upload-domains- Upload domain list file
GET /api/monitoring/filter- Get monitored domains (with filters)POST /api/monitoring- Add domain to monitoringDELETE /api/monitoring/:domain- Remove specific domainDELETE /api/monitoring- Remove all domains
GET /api/expiring?maxDays=30- Get expiring domains
GET /api/schedules- List all schedulesPOST /api/schedules- Create schedulePATCH /api/schedules/:id/toggle- Toggle active/pausedDELETE /api/schedules/:id- Delete schedule
GET /api/webhooks- List all webhooksPOST /api/webhooks- Create webhookPOST /api/webhooks/:id/test- Test webhookDELETE /api/webhooks/:id- Delete webhook
GET /api/seo/metrics/:domain- Get SEO metrics for domainPOST /api/seo/competitor-analysis- Analyze multiple domains
GET /api/portfolio- Get user's portfolioPOST /api/portfolio- Add domain to portfolioDELETE /api/portfolio/:id- Remove from portfolio
GET /api/sales- Get user's salesPOST /api/sales- Add saleGET /api/analytics/profit?period=month- Get profit analytics
GET /api/config- Get current configPOST /api/config- Save configPOST /api/test-llm-connection- Test LLM connection
GET /api/stats- Dashboard statistics
# Using curl
curl -X POST http://localhost:3000/api/test-llm-connection \
-H "Content-Type: application/json" \
-d '{
"provider": "local",
"endpoint": "http://localhost:11434/api/generate",
"model": "qwen2.5:3b"
}'curl -X POST http://localhost:3000/api/webhooks/YOUR_WEBHOOK_ID/test \
-H "Cookie: token=YOUR_JWT_TOKEN"Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- β NEW: Multi-user authentication system
- β NEW: Automated scheduler with cron jobs
- β NEW: Webhook notification system
- β NEW: SEO analytics (DA, PA, backlinks)
- β NEW: Competitor analysis
- β UPDATED: AI Generator (removed Geo, kept Business + Mixed)
- β UPDATED: User-specific portfolio and sales tracking
- β IMPROVED: Security with rate limiting
- β IMPROVED: Dashboard with profit analytics
- AI-powered domain generation
- Multi-LLM support (5 providers)
- Portfolio management
- Profit tracking
- RDAP/WHOIS integration
- SEO metrics show placeholder data (requires actual Moz/Ahrefs API integration)
- Large domain lists (>100) may timeout
- Some TLDs not supported by RDAP (fallback to WHOIS)
MIT License - see LICENSE file for details
xcybermanx
- GitHub: @xcybermanx
- Email: jawad@live.fr
- Ollama - Local LLM runtime
- OpenAI - GPT models
- Anthropic - Claude models
- Perplexity - Sonar API
- xAI - Grok API
- Moz - Domain authority metrics
- Ahrefs - Backlink data
- RDAP - Domain registry data
If you find this project useful, please consider giving it a star on GitHub!
Need help? Have questions?
- π Open an Issue
- π¬ Discussions
π Happy Domain Hunting! π
Made with β€οΈ by xcybermanx