Skip to content

Latest commit

 

History

History
305 lines (229 loc) · 10.5 KB

File metadata and controls

305 lines (229 loc) · 10.5 KB

Companion-AI - Revolutionize your hiring process

Revolutionize your hiring process with AI-powered recruitment solutions that streamline talent acquisition and help companies find the best candidates faster.

🚀 Features

For HR Professionals

  • AI-Powered Resume Screening: Automated resume parsing and candidate scoring
  • Intelligent Job Posting: Create comprehensive job descriptions with built-in aptitude tests
  • Smart Candidate Matching: Advanced algorithms to match candidates with job requirements
  • Interview Scheduling: Automated communication and interview coordination
  • Application Management: Comprehensive dashboard for tracking all applications
  • User Authentication with OTP (Email): Secure login and verification using one-time passwords sent via SMTP

For Candidates

  • Job Insights & Analytics: Detailed market analysis and career recommendations
  • Skill Assessment: Interactive aptitude tests and technical evaluations
  • Resume Optimization: AI-powered feedback and improvement suggestions
  • Career Guidance: Personalized job and course recommendations
  • Application Tracking: Real-time status updates on job applications
  • User Authentication with OTP (Email): Secure login and verification using one-time passwords sent via SMTP

🛠️ Tech Stack

Backend

  • .NET 9 (ASP.NET MVC) – Modern web framework for building scalable applications
  • C# 12 – Primary backend programming language
  • Entity Framework Core 9 – ORM for data access and LINQ queries
  • Unit of Work & Repository Pattern – Transaction-safe, modular data management
  • Custom User Authentication – Built-in role-based user system
  • AutoMapper – Object-to-object mapping between DTOs and entities
  • MailKit – For email notifications and account verification
  • Cloudinary – Cloud-based media storage for images and documents
  • CSVHelper – Import/export candidate or job data in CSV format
  • OpenXML + iText7 – For generating and reading DOCX/PDF reports
  • Pgvector – AI-ready vector similarity search within PostgreSQL
  • Caching (PostgreSQL Cache Provider) – Optimized query caching for performance

Frontend

  • Tailwind CSS – Utility-first CSS framework for responsive design
  • JavaScript (ES6) – For dynamic frontend interactivity
  • Razor Views – Server-side rendered UI templates

Database

  • PostgreSQL – Primary relational database

Architecture & Design

  • Layered Architecture (MVC + Service + Repository) – Clean separation of concerns
  • Dependency Injection (DI) – Built-in service management via .NET Core
  • Unit of Work Pattern – Ensures atomic database transactions
  • Configuration Managementappsettings.json & environment variables

Development Tools

  • Visual Studio 2022 – IDE for .NET 9 development
  • NuGet – Package manager for dependencies
  • Git & GitHub – Version control and CI/CD
  • EF Core Migrations – Database schema evolution

AI & Extensions

  • Enables vector embeddings - Semantic search
  • Cloudinary Integration – Smart asset handling for resumes and documents
  • Scoring & Analysis Services (Pluggable) – Extendable for AI-powered candidate ranking using Langgraph + Langchain

AI/ML Components

  • Resume Parsing: Text extraction from PDF/images using OCR and langgraph
  • Skill Matching: Cosine similarity with Transformer
  • Job Recommendations: NLP-based career guidance system
  • Scoring Algorithms: Multi-factor candidate evaluation
  • AI-based Mock Interview system: Analysis of answered questions, Video and Audio using Mediapipe and Librosa
  • Personalized Career Post: Posts using Serper API

📁 Project Structure

Companion-AI/
│
├── Dotnet-MVC/                       # Frontend and main web application (ASP.NET MVC)
│   ├── Controllers/                  # Handles HTTP requests and responses
│   ├── Models/                       # Contains data models and entity classes
│   ├── Views/                        # Razor (.cshtml) views organized by controller
│   ├── wwwroot/                      # Static files (CSS, JS, images)
│   ├── Attributes/                   # Custom attributes (e.g., authorization filters, Email service)
│   ├── ViewModels/                   # View model classes combining data for views
│   ├── Migrations/                   # Entity Framework migration files
│   ├── Data/                         # Database context and initialization scripts
│   ├── appsettings.json              # Application configuration (e.g., connection strings)
│   └── Program.cs                    # Application entry point, Configures services, middleware, and routing
│
└── Python-Backend/                   # AI and API backend (FastAPI)
    ├── agent/                        # AI agent implementation files
    ├── utils/                        # Utility and helper functions
    ├── feedback/                     # User feedback handling and processing
    ├── app.py                        # FastAPI main application file
    ├── requirements.txt              # Python dependencies list
    └── Dockerfile                    # Docker image configuration

