██████╗██╗ ██╗ ██████╗ ███████╗████████╗███████╗ ██████╗████████╗ ██████╗ ██████╗
██╔════╝██║ ██║ ██╔══██╗██╔════╝╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝██╔═══██╗██╔══██╗
██║ ██║ ██║ ██║ ██║█████╗ ██║ █████╗ ██║ ██║ ██║ ██║██████╔╝
██║ ╚██╗ ██╔╝ ██║ ██║██╔══╝ ██║ ██╔══╝ ██║ ██║ ██║ ██║██╔══██╗
╚██████╗ ╚████╔╝ ██████╔╝███████╗ ██║ ███████╗╚██████╗ ██║ ╚██████╔╝██║ ██║
╚═════╝ ╚═══╝ ╚═════╝ ╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
CV'ni yükle. Güçlü yönlerini keşfet. Doğru işe adım at.
🎥 Demo Videosu · 📋 Kurulum · 🏗️ Mimari · 🤝 Ekip
Geleneksel iş arama sürecinde adaylar iki temel soruyla boğuşur:
"CV'm bu ilana ne kadar uyuyor?" "Hangi teknolojileri öğrensem daha fazla iş fırsatı yakalarım?"
Bu platform bu soruları veri ile yanıtlar. CV'ni PDF olarak yükle; sistem saniyeler içinde:
| Adım | İşlem |
|---|---|
| 📄 Metin Çıkarma | CV'den ham metin ve yapısal bilgiler alınır |
| 🔍 Yetenek Analizi | NLP ile teknolojiler, araçlar ve alan etiketleri çıkarılır |
| 🧬 Embedding | CV ve iş ilanları vektör uzayına taşınır |
| 📐 Eşleştirme | Cosine similarity ile her ilan için uyum skoru hesaplanır |
| 📊 Raporlama | Eşleşen / eksik skill'ler ve sıralı iş önerileri sunulur |
- 📁 PDF & DOCX Desteği — Çoklu format CV yükleme
- 🤖 Yapay Zeka Destekli Analiz — Sentence-Transformers tabanlı embedding
- 💼 Vektör Tabanlı Eşleştirme — Cosine similarity ile hassas skor hesaplama
- 📈 Skill Gap Analizi — "Eksiklerim neler?" sorusuna somut yanıt
- 🔒 KVKK Uyumlu — Güvenli dosya işleme ve veri yönetimi
- ⚡ Modüler Mimari — Bağımsız, test edilebilir servis katmanları
Sistem üç ana katmandan oluşur:
┌─────────────────────────────────────────────────────────────┐
│ SUNUM KATMANI │
│ UserInterface · ResultViewer · ReportService │
└────────────────────────┬────────────────────────────────────┘
│
┌────────────────────────▼────────────────────────────────────┐
│ UYGULAMA KATMANI │
│ │
│ ┌──────────────────┐ ┌────────────────────────────┐ │
│ │ CV ANALİZ SİSTEMİ│ │ İŞ EŞLEŞTİRME SİSTEMİ │ │
│ │ │ │ │ │
│ │ UploadManager │ │ JobRepository │ │
│ │ TextExtraction │─────▶│ JobEmbeddingService │ │
│ │ AIAnalyzer │ │ JobMatcher │ │
│ └──────────────────┘ └────────────────────────────┘ │
│ │
│ ProcessingEngine · APIHandler │
└────────────────────────┬────────────────────────────────────┘
│
┌────────────────────────▼────────────────────────────────────┐
│ VERİ & GÜVENLİK KATMANI │
│ DatabaseManager · SecurityService · Logger │
└─────────────────────────────────────────────────────────────┘
Kullanıcı CV yükler
│
▼
UploadManager ──► Doğrulama + analysis_id üretimi
│
▼
TextExtractionService ──► Ham metin çıkarma (PyMuPDF)
│
▼
AIAnalyzer ──► Skill çıkarımı + Alan etiketleme + Profil özeti
│
▼
JobEmbeddingService ──► CV & ilan vektörleri
│
▼
JobMatcher ──► Cosine Similarity skorları
│
▼
ResultViewer ──► Sıralı iş önerileri + Skill gap raporu
📄 CV Analiz Sistemi
| Modül | Sorumluluk |
|---|---|
UploadManager |
Dosya yükleme, MIME/boyut doğrulama, analysis_id üretimi |
TextExtractionService |
PyMuPDF ile PDF/DOCX'ten ham metin çıkarma |
AIAnalyzer |
NLP ön işleme, teknoloji tespiti, alan etiketleme, profil özeti |
💼 İş Eşleştirme Sistemi
| Modül | Sorumluluk |
|---|---|
JobRepository |
İlan veritabanı CRUD, filtreleme (seviye, lokasyon, tür) |
JobEmbeddingService |
İlan açıklamalarını vektöre dönüştürme |
JobMatcher |
Cosine similarity + kritik skill ağırlıklandırması |
🔒 Güvenlik & KVKK Sistemi
| Kontrol | Detay |
|---|---|
| Dosya doğrulama | Uzantı + MIME türü kontrolü |
| Boyut sınırı | Maksimum yükleme boyutu kısıtlaması |
| Veri politikası | Analiz tamamlandıktan sonra CV verisi temizlenir |
| Loglama | KVKK kapsamında maskelenmiş log kaydı |
Backend │ Python 3.11+ · FastAPI · Uvicorn · Pydantic
NLP / AI │ spaCy · Sentence-Transformers (all-MiniLM-L6-v2)
Metin Çıkarma │ PyMuPDF · docx2txt
Veritabanı │ SQLite (geliştirme) · PostgreSQL (üretim)
Frontend │ HTML5 · CSS3 · JavaScript
Araçlar │ Git · Docker (planlanan)
- Python 3.11+
- pip
- Git
git clone https://github.com/TITANBGG/Find_a_Job_with_CV_Detector.git
cd Find_a_Job_with_CV_Detectorpython -m venv venv
# Windows
venv\Scripts\activate
# Linux / macOS
source venv/bin/activatepip install -r requirements.txt
python -m spacy download en_core_web_smKök dizinde .env dosyası oluştur:
DB_URL=sqlite:///./data/app.db
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
SECRET_KEY=your-secret-key-here# Backend
uvicorn app.main:app --reload
# Frontend (ayrı terminal)
cd frontend
python -m http.server 5500| Servis | Adres |
|---|---|
| API | http://localhost:8000 |
| API Docs | http://localhost:8000/docs |
| Frontend | http://localhost:5500/upload.html |
CV Kaydı
{
"id": "cv_001",
"raw_text": "PDF'den çıkarılmış ham metin...",
"clean_text": "ön işlenmiş metin...",
"skills": ["python", "pandas", "django"],
"domains": ["backend", "data"],
"summary": "Python backend ağırlıklı geliştirici profili"
}İş İlanı Kaydı
{
"id": "job_001",
"title": "Python Backend Developer",
"company": "Örnek Teknoloji A.Ş.",
"location": "İstanbul / Remote",
"level": "Mid",
"description": "REST API geliştirme, PostgreSQL, Docker...",
"required_skills": ["python", "django", "postgresql", "docker"]
}Analiz Sonucu
{
"analysis_id": "e3b0c442-98fc-1c1f-9f6e-7f7d5b0e1234",
"status": "COMPLETED",
"profile": {
"summary": "Python + Data ağırlıklı profil",
"skills": ["python", "pandas", "numpy", "sql"],
"domains": ["data", "backend"],
"strengths": ["python", "pandas"],
"improvements": ["docker", "cloud", "ci_cd"]
},
"matches": [
{
"job_id": "job_001",
"title": "Python Backend Developer",
"company": "Örnek Teknoloji A.Ş.",
"match_score": 0.87,
"matched_skills": ["python", "django"],
"missing_skills": ["docker"]
}
]
}- CV yükleme ve metin çıkarma
- NLP tabanlı skill analizi
- Vektör tabanlı iş eşleştirme
- Temel web arayüzü
- Gerçek zamanlı iş ilanı API entegrasyonu (LinkedIn, Kariyer.net)
- Kullanıcı oturum sistemi ve analiz geçmişi
- İK paneli — çoklu CV karşılaştırma
- Kurs/eğitim öneri entegrasyonu (Udemy, Coursera)
- Docker ile tam konteynerleştirme
- PDF analiz raporu indirme
Platform çalışma mantığını ve arayüzü görmek için:
Bu proje Fırat Üniversitesi Bilgisayar Mühendisliği — Mühendislik Tasarımı Projesi kapsamında geliştirilmiştir.
| İsim | GitHub |
|---|---|
| Ali Nebi Er | @TITANBGG |
| Ahmet Dağıstanlı | — |
| İkra Şahin | — |
Bu proje MIT Lisansı kapsamında lisanslanmıştır.
Fırat Üniversitesi · Bilgisayar Mühendisliği · 2024–2025