ai-career-insights
Public
Created
Oct 23, 2025
Bu proje, **Natural Language Processing (NLP)** ve **Machine Learning** tekniklerini birleştirerek: - İş ilanlarından maaş tahmini yapan bir model geliştirir - Kullanıcıların iş başlığı girişine göre gerçek zamanlı tahmin sunar - Veri bilimi ve makine öğrenmesi becerilerini portföy projesi olarak sergiler
2
Stars
0
Forks
2
Watchers
0
Issues
Repository Details
Primary Language
Python
Repository Size
0 MB
Default Branch
main
Created
October 23, 2025
Last Update
October 23, 2025
README.md
# 💼 AI Career Insights: İş İlanı Metninden Maaş Tahmini




**Bir iş ilanının başlığı, pozisyon seviyesi, çalışma şekli ve diğer özelliklere bakarak tahmini maaşı belirleyen akıllı makine öğrenmesi projesi.**
[🚀 Demo](#demo) • [📊 Veri Analizi](#veri-analizi) • [⚙️ Kurulum](#kurulum) • [🧠 Model](#model)
---
## 🎯 Proje Amacı
Bu proje, **Natural Language Processing (NLP)** ve **Machine Learning** tekniklerini birleştirerek:
- İş ilanlarından maaş tahmini yapan bir model geliştirir
- Kullanıcıların iş başlığı girişine göre gerçek zamanlı tahmin sunar
- Veri bilimi ve makine öğrenmesi becerilerini portföy projesi olarak sergiler
## 📦 Dataset
**Kaynak:** [Data Science Job Salaries - Kaggle](https://www.kaggle.com/datasets/ruchi798/data-science-job-salaries)
**Veri Özellikleri:**
- 📅 **work_year**: Yıl (2020-2023)
- 🎓 **experience_level**: EN (Entry), MI (Mid), SE (Senior), EX (Executive)
- 💼 **employment_type**: FT (Full-time), PT (Part-time), CT (Contract), FL (Freelance)
- 🏢 **job_title**: İş unvanı (Data Scientist, ML Engineer, vb.)
- 💰 **salary_in_usd**: Hedef değişken - USD cinsinden maaş
- 🌍 **employee_residence**: Çalışan lokasyonu
- 📍 **company_location**: Şirket lokasyonu
- 🏭 **company_size**: S (Small), M (Medium), L (Large)
- 🏠 **remote_ratio**: 0 (On-site), 50 (Hybrid), 100 (Remote)
## 🗂️ Proje Yapısı
```
ai-career-insights/
├── data/
│ ├── raw/ # Ham veri dosyaları
│ └── processed/ # İşlenmiş veri dosyaları
├── notebooks/
│ ├── 01_eda.ipynb # Keşifsel Veri Analizi
│ └── 02_modeling.ipynb # Model Geliştirme
├── src/
│ ├── data_preprocessing.py # Veri ön işleme
│ ├── feature_engineering.py # Özellik mühendisliği
│ ├── train_model.py # Model eğitimi
│ └── predict_salary.py # Tahmin fonksiyonları
├── app/
│ └── streamlit_app.py # Web arayüzü
├── models/ # Eğitilmiş modeller
├── requirements.txt
└── README.md
```
## ⚙️ Kurulum
### 1️⃣ Repository'yi klonlayın
```bash
git clone https://github.com/canuzlas/ai-career-insights.git
cd ai-career-insights
```
### 2️⃣ Virtual environment oluşturun
```bash
python -m venv venv
source venv/bin/activate # Mac/Linux
# venv\Scripts\activate # Windows
```
### 3️⃣ Gerekli kütüphaneleri yükleyin
```bash
pip install -r requirements.txt
```
### 4️⃣ Kaggle API kurulumu (opsiyonel - veri indirme için)
```bash
# Kaggle hesabınızdan API token indirin (kaggle.json)
mkdir ~/.kaggle
mv kaggle.json ~/.kaggle/
chmod 600 ~/.kaggle/kaggle.json
```
### 5️⃣ Veriyi indirin
```bash
cd data/raw
kaggle datasets download -d ruchi798/data-science-job-salaries
unzip data-science-job-salaries.zip
cd ../..
```
## 🚀 Kullanım
### 📊 Veri Analizi
```bash
jupyter notebook notebooks/01_eda.ipynb
```
### 🧠 Model Eğitimi
```bash
python src/train_model.py
```
### 💻 Web Uygulamasını Çalıştırma
```bash
streamlit run app/streamlit_app.py
```
Tarayıcınızda `http://localhost:8501` adresini açın.
## 🧠 Model ve Teknikler
### Machine Learning Modelleri
- ✅ **Linear Regression** (Baseline)
- ✅ **Random Forest Regressor**
- ✅ **XGBoost**
- ✅ **CatBoost**
- ✅ **Ridge & Lasso Regression**
### NLP Teknikleri
- 🔤 **TF-IDF Vectorization** (job_title için)
- 🤖 **Sentence-BERT Embeddings** (all-MiniLM-L6-v2)
- 📝 **Text Preprocessing**: Lowercase, Stopwords Removal, Lemmatization
### Feature Engineering
- 🎯 **Seniority Level Extraction** (Junior/Mid/Senior from job_title)
- 🔢 **Experience Score** (experience_level + seniority_level)
- 🏠 **Remote Binary Feature**
- 📊 **Company Size Ordinal Encoding**
### Model Performansı
| Model | R² Score | MAE | RMSE |
|-------|----------|-----|------|
| XGBoost | 0.XX | $X,XXX | $XX,XXX |
| Random Forest | 0.XX | $X,XXX | $XX,XXX |
| CatBoost | 0.XX | $X,XXX | $XX,XXX |
*Not: Gerçek değerler model eğitimi sonrası güncellenecektir.*
## 📊 Veri Analizi Örnekleri
### 💰 Deneyim Seviyesine Göre Ortalama Maaş
```
Entry Level (EN): $65,000
Mid Level (MI): $95,000
Senior Level (SE): $135,000
Executive Level (EX): $180,000
```
### 🏠 Remote Çalışma Etkisi
```
On-site (0): $105,000
Hybrid (50): $115,000
Remote (100): $120,000
```
## 🎨 Demo Örnekleri
### Örnek 1: Machine Learning Engineer
```
Job Title: Machine Learning Engineer
Experience: Senior
Remote: Yes
Company Size: Large
Country: Germany
```
**📈 Tahmini Maaş: $118,500 USD**
### Örnek 2: Data Analyst
```
Job Title: Data Analyst
Experience: Junior
Remote: No
Company Size: Medium
Country: Turkey
```
**📈 Tahmini Maaş: $42,300 USD**
## 🛠️ Teknoloji Yığını
| Alan | Teknoloji |
|------|-----------|
| **Veri İşleme** | Pandas, NumPy |
| **Görselleştirme** | Matplotlib, Seaborn, Plotly |
| **Machine Learning** | Scikit-learn, XGBoost, CatBoost |
| **NLP** | NLTK, Sentence-Transformers |
| **Web Framework** | Streamlit |
| **Model Persistence** | Joblib, Pickle |
## 📈 Geliştirme Aşamaları
- [x] ✅ Proje yapısı kurulumu
- [ ] 🔄 Keşifsel veri analizi (EDA)
- [ ] 🔄 Veri ön işleme ve temizleme
- [ ] 🔄 Özellik mühendisliği
- [ ] 🔄 Model eğitimi ve karşılaştırma
- [ ] 🔄 NLP pipeline entegrasyonu
- [ ] 🔄 Streamlit web uygulaması
- [ ] 🔄 Model deployment
- [ ] 🔄 Dokümantasyon ve testler
## 🤝 Katkıda Bulunma
Katkılarınızı bekliyoruz! Pull request göndermekten çekinmeyin.
## 📝 Lisans
MIT License - detaylar için [LICENSE](LICENSE) dosyasına bakınız.
## 👤 Geliştirici
**[Adınız]**
- GitHub: [@canuzlas](https://github.com/canuzlas)
- LinkedIn: [linkedin.com/in/canuzlas](https://linkedin.com/in/canuzlas)
---
⭐ Projeyi beğendiyseniz yıldız vermeyi unutmayın!
# 💼 AI Career Insights: İş İlanı Metninden Maaş Tahmini
<div align="center">




**Bir iş ilanının başlığı, pozisyon seviyesi, çalışma şekli ve diğer özelliklere bakarak tahmini maaşı belirleyen akıllı makine öğrenmesi projesi.**
[🚀 Demo](#demo) • [📊 Veri Analizi](#veri-analizi) • [⚙️ Kurulum](#kurulum) • [🧠 Model](#model)
</div>
---
## 🎯 Proje Amacı
Bu proje, **Natural Language Processing (NLP)** ve **Machine Learning** tekniklerini birleştirerek:
- İş ilanlarından maaş tahmini yapan bir model geliştirir
- Kullanıcıların iş başlığı girişine göre gerçek zamanlı tahmin sunar
- Veri bilimi ve makine öğrenmesi becerilerini portföy projesi olarak sergiler
## 📦 Dataset
**Kaynak:** [Data Science Job Salaries - Kaggle](https://www.kaggle.com/datasets/ruchi798/data-science-job-salaries)
**Veri Özellikleri:**
- 📅 **work_year**: Yıl (2020-2023)
- 🎓 **experience_level**: EN (Entry), MI (Mid), SE (Senior), EX (Executive)
- 💼 **employment_type**: FT (Full-time), PT (Part-time), CT (Contract), FL (Freelance)
- 🏢 **job_title**: İş unvanı (Data Scientist, ML Engineer, vb.)
- 💰 **salary_in_usd**: Hedef değişken - USD cinsinden maaş
- 🌍 **employee_residence**: Çalışan lokasyonu
- 📍 **company_location**: Şirket lokasyonu
- 🏭 **company_size**: S (Small), M (Medium), L (Large)
- 🏠 **remote_ratio**: 0 (On-site), 50 (Hybrid), 100 (Remote)
## 🗂️ Proje Yapısı
```
ai-career-insights/
├── data/
│ ├── raw/ # Ham veri dosyaları
│ └── processed/ # İşlenmiş veri dosyaları
├── notebooks/
│ ├── 01_eda.ipynb # Keşifsel Veri Analizi
│ └── 02_modeling.ipynb # Model Geliştirme
├── src/
│ ├── data_preprocessing.py # Veri ön işleme
│ ├── feature_engineering.py # Özellik mühendisliği
│ ├── train_model.py # Model eğitimi
│ └── predict_salary.py # Tahmin fonksiyonları
├── app/
│ └── streamlit_app.py # Web arayüzü
├── models/ # Eğitilmiş modeller
├── requirements.txt
└── README.md
```
## ⚙️ Kurulum
### 1️⃣ Repository'yi klonlayın
```bash
git clone https://github.com/canuzlas/ai-career-insights.git
cd ai-career-insights
```
### 2️⃣ Virtual environment oluşturun
```bash
python -m venv venv
source venv/bin/activate # Mac/Linux
# venv\Scripts\activate # Windows
```
### 3️⃣ Gerekli kütüphaneleri yükleyin
```bash
pip install -r requirements.txt
```
### 4️⃣ Kaggle API kurulumu (opsiyonel - veri indirme için)
```bash
# Kaggle hesabınızdan API token indirin (kaggle.json)
mkdir ~/.kaggle
mv kaggle.json ~/.kaggle/
chmod 600 ~/.kaggle/kaggle.json
```
### 5️⃣ Veriyi indirin
```bash
cd data/raw
kaggle datasets download -d ruchi798/data-science-job-salaries
unzip data-science-job-salaries.zip
cd ../..
```
## 🚀 Kullanım
### 📊 Veri Analizi
```bash
jupyter notebook notebooks/01_eda.ipynb
```
### 🧠 Model Eğitimi
```bash
python src/train_model.py
```
### 💻 Web Uygulamasını Çalıştırma
```bash
streamlit run app/streamlit_app.py
```
Tarayıcınızda `http://localhost:8501` adresini açın.
## 🧠 Model ve Teknikler
### Machine Learning Modelleri
- ✅ **Linear Regression** (Baseline)
- ✅ **Random Forest Regressor**
- ✅ **XGBoost**
- ✅ **CatBoost**
- ✅ **Ridge & Lasso Regression**
### NLP Teknikleri
- 🔤 **TF-IDF Vectorization** (job_title için)
- 🤖 **Sentence-BERT Embeddings** (all-MiniLM-L6-v2)
- 📝 **Text Preprocessing**: Lowercase, Stopwords Removal, Lemmatization
### Feature Engineering
- 🎯 **Seniority Level Extraction** (Junior/Mid/Senior from job_title)
- 🔢 **Experience Score** (experience_level + seniority_level)
- 🏠 **Remote Binary Feature**
- 📊 **Company Size Ordinal Encoding**
### Model Performansı
| Model | R² Score | MAE | RMSE |
|-------|----------|-----|------|
| XGBoost | 0.XX | $X,XXX | $XX,XXX |
| Random Forest | 0.XX | $X,XXX | $XX,XXX |
| CatBoost | 0.XX | $X,XXX | $XX,XXX |
*Not: Gerçek değerler model eğitimi sonrası güncellenecektir.*
## 📊 Veri Analizi Örnekleri
### 💰 Deneyim Seviyesine Göre Ortalama Maaş
```
Entry Level (EN): $65,000
Mid Level (MI): $95,000
Senior Level (SE): $135,000
Executive Level (EX): $180,000
```
### 🏠 Remote Çalışma Etkisi
```
On-site (0): $105,000
Hybrid (50): $115,000
Remote (100): $120,000
```
## 🎨 Demo Örnekleri
### Örnek 1: Machine Learning Engineer
```
Job Title: Machine Learning Engineer
Experience: Senior
Remote: Yes
Company Size: Large
Country: Germany
```
**📈 Tahmini Maaş: $118,500 USD**
### Örnek 2: Data Analyst
```
Job Title: Data Analyst
Experience: Junior
Remote: No
Company Size: Medium
Country: Turkey
```
**📈 Tahmini Maaş: $42,300 USD**
## 🛠️ Teknoloji Yığını
| Alan | Teknoloji |
|------|-----------|
| **Veri İşleme** | Pandas, NumPy |
| **Görselleştirme** | Matplotlib, Seaborn, Plotly |
| **Machine Learning** | Scikit-learn, XGBoost, CatBoost |
| **NLP** | NLTK, Sentence-Transformers |
| **Web Framework** | Streamlit |
| **Model Persistence** | Joblib, Pickle |
## 📈 Geliştirme Aşamaları
- [x] ✅ Proje yapısı kurulumu
- [ ] 🔄 Keşifsel veri analizi (EDA)
- [ ] 🔄 Veri ön işleme ve temizleme
- [ ] 🔄 Özellik mühendisliği
- [ ] 🔄 Model eğitimi ve karşılaştırma
- [ ] 🔄 NLP pipeline entegrasyonu
- [ ] 🔄 Streamlit web uygulaması
- [ ] 🔄 Model deployment
- [ ] 🔄 Dokümantasyon ve testler
## 🤝 Katkıda Bulunma
Katkılarınızı bekliyoruz! Pull request göndermekten çekinmeyin.
## 📝 Lisans
MIT License - detaylar için [LICENSE](LICENSE) dosyasına bakınız.
## 👤 Geliştirici
**[Adınız]**
- GitHub: [@canuzlas](https://github.com/canuzlas)
- LinkedIn: [linkedin.com/in/canuzlas](https://linkedin.com/in/canuzlas)
---
<div align="center">
⭐ Projeyi beğendiyseniz yıldız vermeyi unutmayın!
</div>
Quick Setup & Commands
Clone Repository
HTTPS
git clone https://github.com/canuzlas/ai-career-insights.git
SSH
git clone git@github.com:canuzlas/ai-career-insights.git
Essential Commands
Navigate to project
cd ai-career-insights
Install
dependencies
pip install -r requirements.txt
Run application
python main.py