FailMail is a completed web application that helps users track and analyze job rejection emails from their Gmail account. This tool allows job seekers to visualize their job search journey, turning rejection emails into meaningful insights and statistics.
FailMail follows a modern client-server architecture with these key components:
FailMail/
├── backend/ # FastAPI backend
│ ├── main.py # Main API endpoints
│ ├── auth.py # Google OAuth validation
│ ├── gmail_scanner.py # Email analysis logic
│ ├── models.py # Pydantic data models
│ ├── Dockerfile # Container configuration
│ └── requirements.txt # Python dependencies
│
├── frontend/ # React frontend
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # UI components
│ │ │ └── landing/ # Landing page components
│ │ ├── firebase/ # Firebase configuration
│ │ ├── hooks/ # Custom React hooks
│ │ ├── pages/ # Page components
│ │ ├── App.tsx # Main application
│ │ └── main.tsx # Entry point
│ ├── package.json # Node.js dependencies
│ └── firebase.json # Firebase configuration
│
├── start-app.sh # Development startup script
└── README.md # This file
The backend service handles:
The client application provides:
../auth/gmail.readonly../auth/userinfo.email../auth/userinfo.profile# Clone the repository
git clone https://github.com/yourusername/FailMail.git
cd FailMail
# Set up environment variables
# Create frontend/.env with:
# VITE_GOOGLE_CLIENT_ID="YOUR_CLIENT_ID"
# VITE_API_BASE_URL="http://localhost:8000"
# Backend setup
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cd ..
# Frontend setup
cd frontend
npm install
cd ..
# Start both servers with the convenience script
chmod +x start-app.sh
./start-app.sh
The script will start: - Backend at http://localhost:8000 - Frontend at http://localhost:5173
The backend includes a Dockerfile for containerized deployment:
# Build container
cd backend
docker build -t failmail-backend .
# Push to registry (example for Google Artifact Registry)
docker tag failmail-backend us-west1-docker.pkg.dev/failmail/failmail-repo/failmail-backend:latest
docker push us-west1-docker.pkg.dev/failmail/failmail-repo/failmail-backend:latest
The frontend can be deployed to Firebase Hosting:
cd frontend
npm run build
firebase deploy --only hosting
FailMail prioritizes your privacy:
This project is available under the MIT License - see the LICENSE file for details.
For questions or support, please open an issue on the GitHub repository.
Note: FailMail is a complete project ready for use. The application enables users to gain insights from their job search journey by analyzing rejection emails in a privacy-focused manner.
$ claude mcp add FailMail \
-- python -m otcore.mcp_server <graph>