Streamline your recruitment rejection workflow with AI-powered, personalized rejection emails.
RejectFlow automates the rejection email process by:
- Upload candidates - CSV or manual entry
- Collect feedback - Capture interview insights
- Generate drafts - AI creates personalized rejection emails
- Review & approve - Edit and refine before sending
- Send emails - One-click distribution via Resend
- ✨ AI-Powered Email Generation - Anthropic's advanced AI models create empathetic, personalized rejection emails
- 📧 Smart Personalization - Emails adapted to candidate's role, experience level, and feedback
- ⚡ Fast Workflow - From candidate data to approved email in minutes
- 🔒 Enterprise Security - NextAuth authentication, encrypted data, compliance-ready
- 🌐 Multi-Region Support - Global pricing with regional multipliers
- 📊 Bulk Processing - Handle dozens of candidates per request
- 🔗 ATS Integration - Connect with Workday, Bamboo HR, Greenhouse
- 📱 Web App & API - Use the interface or integrate via REST API
| Plan | Monthly | Annual (20% Off) | Best For |
|---|---|---|---|
| Free | $0 | - | Testing the platform |
| Starter | $49 | $39.20/mo | Small teams (2,500 emails/month) |
| Professional | $149 | $119.20/mo | Growing teams (10,000 emails/month) |
| Enterprise | Custom | Custom | Large organizations + white-label |
All plans include 14-day free trial. Pricing adjusts by region.
- Node.js 18+
- npm or yarn
- Supabase account (free tier available)
- Resend account for email delivery
# Clone repository
git clone https://github.com/MHSBuilds/RejectFlow-Public.git
cd RejectFlow-Public
# Install dependencies
npm install
# Set up environment variables
cp .env.local.example .env.local
# Edit .env.local with your API keys
# Start development server
npm run devVisit http://localhost:3000 and sign up with Google or email.
- Frontend: Next.js 14, React, TypeScript
- Authentication: NextAuth.js with Google OAuth
- Database: Supabase (PostgreSQL)
- AI: Anthropic's Claude models via OpenRouter
- Email: Resend for reliable email delivery
- Styling: Tailwind CSS
src/
├── app/ # Next.js App Router pages & API routes
├── components/ # Reusable React components
├── lib/ # Utilities (auth, API clients, email processing)
├── types/ # TypeScript interfaces
└── styles/ # Global CSS
Create .env.local with:
# Supabase
NEXT_PUBLIC_SUPABASE_URL=your-url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-key
SUPABASE_SERVICE_ROLE_KEY=your-key
# Email Service
RESEND_API_KEY=your-key
# Authentication
GOOGLE_CLIENT_ID=your-id
GOOGLE_CLIENT_SECRET=your-secret
NEXTAUTH_SECRET=generate-random-string
# AI Service
OPENROUTER_API_KEY=your-keySee .env.local.example for complete list.
RejectFlow uses Anthropic's advanced AI to generate rejection emails that are:
- Empathetic - Respectful tone acknowledges candidate effort
- Personalized - Tailored to role, experience, and feedback
- Professional - Maintains brand voice and company tone
- Constructive - Includes development areas for senior roles
- Generate - AI creates initial draft based on candidate data
- Review - Human approval + optional edits
- Approve - Lock in final version
- Send - Deliver via Resend with tracking
Global pricing with automatic regional adjustments for India, Pakistan, Malaysia, UAE, Saudi Arabia, Turkey, and Europe.
full_name,email,position,rating,notes,rejection_reasons,areas_for_improvement
John Doe,john@example.com,Software Engineer,6,Good technical skills but lacks experience,Insufficient experience,Technical depth
Jane Smith,jane@example.com,Product Manager,4,Strong communication but limited experience,Limited PM experience,Product strategynpm run dev # Development server
npm run build # Production build
npm run start # Run production build
npm run lint # ESLint + Next.js checksSchema defined in supabase-schema.sql. Apply via Supabase SQL Editor.
docker-compose up --build# Push to GitHub main branch
git push origin main
# Vercel auto-deploys with webhookSet environment variables in Vercel Dashboard → Settings → Environment Variables.
- 🔐 End-to-end encryption for candidate data
- ✅ GDPR compliant data handling
- 🔑 Secure authentication via NextAuth.js
- 📋 Role-based access control for teams
- 🛡️ Regular security audits
All API endpoints require NextAuth session authentication.
POST /api/drafts/generate
Content-Type: application/json
{
"candidateId": "uuid-here",
"feedbackId": "uuid-here"
}Response:
{
"success": true,
"draftId": "uuid",
"content": "Dear [Candidate]...",
"status": "draft"
}See full API Documentation under the API Docs page for complete reference. This page can be found once signed in to the application.
- Emails are tested for consistency across Gmail and Outlook
- If formatting appears broken, check your email client settings
- Try viewing in a different email client to verify
# Clear build cache and reinstall
rm -rf .next node_modules package-lock.json
npm install
npm run build- Verify Supabase credentials in
.env.local - Check that your IP is in Supabase firewall whitelist
- Test connection via Supabase dashboard
- Webhook integrations for ATS systems
- Advanced email template customization
- Analytics dashboard with performance metrics
- Team collaboration & approval workflows
- Additional language support
Contributions welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License
Made with ❤️ by the RejectFlow team