An intelligent hiring platform that combines resume parsing, ATS scoring, OmniDimension voice interviews, and ML-based behavioral analysis.
- Resume Parsing & ATS Scoring: Extract skills and match against job requirements
- Skill Match Visualization: Interactive radar charts showing candidate-job fit
- OmniDimension Voice Interviews: AI-powered behavioral interviews via web widget
- Transcript Analysis: ML-based sentiment and behavior scoring using Google Gemini
- Workflow Automation: n8n integration for post-interview automation
- Dual Dashboard: Separate interfaces for candidates and recruiters
- Frontend: React.js with Chart.js for visualizations, Tailwind CSS for styling
- Backend: Python Flask API with MongoDB
- AI Voice: OmniDimension Web Widget
- ML Processing: spaCy, TextBlob, scikit-learn, Google Generative AI
- Workflow: n8n.io automation (webhook-based)
- Database: MongoDB with PyMongo
- File Processing: PyMuPDF for PDF parsing
- OmniDimension Account: Sign up at OmniDimension
- Python 3.8+
- Node.js 16+
- MongoDB (local or Atlas)
- n8n (optional, for workflow automation)
cd backend
pip install -r requirements.txt
python app.pycd frontend
npm install
npm startCreate a .env file in the backend directory with:
MONGODB_URI=your_mongodb_connection_string
FLASK_SECRET_KEY=your_secret_key
N8N_WEBHOOK_URL=your_n8n_webhook_url
N8N_EMAIL_WEBHOOK_URL=your_email_webhook_url
UPLOAD_FOLDER=uploads
MAX_CONTENT_LENGTH=16777216Codecubicles/
├── backend/ # Flask API
│ ├── app.py # Main Flask application
│ ├── services/ # Business logic services
│ │ ├── resume_service.py # Resume parsing & ATS scoring
│ │ ├── scoring_service.py # ML-based transcript analysis
│ │ └── email_service.py # Email automation via n8n
│ └── requirements.txt # Python dependencies
├── frontend/ # React application
│ ├── src/
│ │ ├── pages/ # Page components
│ │ │ ├── LoginPage.js
│ │ │ ├── CandidateDashboard.js
│ │ │ └── RecruiterDashboard.js
│ │ ├── services/ # API integration
│ │ └── App.js # Main React component
│ ├── package.json # Node.js dependencies
│ └── tailwind.config.js # Tailwind CSS configuration
└── README.md # Project documentation
GET /api/health– Health checkPOST /api/parse-resume– Upload and parse resumePOST /api/calculate-ats-score– Calculate ATS scorePOST /api/analyze-transcript– Analyze interview transcriptGET /api/candidates– Get all candidatesGET /api/dashboard/stats– Get dashboard statisticsPOST /api/jobs– Create job postingGET /api/jobs– List all jobsGET /api/jobs/<job_id>– Get specific jobPOST /api/interview/trigger– Trigger interview using OmniDimension widgetGET /api/interview/transcript/:call_id– Get interview transcriptPOST /api/email/schedule– Schedule email automation via n8n
- Job Selection – Browse and select available job postings
- Resume Upload – Drag-and-drop PDF upload
- ATS Score Display – Real-time skill matching with radar charts
- OmniDimension Widget – AI voice interview integration
- Interview Status – Track interview progress and results
- Job Management – Create and manage job postings with skill requirements
- Candidate Overview – View all candidates and track status
- Dashboard Statistics – View conversion rates, totals, etc.
- Candidate Details – ATS scores, behavioral analysis, recommendations
- Web Widget – Embedded directly in candidate dashboard
- Automatic Triggering – Appears post ATS-score
- Transcript Processing – Receives data via webhook
- Behavioral Analysis – ML-based scoring of voice responses
- Recruiter creates a job with required skills
- Candidate selects job and uploads resume
- System calculates ATS score and displays skill match
- OmniDimension Widget triggers for voice interview
- ML engine processes transcript and generates behavioral score
- n8n integration triggers automation based on score
- Recruiter reviews candidate with both scores
- Fork this repo
- Create a new feature branch
- Commit and push your changes
- Open a Pull Request
For queries or issues:
- 📌 Open an issue in this repository
- 📧 Contact the development team
Built with ❤️ using OmniDimension AI Voice Technology