LinkedIn ağınıza yeni bağlantılar eklerken, boş bir mesaj kutusuna bakıp durduğunuzu hiç hissettiniz mi? Standart cümleler — "Ağınıza katılmaktan mutluluk duyarım" — %90 oranında göz ardı edilir. Oysa kişiye özel mesajlar yanıt alma şansınızı önemli ölçüde artırıyor. Peki, bu süreci otomatikleştirmek mümkün mü?
İşte ConnectAI adında bir Chrome eklentisi, tam da bu soruna çözüm sunuyor. Eklenti, LinkedIn profillerinden otomatik olarak veri çekiyor ve Anthropic’in Claude AI modeli aracılığıyla kişiselleştirilmiş bağlantı talebi mesajları üretiyor. Böylece artık her bağlantı için saatlerce uğraşmanıza gerek kalmıyor.
Kişiselleştirilmiş İletilerle Bağlantı Başarınızı Artırın
LinkedIn’de etkileşim kurmak, yalnızca "bağlantı talebi gönder" düğmesine tıklamakla sınırlı değil. Doğru mesaj, doğru zamanda ve doğru tonlamayla gönderildiğinde karşılıklı fayda sağlayan ilişkiler kurulabiliyor. Üstelik bu mesajların hepsini manuel olarak yazmak, özellikle geniş bir profesyonel ağa sahipseniz, oldukça zaman alıcı bir süreç.
ConnectAI, bu boşluğu doldurarak şunları yapmanıza olanak tanıyor:
- Profil verilerini otomatik olarak çekin: Ad, mevcut rol, şirket, yetenekler ve son aktiviteler gibi bilgileri LinkedIn sayfasından anında alın.
- Üç farklı mesaj seçeneği arasından seçim yapın: Her biri 300 karakterden kısa, kişiye özel olarak hazırlanmış bağlantı talebi mesajları arasından tercih yapın.
- Mesajlarınızı doğrudan kopyalayın: Hazırlanan mesajları LinkedIn’in mesaj kutusuna tek tıkla yerleştirin.
Eklenti, mesajlarınızın LinkedIn’in karakter sınırına uygun olup olmadığını renkli göstergelerle sizi uyarıyor. Kırmızı, sınırı aşmış; yeşil ise her şeyin yolunda olduğunu gösteriyor.
Teknolojinin Arkasındaki Mimari ve Zorluklar
ConnectAI, sadece kullanıcı dostu bir arayüzden ibaret değil; arka planda oldukça sofistike bir mimariye sahip. Eklenti, Chrome Extension Manifest V3 standartlarına uygun olarak geliştirilmiş ve tamamen Vanilla JavaScript kullanılarak yazılmış.
1. LinkedIn Profillerini Tarayan İçerik Script’i
Eklenti, LinkedIn’in linkedin.com/in/* sayfalarında çalışan bir içerik script’i aracılığıyla profil verilerini topluyor. Bu script, aşağıdaki bilgileri otomatik olarak çıkarabilir:
- Tam ad
- Mevcut rol ve başlık
- Çalışılan şirket
- İlk üç yetenek
- Son aktivite özeti
- Profil bağlantısı
Veriler toplandıktan sonra, Chrome’un yerel depolama alanına kaydediliyor. Böylece kullanıcı arayüzünde anında görüntülenebiliyor.
function scrapeProfile() {
const profileData = {};
profileData.fullName = getMultipleTexts([
"h1.text-heading-xlarge",
"h1[class*='heading']",
"h1"
]);
profileData.currentRole = getMultipleTexts([
".text-body-medium.break-words",
".pv-top-card .text-body-medium"
]);
chrome.storage.local.set({ profileData });
}En büyük zorluklardan biri, LinkedIn’in sürekli değişen DOM yapısıydı. React tabanlı bir uygulama olan LinkedIn, sınıf adlarını ve yapıyı sık sık güncelliyor. Bu nedenle geliştirici, her alan için çoklu seçici yedekleri kullanmak zorunda kaldı.
2. Arka Plan Hizmet Çalışanı ve CORS Engeli
ConnectAI’nin en önemli tasarım kararlarından biri, hizmet çalışanı (service worker) kullanarak API çağrılarını yönlendirmek oldu. Chrome’un Manifest V3’ünde, eklenti popup’larından doğrudan harici API’lere erişim mümkün değil. Bu kısıtlama, CORS (Cross-Origin Resource Sharing) sorununa yol açıyor.
Çözüm, mesajlaşma sistemini kullanarak popup’tan arka plana veri göndermek ve ardından arka planın API’ye erişmesini sağlamak oldu. Bu yaklaşım, hem güvenlik hem de performans açısından kritik önem taşıyor.
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.type === "GENERATE_MESSAGES") {
handleGenerateMessages(message.payload)
.then(result => sendResponse({ success: true, data: result }))
.catch(err => sendResponse({ success: false, error: err.message }));
return true; // Asenkron yanıt için kanalı açık tut
}
});3. Claude’dan Tutarlı JSON Yanıtları Almak
Anthropic’in Claude modeli, özellikle JSON formatında çıktılar üretmek konusunda oldukça yetenekli. Ancak, ConnectAI’nin geliştiricisi, çıktının tutarlı ve kullanıma hazır olmasını sağlamak için bazı ek adımlar atmak zorunda kaldı.
Claude bazen yanıtlarını Markdown kod blokları içerisinde gönderiyor. Bu durumda, geliştirici, yanıtı parse etmeden önce geri tırnakları ve ekstra karakterleri temizlemek için özel bir temizleme fonksiyonu ekledi. Ayrıca, JSON parse işlemi başarısız olursa, regex tabanlı bir yedek çıkarma mekanizması kullanıldı.
const systemPrompt = `
Sen bir LinkedIn ağ kurma uzmanısın. Aşağıdaki KURALLARA BAĞLI KAL:
1. Her mesaj 300 karakterden KISA olmalı
2. "Profilinizi buldum" gibi cümleler KULLANMA
3. Hedef hakkında ÖZEL bir şeyden bahset
4. İnsan gibi konuş — yapay zeka tonunda değil
ÇIKTI: Sadece JSON formatında, Markdown kullanma
`;Kullanıcı Arayüzü: Basitlik ve Etkinlik
ConnectAI’nin popup arayüzü, 420 piksel genişliğinde ve koyu tema ile tasarlanmış. Arayüzde aşağıdaki öğeler bulunuyor:
- Hedef profil bilgileri (ad, rol, şirket vb.)
- Gönderen bilgilerinizin düzenlenebilir alanı
- 4 farklı amaç butonu (networking, tavsiye, ortak çalışma vb.)
- "Mesajları oluştur
Yapay zeka özeti
LinkedIn’e kişiselleştirilmiş iletiler göndermek için saatler harcamanıza gerek kalmadı. İşte profesyonel bağlantılarınızla etkili iletişim kurmanızı kolaylaştıracak yeni bir Chrome eklentisi ve nasıl çalıştığı.