🚦 Getting Started

Prerequisites

  • Python 3.9+
  • .NET SDK 7.0+ (or the version your project targets)
  • Visual Studio 2022+ (or VS Code with C# extension)
  • Optional: NuGet CLI for restoring packages
  • PostgreSQL database

1. Clone the repository

DotNet-MVC Setup

cd Dotnet-MVC

2. Open the project

  • Open the .sln file in Visual Studio, or open the folder in VS Code.

3. Restore NuGet packages

  • Visual Studio usually restores automatically on project load.
  • Or via CLI:
dotnet restore

4. Configure database connection

  • Update appsettings.json with your database credentials:
"ConnectionStrings": {
  "DefaultConnection": "Host=localhost;Port=5432;Database=CompanionAI;Username=postgres;Password=root"
}

5. Run database migrations (if using EF Core)

dotnet ef database update

This will create tables in your configured database.

6. Configure other settings

  • Cloudinary, SMTP, or other API keys in appsettings.json as needed.

7. Build the project

dotnet build

8. Run the project

dotnet run
  • By default, the app will run on https://localhost:5001 or http://localhost:5000.
  • Open the browser to verify.

Optional: Using Visual Studio

  1. Open the .sln file.
  2. Set Startup Project to your MVC project.
  3. Press F5 to run with IIS Express.

Notes

  • Ensure your database server is running before starting the app.
  • Configure ConnectionStrings properly based on your database.
  • Make sure any required API keys or settings are added to appsettings.json.

### Backend Setup

```bash
cd "Python Backend"
pip install -r requirements.txt
cp .env.example .env
python main.py

Environment Variables

DotNet (Appsetting.json)

SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_SENDER_NAME=your_sender_name
SMTP_SENDER_EMAIL=your_sender_email
SMTP_USERNAME=your_email_username
SMTP_PASSWORD=your_email_password

Python Backend (.env)

GROQ_API_KEY=your_groq_api_key
SERPER_API_KEY=your_serper_api_key

# Cloudinary (File/Media Storage)
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret

🔧 Core Components

Resume Agent

Intelligent resume parsing and analysis system that extracts skills, experience, and qualifications to generate comprehensive candidate profiles.

Scoring Agent

Multi-dimensional evaluation system that scores candidates based on technical skills, experience, certifications, projects, and soft skills.

Scheduler Communication Agent

Automated communication system for interview scheduling and candidate engagement with personalized messaging.

Job Insights Engine

Advanced analytics platform providing market trends, salary insights, and career growth predictions.

🎯 User Roles

HR Professional

  • Create and manage job postings
  • Build custom aptitude tests
  • Review and score applications
  • Schedule interviews
  • Generate hiring reports

Candidate

  • Browse job opportunities
  • Take skill assessments using mock interviews
  • Submit applications
  • Track application status
  • Access career insights
  • Give feedback on jobs
  • Get Personalized career posts

🔒 Security Features

  • Multi-factor authentication via SMTP OTP based
  • Role-based access control
  • Secure file upload handling
  • Data encryption and privacy protection (using SHA256 with salting for password storing)
  • CORS and security middleware

📊 Analytics & Insights

  • Real-time job market analysis
  • Salary benchmarking by role and location
  • Skills demand forecasting
  • Industry growth trends
  • Personalized career recommendations

👥 Contributors

Manil Modi

  • Built the Candidate Panel to streamline job-seeker interactions and profile management.
  • Implemented Semantic Job Search for accurate and intelligent job matching.
  • Developed features for:
    • 🧠 AI-powered Mock Interviews to help candidates prepare effectively
    • 🎯 Personalized Job Recommendations
    • 🌍 Global Job Search capabilities
    • 📊 Data Analysis on last year's trends to highlight in-demand roles

Kuldeepsinh Dabhi

  • Built the HR Panel for streamlined recruitment and employee workflows.
  • Set up Cloudinary for secure and scalable media storage.
  • Implemented Feedback Management to collect and organize user input.

Deep Prajapati

  • Engineered Feedback Sentiment Analysis to extract insights from user reviews.
  • Developed Session and Cookie-based Authentication with:
    • 🔐 SMTP-based OTP verification for login, registration, and sensitive data changes
    • ⚠️ Error handling for HTTP status codes: 403, 404, and 401 , etc.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📞 Support

For support and questions:

🏆 Acknowledgments

Built with modern web technologies and AI frameworks to create an innovative hiring solution that benefits both employers and job seekers.