🚧 Work in Progress
A machine learning approach to transform unstructured job postings into a personalized, calibrated ranking system for better career decisions.
Modern job platforms like LinkedIn already provide strong job recommendations based on keywords and user behavior.
However, as the number of search queries increases, the number of job postings grows exponentially. This creates a fundamental problem:
- High noise in job search results
- Significant time required for manual evaluation
- Risk of missing highly relevant opportunities
As a result, job seekers face a trade-off between coverage and accuracy.
This project addresses the need for a system that can:
- Evaluate job postings consistently
- Rank opportunities based on individual preferences
- Reduce time spent on manual screening
- Improve decision quality in job search
This project introduces a personalized job ranking system that combines:
- Structured feature engineering
- Machine learning models
- Personalized calibration (Alpha/Beta concept)
- Search-space normalization
The system transforms unstructured job descriptions into structured feature vectors and predicts a personalized relevance score for each job.
New job postings can be evaluated and ranked relative to a predefined job universe.
Unlike traditional job matching systems, this approach introduces:
- Search-space normalization (evaluation relative to a defined job universe)
- Separation of objective (Alpha) and subjective (Beta) preferences
- Calibration based on user-specific evaluations
- Consistent ranking across multiple job opportunities
This enables a more stable and personalized decision framework compared to standard recommendation systems.
A dataset of ~100 job postings was created and manually labeled.
Each job is described by structured features, such as:
- Cost Engineering relevance
- Benchmarking / Value Analysis
- AI / Digitalization
- Manufacturing depth
- Strategic impact
- Risk level
All features are normalized to a [0,1] scale.
Jobs are classified into 5 categories:
- A (strong fit)
- B (above average)
- C (neutral)
- D (below average)
- E (poor fit)
Additionally, a continuous score [0,1] is used.
A machine learning model (e.g., Random Forest) is trained on:
- 68% training data
- 32% validation data
New job postings are transformed into feature vectors and ranked within the existing job universe.
The system consists of the following layers:
-
Data Layer
- Job dataset (Excel / CSV)
-
Feature Layer
- Structured representation of job characteristics
-
Model Layer
- Machine learning model for scoring and ranking
-
Inference Layer
- Evaluation of new job postings
Future extensions:
- GPT-based feature extraction
- Automated data ingestion (n8n)
- Web-based user interface
For a new job posting, the system provides:
- Predicted score: 0.87
- Classification: A
- Ranking position within job universe
This allows quick identification of high-value opportunities.
- The model demonstrates strong alignment with manual job rankings
- Feature engineering plays a critical role in model performance
- Search-space normalization significantly improves ranking consistency
- The system reduces subjective bias in job evaluation
- Limited dataset (~100 jobs)
- Manual feature engineering required
- Unstructured job descriptions introduce noise
- Model performance depends on consistency of labeling
- Integration of GPT-based feature extraction
- Automated job data ingestion (LinkedIn, company websites)
- User-specific calibration via interactive feedback
- Opportunity engine (career growth recommendations)
- Optional personality and skill-based extensions
- Python (Pandas, NumPy, Scikit-learn)
- Jupyter Notebooks
- Machine Learning (Random Forest)
- Optional: OpenAI API (future integration)
Csaba Bakay
Cost Engineering & AI Benchmarking Enthusiast