Skip to content

PanGami/cv-evaluator

Repository files navigation

Proyek Kognisi: Sistem Evaluasi Kandidat Berbasis AI

Sistem backend ini mengotomatiskan proses screening kandidat dengan mengevaluasi CV dan laporan proyek menggunakan pipeline AI yang didukung oleh RAG (Retrieval-Augmented Generation).

Arsitektur

  • api-gateway: Menerima request HTTP untuk unggah file dan memulai evaluasi.
  • evaluation-service: Mengelola status dan hasil pekerjaan evaluasi menggunakan PostgreSQL.
  • worker-service: Menjalankan pipeline evaluasi AI secara asinkron. Berinteraksi dengan ChromaDB untuk konteks RAG dan Gemini untuk pemrosesan bahasa.
  • PostgreSQL: Database utama untuk menyimpan metadata file dan pekerjaan evaluasi.
  • ChromaDB: Vector database untuk menyimpan embeddings dari dokumen internal (Job Description, dll.) untuk RAG.
  • RabbitMQ: Message broker untuk menangani tugas evaluasi asinkron.

Prasyarat

  • Docker & Docker Compose
  • Go 1.21+
  • protoc compiler
  • API Key Google Gemini

Menjalankan Proyek

SANGAT PENTING: Ikuti urutan ini dengan tepat.

1. Siapkan Dokumen & Kredensial

  • Buat folder data di root proyek.
  • Masukkan file PDF job_description.pdf dan case_study_brief.pdf ke dalam folder data.
  • Buat file .env di root proyek dan isi dengan API Key Anda:
GEMINI_API_KEY=AIzaSy...

2. Siapkan Dependensi & Generate Kode gRPC

Unduh semua dependensi Go:

go mod tidy

Generate kode gRPC dari file, jalankan di tempat .proto berada:

protoc evaluation.proto --go_out=. --go-grpc_out=. --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative

3. Ingesti Dokumen ke Vector DB (Langkah Kunci RAG)

Sebelum menjalankan aplikasi utama, isi ChromaDB dengan konteks. Jalankan skrip ingesti:

go run scripts/ingest/main.go

Anda akan melihat output bahwa dokumen telah berhasil di-ingest. Proses ini hanya perlu dijalankan sekali, atau setiap kali dokumen di folder data berubah.

4. Jalankan Aplikasi Utama

Setelah proses ingesti selesai, jalankan semua layanan dengan Docker Compose:

docker-compose up --build

Cara Menggunakan API

1. Upload Dokumen Kandidat

Endpoint: POST http://localhost:8080/upload
Tipe: multipart/form-data
Body:

  • cv → (file CV.pdf)
  • project_report → (file LaporanProyek.pdf)

Response:

{
  "cv_document_id": "...",
  "project_document_id": "..."
}

2. Mulai Evaluasi

Endpoint: POST http://localhost:8080/evaluate
Tipe: application/json
Body:

{
  "cv_doc_id": "...",
  "project_doc_id": "..."
}

Response:

{
  "id": "...",
  "status": "queued"
}

3. Cek Hasil Evaluasi

Endpoint: GET http://localhost:8080/result/{id}

Response (setelah selesai):

{
  "id": "...",
  "status": "completed",
  "result": {
    "cv_feedback": "...",
    "cv_match_rate": 0.85,
    "overall_summary": "...",
    "project_feedback": "...",
    "project_score": 4.5
  }
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages