CareerNode is a personal, AI-powered job application tracking system designed for engineers. It connects directly to your Gmail to automatically scan for application updates, extracts details using Gemini AI, and manages your entire job hunt pipeline from a sleek, localized dashboard.
- 📩 Automated Email Sweeping: Connects via IMAP to your Gmail account. It scans for application receipts, assessment invites, and interview schedules, automatically updating your pipeline.
- 🧠 AI-Powered Parsing: Uses Google's Gemini 3.5 Flash to extract the exact Company, Role, and Application Status from complex and noisy recruiter emails.
- 📊 Smart Dashboard: A Next.js front-end that visually maps your progress through specific stages (Assessment Pending, Interview Pending, Offers, etc.) and calculates your conversion rates.
- 🤖 Embedded AI Assistant: A personal career coach built into the app. Chat with Gemini to generate custom cover letters, get tailored interview prep, or summarize your application database.
- 📂 Resume & Portfolio Context: Upload your resumes and portfolio projects. The AI assistant automatically uses them as context when generating mock interviews or cover letters.
CareerNode is a modern, decoupled web application built specifically for self-hosting:
- Frontend: Next.js 14, React, Tailwind CSS.
- Backend: Python, FastAPI, Motor (Async MongoDB), APScheduler (Background jobs).
- Database: MongoDB.
- AI Integration: Google Generative AI (Gemini).
CareerNode/
├── .gitignore # Keeps your .env and credentials safe
├── README.md # This documentation file
├── start.bat # 1-click launch script (Windows)
├── backend/ # The Python FastAPI Server
│ ├── main.py # Entry point & CORS setup
│ ├── requirements.txt# All Python dependencies
│ ├── .env # (You create this!) Holds your API keys
│ ├── routers/ # API endpoints (jobs, ai, analytics, email)
│ ├── services/ # Email sweeping & Gemini parsing logic
│ └── models/ # MongoDB schemas
└── frontend/ # The Next.js React App
├── package.json # Node.js dependencies
├── src/
│ ├── app/ # Dashboard & AI Assistant pages
│ ├── components/ # Reusable UI components
│ └── lib/ # API client and utility functions
CareerNode is currently built as a Personal, Single-User Application. If you deploy this to the internet (e.g., via Vercel/Render), do not share the URL publicly, as there is no user login system. Anyone who visits the URL will see your database.
If you are a developer looking to use CareerNode, you must fork this repository and deploy your own private instance, providing your own API keys.
- Node.js (v18+)
- Python (v3.10+)
- MongoDB (Local or MongoDB Atlas)
- A Gemini API Key (Get one free from Google AI Studio)
- A Gmail App Password (For email sweeping)
Open a terminal and navigate to the backend folder:
cd backend
python -m venv venv
source venv/bin/activate # On Windows use: venv\Scripts\activate
pip install -r requirements.txtCreate a .env file in the backend directory:
# Database
MONGODB_URL=mongodb://localhost:27017
DATABASE_NAME=careernode
# Gmail IMAP Credentials
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
IMAP_USER=your_email@gmail.com
IMAP_PASSWORD=your_16_digit_app_password
# Gemini AI Key
GEMINI_API_KEY=your_gemini_api_key
# Frontend URL for CORS
FRONTEND_URL=http://localhost:3000Start the FastAPI server:
python main.pyOpen a new terminal and navigate to the frontend folder:
cd frontend
npm installStart the Next.js development server:
npm run devThe app will be running at http://localhost:3000.
To host your own private instance of CareerNode on the cloud:
- Database: Create a free cluster on MongoDB Atlas and get your connection string.
- Backend: Push your code to GitHub and connect it to Render or Railway. Set the Environment Variables (
MONGODB_URL,IMAP_USER,IMAP_PASSWORD,GEMINI_API_KEY) in their dashboard. - Frontend: Connect your GitHub repo to Vercel. Set
NEXT_PUBLIC_API_URLto the URL of your deployed backend.
(Remember to keep your .env file local and never commit it to GitHub!)
MIT License - Free to use and modify.
