A comprehensive, high-performance recruitment platform built with FastAPI featuring async operations, AI-powered features, and modern API design.
- JWT-based authentication with refresh tokens
- Role-based access control (Candidate, Recruiter, Admin)
- Password security with bcrypt hashing
- Email verification and password reset flows
- Social authentication support ready
- Dual user types: Candidates and Recruiters
- Profile management with file upload support
- Profile completion tracking
- Secure password management
- Job posting and management for recruiters
- Advanced search and filtering capabilities
- Job save/unsave functionality for candidates
- Custom application forms per job
- Job performance analytics
- Dynamic application forms with custom fields
- File upload support (resumes, portfolios, cover letters)
- Application status tracking with real-time updates
- Interview scheduling and management
- Application analytics and reporting
- Resume parsing and analysis
- Job-candidate matching algorithms
- Skill extraction and categorization
- AI interviewer and mock interview sessions
- Automated CV screening
- Background verification automation
- Company profiles and branding
- Multi-company support for enterprise
- Company-specific job listings
- Team management for recruiters
- Application analytics and insights
- Job performance metrics
- User engagement tracking
- Recruitment funnel analysis
- WebSocket notifications (ready for implementation)
- Real-time application updates
- Chat functionality between candidates and recruiters
- Live interview scheduling
- Backend: FastAPI (Python 3.8+)
- Database: SQLAlchemy with async support (SQLite for dev, PostgreSQL for production)
- Authentication: JWT with PyJWT
- Validation: Pydantic for request/response models
- Documentation: Automatic OpenAPI/Swagger generation
- Testing: Comprehensive API test suite
- File Storage: Local storage with cloud provider support ready
Hire-quick/
βββ fastapi_app/ # Main FastAPI application
β βββ app/
β β βββ api/v1/endpoints/ # API route handlers
β β βββ core/ # Core functionality (config, database, security)
β β βββ models/ # SQLAlchemy database models
β β βββ schemas/ # Pydantic request/response schemas
β βββ main.py # FastAPI application entry point
β βββ requirements.txt # Python dependencies
β βββ migrate.py # Database migration script
β βββ test_api.py # API testing suite
β βββ README.md # Detailed setup instructions
βββ CONVERSION_SUMMARY.md # FastAPI features details
βββ README.md # This file
git clone https://github.com/unmatched78/Hire-quick.git
cd Hire-quick/fastapi_app
pip install -r requirements.txt
cp .env.example .env
# Edit .env with your configuration
python migrate.py
uvicorn main:app --reload --host 0.0.0.0 --port 8000
- API Documentation: http://localhost:8000/docs
- Alternative Docs: http://localhost:8000/redoc
- Health Check: http://localhost:8000/health
The API provides comprehensive endpoints for:
POST /api/v1/auth/register
- User registrationPOST /api/v1/auth/login
- User loginPOST /api/v1/auth/refresh
- Refresh access tokenPOST /api/v1/auth/password-reset
- Request password resetPOST /api/v1/auth/verify-email
- Verify email address
GET /api/v1/users/me
- Get current user profilePUT /api/v1/users/candidate-profile
- Update candidate profilePUT /api/v1/users/recruiter-profile
- Update recruiter profilePOST /api/v1/users/upload-profile-picture
- Upload profile picture
GET /api/v1/jobs
- List jobs with filtering and searchPOST /api/v1/jobs/
- Create new job (recruiters only)GET /api/v1/jobs/{job_id}
- Get job detailsPOST /api/v1/jobs/{job_id}/save
- Save job for later
GET /api/v1/applications/
- List applicationsPOST /api/v1/applications/
- Submit job applicationGET /api/v1/applications/{id}
- Get application detailsPUT /api/v1/applications/{id}/status
- Update application status
GET /api/v1/companies/
- List companiesPOST /api/v1/companies/
- Create company profileGET /api/v1/companies/{id}
- Get company detailsGET /api/v1/companies/{id}/jobs
- Get company jobs
Run the comprehensive API test suite:
python test_api.py
Key environment variables:
# Database
DATABASE_URL=sqlite:///./hire_quick.db
# Security
SECRET_KEY=your-secret-key-here
ACCESS_TOKEN_EXPIRE_MINUTES=30
REFRESH_TOKEN_EXPIRE_DAYS=7
# Email (for notifications)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
# Build and run with Docker
docker build -t hire-quick-api .
docker run -p 8000:8000 hire-quick-api
- Use PostgreSQL for production database
- Set up Redis for caching and background tasks
- Configure proper CORS settings
- Set up SSL/TLS certificates
- Use a reverse proxy (nginx)
- Set up monitoring and logging
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the GPL License - see the LICENSE file for details.
For support and questions:
- Email: iradukundavierra4@gmail.com
- Documentation: API Docs
- Issues: GitHub Issues
- AI-powered resume parsing
- Advanced job matching algorithms
- Real-time chat system
- Video interview integration
- Mobile app API support
- Advanced analytics dashboard
- Multi-language support
- Enterprise SSO integration
Built with β€οΈ using FastAPI and modern Python