An AI-powered web application to detect potentially fraudulent job listings using a hybrid approach that combines advanced deep learning with rule-based analysis. This project leverages a Bidirectional LSTM neural network model alongside a comprehensive rule-based system that analyzes job descriptions, salaries, emails, and other factors to assess legitimacy and flag suspicious postings. The system continuously evolves through its dynamic database synced with supabase, allowing it to adapt to new fraudulent patterns over time.
- π§ Employs a hybrid detection approach combining Bidirectional LSTM deep learning model with rule-based analysis
- π΅οΈ Detects unrealistic salaries, vague job descriptions, and high-pressure tactics through predefined rules
- π Assigns a risk level (Low, Medium, High) to job postings with high accuracy
- π© Flags suspicious contact emails and company legitimacy indicators
- π Uses Supabase to store and update risk-related pattern dynamically, enabling continuous learning
- π Adapts to new fraudulent patterns through continuous database updates
- π Web-based interface built with Flask and Tailwind CSS
- Backend: Flask, Supabase (Database)
- Frontend: HTML, Tailwind CSS, jQuery
- Machine Learning: TensorFlow/Keras (Bi-LSTM model)
- Supabase API: Supabase API for real-time updates
- OpenRouter API: OpenRouter API for text classification
The project utilizes a powerful hybrid approach combining machine learning and rule-based analysis:
- Bidirectional LSTM Neural Network: Analyzes text sequences in both forward and backward directions
- Word Embeddings: Converts text into dense vector representations
- LSTM Layers: Captures long-term dependencies in job descriptions
- Model Performance:
- High accuracy in detecting fraudulent job postings
- Robust feature extraction from textual data
- Real-time prediction capabilities
-
Pattern Recognition with Supabase Database
-
Risk Scoring System: Each job posting starts with 100 points and gets deductions based on detected issues with:
- Suspicious Job Title (-25 points)
- Suspicious Job Requirements (-20 points)
- Payment Fraud Indicators (-30 points)
- Unrealistic Salary Range (-35 points)
- Overly Generic/Short Description (-20 points)
- Suspicious Email Domain (-25 points)
- Minimal/Vague Requirements (-15 points)
- Suspicious Buzzwords (-25 points)
- High-Pressure Tactics (-10 points)
-
Risk Level Classification:
- High Risk: Score < 50 points
- Medium Risk: Score 50-75 points
- Low Risk: Score > 75 points
-
Automated Analysis:
- Real-time score calculation
- Detailed risk breakdown
- Specific flag explanations
The system employs a sophisticated algorithm to combine rule-based and machine learning scores:
-
Dynamic Weight Assignment:
- High risks (3+ flags): Rule-based system gets 60% weight
- Moderate risks (1-2 flags): ML model gets 60% weight
- Low/No risks (0 flags): ML model gets 70% weight
-
Confidence Adjustment:
- Applies a confidence factor based on number of risks
- Formula: confidence_factor = max(0.7, 1 - (num_risks Γ 0.1))
- Minimum confidence capped at 0.7 to prevent excessive penalties
-
Final Score Calculation:
- Clamps both scores between 0-100
- Applies dynamic weights based on risk count
- Calculates weighted average: (rule_score Γ rule_weight) + (ml_score Γ ml_weight)
- Applies confidence adjustment
- Rounds to one decimal place
- Supabase Integration: Stores and updates fraud indicators in real-time
- Pattern Recognition: Identifies emerging fraudulent tactics
- Feedback Loop: Incorporates new patterns into the rule-based system
- Adaptive Detection: Evolves to counter new deceptive strategies
- Enhanced Detection Rate: Improves detection accuracy by 30% for new job listings through database updates
- Direct Database Management: Administrators can update fake job patterns and fraudulent email domains directly in the Supabase database
- Pattern Library: Maintain and expand a comprehensive library of deceptive tactics and suspicious indicators
- Email Blacklisting: Add and manage suspicious email domains associated with fraudulent job postings
- Real-time Updates: Changes to the database are immediately reflected in the detection system without requiring code changes and model tranning
- Performance Metrics: Track detection improvements with each database update (30% increase in accuracy for new job listings)
π JobXpose
β
βββπ README.md # Project documentation
βββπ app.py # Flask backend handling job analysis
βββπ autofill.py # Process and classify raw text with OpenRouter
βββπ prediction_service.py # Model prediction function
βββπ update_supabase.py # Manual Script to update risk indicators in Supabase
βββπ model/ # Contains Bi-lstm model files
βββπ templates/ # Frontend UI for job analysis and admin pannel
-
Clone the repository
git clone https://github.com/daemon-001/JobXpose cd JobXpose -
Install dependencies
pip install -r requirements.txt
-
Run the Flask application
python app.py
The app will be available at:
http://127.0.0.1:5000/ -
(Optional) Update Supabase Data
python update_supabase.py
-
Access Admin Interface
Navigate to: http://127.0.0.1:5000/adminUse the admin interface to directly update fake job patterns and fraudulent emails in the Supabase database
- Enter job details on the web interface.
- Click "Analyze Job Listing."
- The system evaluates risks and assigns a legitimacy score.
- View flagged risks, if any.
This project is licensed under the MIT License. See the LICENSE file for more details.
π‘ Built for safer job searching!






