AuraMail is a placement-email assistant for students. It connects to Gmail with read-only access, finds internship and job announcements, extracts the important details, and presents them in a focused opportunity inbox.
Live app: aura-mail-dun.vercel.app
Privacy Policy · Terms of Service · Deployment guide
- Authenticates with Google OAuth and keeps sessions alive with access/refresh tokens.
- Syncs relevant Gmail messages in the background and groups related messages into threads.
- Produces detailed AI-assisted summaries instead of reducing long opportunities to a single paragraph.
- Extracts roles, companies, locations, experience, eligibility, deadlines, compensation, and application instructions.
- Keeps useful links from the main email body as clickable links while filtering known promotional/footer links.
- Shows attachment metadata and opens Gmail attachments in a new browser tab.
- Organizes messages by category, priority, deadline, sender, and search terms.
- Lets users add opportunity deadlines to Google Calendar.
| Part | Service | Technology |
|---|---|---|
| Web app | Vercel | Next.js 16, React, TypeScript, Tailwind CSS |
| API and background sync | Render | Go, Chi, Docker |
| Database | Neon | PostgreSQL and Goose migrations |
| AI summaries | OpenAI | GPT-4o mini |
| Authentication | OAuth 2.0, JWT access and refresh tokens |
The frontend is deployed from frontend/. The backend is deployed from backend/ using the repository's render.yaml blueprint. See DEPLOY.md for the complete production setup.
AuraMail/
├── backend/ # Go API, Gmail sync, AI processing, auth, and migrations
├── frontend/ # Next.js web application
├── DEPLOY.md # Production deployment instructions
└── LICENSE # MIT license
- Go 1.25+
- Node.js 18+
- pnpm
- PostgreSQL 12+
- A Google Cloud project with Gmail and Calendar APIs enabled
- Google OAuth credentials
- An OpenAI API key for AI summaries
git clone https://github.com/R7rainz/AuraMail.git
cd AuraMailCreate backend/.env:
PORT=8080
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/auramail?sslmode=disable
GOOSE_DBSTRING=postgresql://postgres:postgres@localhost:5432/auramail?sslmode=disable
JWT_SECRET=replace-with-a-long-random-secret
JWT_REFRESH_SECRET=replace-with-another-long-random-secret
GOOGLE_OAUTH_CLIENT_ID=your-client-id
GOOGLE_OAUTH_CLIENT_SECRET=your-client-secret
GOOGLE_OAUTH_REDIRECT_URI=http://localhost:8080/auth/google/callback
OPENAI_API_KEY=your-openai-key
FRONTEND_URL=http://localhost:3000
ALLOWED_ORIGINS=http://localhost:3000
SYNC_ENABLED=true
SYNC_INTERVAL=30m
SYNC_MAX_RESULTS=25
SYNC_INCLUDE_THREADS=trueFor the full environment-variable reference, see backend/README.md.
cd backend
make docker-up
make migrate-up
make runThe API runs at http://localhost:8080.
In another terminal:
cd frontend
pnpm install
printf 'NEXT_PUBLIC_API_URL=http://localhost:8080\n' > .env.local
pnpm devOpen http://localhost:3000.
cd backend
make test
make build
make migrate-statuscd frontend
pnpm test
pnpm lint
pnpm build- Create or select a project in Google Cloud Console.
- Enable the Gmail API and Google Calendar API.
- Configure the OAuth consent screen and add test users while the app is in testing mode.
- Create a Web application OAuth client.
- Add
http://localhost:8080/auth/google/callbackas a local redirect URI. - Add the production backend callback URL to the OAuth client before deploying.
AuraMail requests Gmail read access for syncing messages and Calendar access when a user chooses to add an event. Users can review the public Privacy Policy and Terms of Service.
AuraMail is released under the MIT License.
- Fork the repository.
- Create a branch:
git checkout -b feature/your-change. - Run the relevant backend and frontend checks.
- Open a pull request with a short description of the change.