Ekstraksi pekerjaan bertenaga AI dan generator email dingin
Proyek ini memanfaatkan alat dan kerangka kerja AI mutakhir untuk mengotomatiskan proses mengekstraksi posting pekerjaan dari halaman web, dan menghasilkan email dingin yang dipersonalisasi untuk aplikasi pekerjaan berdasarkan input pengguna dan portofolio keterampilan yang dapat disesuaikan. Ini mengintegrasikan LLM bertenaga GROQ (Model Pembelajaran Bahasa), permintaan Langchain, pengikisan web, dan database vektor untuk merampingkan proses akhir-ke-ujung pembuatan aplikasi pekerjaan.
Fitur
- Pengikisan web: Secara otomatis mengekstrak posting pekerjaan dari halaman web dinamis menggunakan
WebBaseLoader dan membersihkan data yang diekstraksi untuk menghilangkan noise. - Ekstraksi Posting Pekerjaan: Memanfaatkan rantai cepat LLM Langchain untuk mengekstrak dan memformat detail pekerjaan yang relevan (peran, pengalaman, keterampilan, deskripsi) menjadi objek JSON yang valid.
- Email dingin yang dipersonalisasi: Menghasilkan email dingin yang disesuaikan menggunakan LLM bertenaga Groq, dapat disesuaikan dengan keterampilan kandidat dan tautan portofolio yang relevan.
- Integrasi Basis Data Vektor: Menyimpan Tech Stack dan Portofolio Metadata Menggunakan Chromadb untuk permintaan yang efisien dari tautan yang relevan untuk email dingin.
- Generasi Email Dinamis: Membuat email yang dipersonalisasi dan digerakkan hasil yang selaras dengan deskripsi pekerjaan dan menyoroti pengalaman dan proyek yang paling relevan.
Teknologi digunakan
- Integrasi LLM (GROQ): CHATGROQ (LLAMA-3.1-70B) Model untuk pembuatan teks akurasi tinggi.
- Langchain: Digunakan untuk membuat templat prompt dinamis dan merantai LLM untuk menghasilkan respons.
- Flask: Backend Server untuk menangani permintaan pembuatan email dan mengelola pengikisan pekerjaan dan interaksi LLM.
- React.js: Frontend untuk mengumpulkan input pengguna (misalnya, nama pengguna) dan memicu proses pembuatan email.
- Chromadb: Database vektor untuk penyimpanan dan permintaan metadata yang efisien.
- PANDAS: Digunakan untuk menangani data Portofolio CSV dan memprosesnya untuk penyimpanan di Chromadb.
- Flask-Cors: Mengaktifkan COR untuk backend Flask.
Petunjuk Pengaturan
Prasyarat
- Python 3
- Node.js dan npm (untuk react frontend)
- Kunci API GROQ (untuk integrasi LLM)
Instalasi
Klon Repositori:
git clone https://github.com/IMRANDIL/cold_email_generator_llm.git
cd cold_email_generator_llm
Pengaturan Backend (Flask):
- Buat dan aktifkan lingkungan virtual:
python3 -m venv venv
source venv/bin/activate
- Instal dependensi Python yang diperlukan:
pip install -r requirements.txt
- Mengatur Variabel Lingkungan untuk Kunci API GROQ:
export GROQ_API_KEY= " your-api-key "
- Mulai server Flask:
Pengaturan Frontend (React):
- Arahkan ke Direktori
frontend : - Instal dependensi:
- Mulai server pengembangan reaksi:
Penggunaan
- Kunjungi antarmuka Frontend untuk memasukkan nama pengguna dan memicu proses pembuatan email.
- Backend akan mengikis posting pekerjaan, memprosesnya dengan permintaan langchain, menanyakan database vektor, dan menghasilkan email dingin yang disesuaikan untuk setiap pekerjaan.
- Email dikembalikan dalam format JSON dan ditampilkan di blok kode yang diformat dengan baik dengan fitur "Salin ke Clipboard".
Output contoh
{
"subject" : " Application for Lead Software Engineer at XYZ Inc. " ,
"body" : " Dear Hiring Manager, I am writing to express my interest in the Lead Software Engineer position... "
}Peningkatan di masa depan
- Dynamic Web Scraping: Perpanjang kemampuan pengikisan web untuk menangani situs web posting pekerjaan yang lebih kompleks dan dinamis.
- Kueri Lanjutan: Meningkatkan mekanisme permintaan database vektor untuk menangani beberapa set keterampilan lebih efisien.
- Peningkatan UI: Lebih lanjut meningkatkan frontend react.js untuk pengalaman pengguna yang lebih baik dan dukungan untuk beberapa templat email.
- Beberapa integrasi API: Jelajahi integrasi dengan model LLM lainnya (OpenAi, dll.) Untuk meningkatkan keserbagunaan.
Lisensi
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk detailnya.