Referrer Mailer is a powerful, self-hosted referral system designed to give you complete control over your referral process. Leveraging the power of Gemini 1.5 Flash, Go, MongoDB, and Angular, this project automates resume analysis, candidate screening, and email notifications.
- Self-Hosted & Full Control: Maintain complete ownership and privacy of your data.
- Gemini 1.5 Flash Integration: AI-powered candidate screening and profile summaries.
- Automated Resume Analysis: Extract key information from uploaded resumes.
- Efficient Processing: Go backend with worker pools and goroutines for concurrent task execution.
- Scalable Database: MongoDB for robust data storage and job queue management.
- User-Friendly Interface: Angular frontend for a seamless user experience.
- Inbuilt SMTP: Reliable email delivery with your preferred SMTP server.
- Cloud Storage Integration: Store resumes securely in cloud storage.
- Automated Email Notifications: Send personalized referral emails and AI-drafted emails.
- Backend: Go
- Database: MongoDB
- Frontend: Angular
- AI: Gemini 1.5 Flash (Vertex AI Platform)
- Email: SMTP
- Cloud Storage: (Specify which cloud storage you are using, e.g., Google Cloud Storage)
The system follows a multi-stage workflow:
- Resume Upload: Users upload resumes through the Angular frontend.
- Resume Analysis (ResumeAnalyzer): Extracted data from the resume.
- Pinpoint Summary: A brief summary of the resume.
- Candidate Profiling: Detailed profile generation.
- Content to JSON Struct: Convert extracted data to a structured JSON format.
- Email Notifications: Send automated emails.
- Candidate Screening: Using Gemini 1.5 Flash for candidate evaluation.
- Data Storage: MongoDB stores records, and cloud storage holds resume files.
- Outbound Email Service: SMTP for sending emails.
- Worker Pools & Goroutines: Efficient task processing.
- Go (version 1.x)
- MongoDB
- Angular CLI
- Google Cloud Platform (GCP) Account (if using GCP services)
- SMTP Server Credentials
-
Clone the repository:
git clone [https://github.com/sounishnath003/referrer-emailer-go.git](https://www.google.com/search?q=https://github.com/sounishnath003/referrer-emailer-go.git) cd referrer-emailer-go
-
Backend Setup (Go):
- Navigate to the backend directory.
- Install dependencies:
go mod tidy
- Configure MongoDB and SMTP settings in the
.env
file or environment variables. - Run the backend:
go run main.go
-
Frontend Setup (Angular):
- Navigate to the frontend directory.
- Install dependencies:
npm install
- Configure backend API endpoints in the Angular environment files.
- Run the frontend:
ng serve
-
MongoDB Setup:
- Ensure MongoDB is running and accessible.
- Create the necessary database and collections.
-
Google Cloud Setup (if applicable):
- Set up a Google Cloud Project and enable necessary APIs.
- Configure credentials for accessing Google Cloud Storage and Vertex AI.
-
Run the Project (Locally)
- Makefile
.PHONY: install
install:
go mod tidy
go mod download
go mod verify
.PHONY: build
build:
CGO_ENABLED=0 GO_ARCH=amd64 go build -o ./tmp/main ./cmd/*.go
.PHONY: run
run: build
./tmp/main
.PHONY: web
web:
cd web && npm start
.PHONY: all
all: build
source .env && make run &
cd web && npm start
.PHONY: compose-up
compose-up:
docker-compose down
docker-compose up --build
.PHONY: docker-build
docker-build:
docker rmi -f $$(docker images referrer-emailer -qa)
docker build -t referrer-emailer -f Dockerfile .
docker images
.PHONY: docker-run
docker-run:
docker images
source .env;
docker run -ti -e MAIL_ADDR=$MAIL_ADDR -e MAIL_SECRET=$MAIL_SECRET -e MONGO_DB_URI=$MONGO_DB_URI -v ./storage:/home/nonroot/storage -p 3000:3000 referrer-emailer:latest
- Simply Run:
make install
make all
- Environment Variables: Use
.env
files or environment variables to configure database connections, SMTP settings, and API keys. - Configuration Files: Customize configuration files for specific settings.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them.
- Push your changes to your fork.
- Submit a pull request.
This project is licensed under the MIT License. See the LICENSE
file for details.
- Sounish Nath - linkedin.com/in/sounishnath
For any questions or suggestions, please open an issue or contact me via LinkedIn.
We welcome contributions! Please fork the repository and submit a pull request.
For any questions or support, please contact https://www.linkedin.com/in/sounishnath/.