This project provides an API to process and search resumes. It extracts structured information from PDF resumes using pdf-parse and Gemini AI model, encrypts sensitive data, and stores it in MongoDB.
- Upload resume via URL
- Extract structured data (name, email, education, experience, skills)
- Encrypt sensitive data before saving
- Search resumes with token-agnostic and case-insensitive matching
- Deployable on Render with MongoDB Atlas
- User authentication with login functionality
- Backend: Node.js, Express.js
- Database: MongoDB Atlas
- AI Model: Gemini API
- Deployment: Render (free tier)
- Node.js installed
- MongoDB Atlas account
- Clone the repository:
git clone https://github.com/Kumar-Amitesh/backend-assignment cd backend_assignment - Install dependencies:
npm install
- Create a
.envfile and add:PORT=3000 MONGO_URI=<your_mongodb_connection_string> GEMINI_API_KEY=<your_gemini_api_key> JWT_SECRET=<your_JWT_SECRET> ENCRYPTION_KEY=<your_ENCRYPTION_key>
- Start the server:
node index.js
POST /login
- Body:
{ "username":"naval.ravikant", "password":"05111974" } - Response:
{ token: "<jwt_token>" }
POST /resumes/process
- Headers:
Authorization: Bearer <jwt_token> - Body:
{ "url": "<pdf-url>" } - Response:
{ message: "Resume processed successfully", data: {...} }
GET /resumes/search
- Headers:
Authorization: Bearer <jwt_token> - Body:
{ "name": "John" } - Response:
[ { name: "John Doe", email: "john@example.com", ... }, ... ]
- The API is deployed on Render at: Deployed URL
- GitHub Repository: Repo
This project is licensed under the MIT License.