A comprehensive job search and application platform built with React, TypeScript, and Tailwind CSS. This platform serves both job seekers and employers with modern, intuitive interfaces and robust functionality.
- Advanced Job Search: Search jobs by role, location, and filters with real-time results
- Job Discovery: Browse jobs by categories with media carousels (images/videos)
- Map View: Interactive map showing job locations with density indicators
- Profile Management: Create and manage multiple candidate profiles
- Job Applications: Streamlined application process with profile selection
- Application Tracking: Track application status and view detailed responses
- DigiLocker Integration: Import verified credentials automatically
- Voice Profile Creation: Voice-guided profile setup
- Score Assessment: Trust and match score calculations
- Document Verification: QR code scanning for certificates and credentials
- AI Chatbot: Interactive chatbot with AI agent calling capabilities
- Job Posting: Multi-step job creation wizard with role-specific forms
- Media Support: Upload workplace images and videos
- Progressive Loading: Smart loading states with caching and retry logic
- Responsive Design: Mobile-first design with adaptive layouts
- Real-time Updates: Live status updates and notifications
- Offline Support: Cached data for better performance
- Accessibility: WCAG compliant components
- Internationalization: Multi-language support ready
- Frontend: React 18, TypeScript, Vite
- Styling: Tailwind CSS, shadcn/ui components
- State Management: React Context API, TanStack Query
- HTTP Client: Custom API client with timeout handling
- Icons: Lucide React
- Maps: Custom map implementation
- Authentication: Custom auth system with session management
- File Upload: Presigned URL uploads with progress tracking
src/
βββ components/
β βββ auth/ # Authentication dialogs
β βββ candidates/ # Candidate management
β βββ employer/ # Employer management
β βββ header/ # Navigation and user menu
β βββ job-application/ # Job application flow
β βββ job-search/ # Job search and discovery
β βββ map/ # Interactive map components
β βββ my-applications/ # Application tracking
β βββ my-jobs/ # Employer job management
β βββ postJob/ # Job posting wizard
β βββ profile/ # Profile creation and management
β βββ provider/ # Employer dashboard
β βββ score/ # Assessment and scoring
β βββ ui/ # Reusable UI components
βββ contexts/ # React contexts
βββ hooks/ # Custom React hooks
βββ lib/ # API clients and utilities
βββ pages/ # Main page components
βββ schemas/ # JSON schemas for roles
βββ types/ # TypeScript type definitions
βββ utils/ # Utility functions
- Node.js 18+ and pnpm
- Git
This project uses pnpm as the package manager. Please ensure you have pnpm installed:
npm install -g pnpmImportant: This project is configured to use pnpm exclusively. Using npm or yarn may cause dependency conflicts and deployment issues.
- Clone the repository
git clone <YOUR_GIT_URL>
cd creds-job-bridge- Install dependencies
pnpm install- Environment Configuration
Create a .env file in the root directory:
# API ConfigurationIf you encounter dependency conflicts or deployment issues:
- Clean and reinstall:
pnpm run clean- Ensure pnpm consistency:
pnpm run ensure-pnpm- Check for conflicting lock files:
- Ensure only
pnpm-lock.yamlexists - Remove
package-lock.jsonandyarn.lockif present
- Ensure only
- "pnpm-lock.yaml is not up to date": Run
pnpm installto sync dependencies - Build failures in Amplify: Ensure you're using pnpm in your build settings
- Dependency conflicts: Use
pnpm run cleanto reset the environment VITE_BAP_URL=https://your-bap-api-url.com VITE_BAP_API_KEY=your_bap_api_key_here VITE_BPP_URL=https://your-bpp-api-url.com
VITE_TRUST_MATCH_SCORE_URL=https://your-trust-service-url.com/api VITE_TRUST_MATCH_SCORE_API_KEY=your_trust_service_api_key_here
VITE_BAP_SEARCH_EXCLUDE=ITI/Polytechnic
VITE_AGENT_URL=https://your-agent-api-url.com VITE_AGENT_TOKEN=your-agent-api-token-here
VITE_UPLOAD_BUCKET=your-s3-bucket-name VITE_UPLOAD_REGION=your-s3-region
VITE_OUTBOUND_CALL_URL=https://your-outbound-call-api.com VITE_OUTBOUND_API_KEY=your_outbound_api_key_here
4. **Start the development server**
```bash
npm run dev
- Open your browser Navigate to http://localhost:5173
To enable automatic profile import from DigiLocker:
- Set the environment variables:
VITE_AGENT_URL=https://your-agent-api-url.com
VITE_AGENT_TOKEN=your-agent-api-token-here- Host the bridge page at your redirect domain:
- Copy
public/digilocker-bridge.htmlto your redirect domain - Ensure it's accessible at the path specified in your DigiLocker app configuration
- Copy
For media uploads (images, videos, documents):
VITE_UPLOAD_BUCKET=your-s3-bucket-name
VITE_UPLOAD_REGION=your-s3-regionFor AI agent outbound calls:
VITE_OUTBOUND_CALL_URL=https://your-outbound-call-api.com
VITE_OUTBOUND_API_KEY=your_outbound_api_key_hereThe chatbot provides:
- Vertical Chat Interface: Opens upward from the chat button
- AI Agent Calls: Direct phone calls to AI agents
- Phone Validation: Automatic Indian phone number formatting
- Smooth Animations: Engaging user experience with CSS animations
- Browse Jobs: Use the search bar or explore job categories
- View Details: Click on job cards to see detailed information
- Apply: Select a profile and complete the application
- Track Applications: Monitor application status in "My Applications"
- Manage Profiles: Create and update candidate profiles
- Post Jobs: Use the job posting wizard to create detailed job listings
- Manage Applications: Review and shortlist candidates
- Track Performance: Monitor job posting metrics
- Organization Setup: Configure employer profiles and settings
The application integrates with:
- BAP (Beckn Application Protocol): For job search and discovery
- BPP (Beckn Provider Protocol): For job posting and management
- Custom APIs: For authentication, profile management, and file uploads
- Progressive Loading: Different states for initial load, refresh, and slow responses
- Request Timeout: 30-second timeout with automatic retry logic
- Caching: 5-minute cache to reduce API calls
- Error Handling: Graceful fallbacks and retry mechanisms
# Development
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
# Code Quality
npm run lint # Run ESLint
npm run type-check # Run TypeScript type checking- TypeScript: Strict type checking enabled
- ESLint: Code linting with custom rules
- Prettier: Code formatting (configured via ESLint)
- Connect your GitHub repository to AWS Amplify
- Configure environment variables in amplify dashboard
- Deploy automatically on push to main branch
The application can be deployed to any static hosting platform:
- Netlify
- GitHub Pages
- AWS S3 + CloudFront
- Firebase Hosting
- 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
- Follow TypeScript best practices
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure responsive design for all components
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the GitHub repository
- Check the documentation in the
/docsfolder - Review the code comments for implementation details
Built with β€οΈ using modern web technologies by Dhiway Team.