A desktop application for candidates to take AI-powered interviews with built-in security monitoring. This Electron-based app provides a secure, dedicated environment for interview sessions while maintaining the same UI/UX as the web platform.
- Resume Upload: Upload and parse PDF/DOCX resumes
- AI-Powered Questions: Personalized questions based on resume content
- Real-time Chat Interface: Interactive interview experience
- Code Execution: Secure sandboxed JavaScript execution
- Session Management: Persistent interview sessions with recovery
- Process Monitoring: Real-time system process tracking
- Blocked Application Detection: Identifies and prevents cheating applications
- System Tray Integration: Runs silently in background
- Cross-platform Support: Windows, macOS, and Linux
- Modern UI: Built with Ant Design components
- Responsive Design: Adapts to different screen sizes
- State Management: Redux for persistent state
- Navigation: React Router for seamless navigation
- Electron: Desktop application framework
- React 19: UI library with TypeScript
- Redux Toolkit: State management
- Ant Design: UI component library
- React Router: Navigation
- Monaco Editor: Code editor
- Axios: HTTP client
- Redux Persist: State persistence
- Node.js 18+
- npm or yarn
-
Install Dependencies
npm install
-
Start Development Server
npm run dev
-
Build for Production
npm run build
# Windows
npm run build:win
# macOS
npm run build:mac
# Linux
npm run build:linux- Download and Install: Get the desktop app for your platform
- Login: Use your interview credentials
- Join Interview: Enter the interview link token provided by your interviewer
- Upload Resume: Upload your resume (PDF or DOCX)
- Complete Information: Fill in any missing personal details
- Take Interview: Answer AI-generated questions in real-time
- Submit Results: Complete the interview and submit your responses
- Create Interview Links: Use the web admin panel to generate interview links
- Share Links: Send the interview link tokens to candidates
- Monitor Progress: Track interview sessions and results through the web dashboard
The app connects to the Crisp web API. Configure the API endpoint in:
src/renderer/src/constants/api.ts
Process monitoring settings can be configured in:
src/main/process-monitor.ts
- Window Management: Creates and manages the main application window
- Process Monitoring: Monitors system processes for security
- WebSocket Server: Provides real-time security status updates
- System Tray: Provides system tray integration
- React Application: Main UI built with React and TypeScript
- Redux Store: Manages application state
- Routing: Handles navigation between different views
- API Communication: Communicates with the web backend
- Login: User authentication
- JoinInterview: Interview link validation and joining
- Interview: Main interview interface
- ResumeUpload: Resume upload and processing
- InfoCollection: Personal information collection
- InterviewSession: Main interview chat interface
- ChatMessage: Individual chat message display
The app monitors system processes to detect and prevent cheating applications:
- Blocked Apps: ChatGPT, TeamViewer, Zoom, etc.
- Real-time Detection: Continuous monitoring during interviews
- Automatic Termination: Kills detected applications
- Local Storage: Interview data stored locally with encryption
- API Communication: Secure HTTPS communication
- Token Management: JWT tokens for authentication
src/
βββ main/ # Electron main process
β βββ index.ts # Main process entry point
β βββ process-monitor.ts # Process monitoring
β βββ websocket-server.ts # WebSocket server
βββ preload/ # Preload scripts
βββ renderer/ # React application
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ store/ # Redux store
β β βββ services/ # API services
β β βββ types/ # TypeScript types
βββ shared/ # Shared types
npm run dev: Start development servernpm run build: Build for productionnpm run typecheck: Run TypeScript type checkingnpm run lint: Run ESLintnpm run build:win: Build Windows executablenpm run build:mac: Build macOS applicationnpm run build:linux: Build Linux application
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and type checking
- Submit a pull request
This project is part of the Crisp Interview Platform. See the main project for licensing information.
For support and questions:
- Check the main project documentation
- Contact the development team
- Report issues through the project repository