---
name: jobseeker-portal-linkedin
description: Use when applying on LinkedIn. Easy Apply and redirects.
---

# LinkedIn — alur lamaran spesifik portal

Load skill ini SEBELUM melamar di LinkedIn. Data diri dari user-profile.json + CV user.

## 1. Login & sesi (user login SENDIRI)

- Cookie sesi: `li_at` (dipantau portal-check.py). `expired`/belum login →
  `ask_user` → tunggu → verifikasi → lanjut.
- LinkedIn agresif soal keamanan — jangan sering refresh cepat; beri jeda antar lamaran.

## 2. URL pencarian

- `https://www.linkedin.com/jobs/search?keywords=<kw+%20>&location=<kota>`
- Kartu: `.job-card-container` / `a[href*="/jobs/view/"]` (verifikasi live bila ragu).

## 3. Alur lamaran — dua jenis

### a) Easy Apply (cepat — yang diutamakan)
1. Buka `job_url` → tombol "Easy Apply" / "Lamar Mudah" → modal form.
2. Isi field yang diminta (biasanya: phone, lokasi, CV/resume):
   - Phone → profile; lokasi → `city`.
   - **Resume**: pilih CV user yang sudah di-upload (jangan upload ulang).
   - Pertanyaan screening (jika ada) → jawab dari CV.
3. "Tinjau" → "Kirim" → konfirmasi → `update --status submitted`.

### b) Redirect eksternal (ke situs employer) → SKIP (aturan #17)
- Tombol "Apply" membawa keluar LinkedIn → **bukan Easy Apply** → **JANGAN dilamar**.
- `report-application.py update --status failed` (catat alasan "external_redirect") → lanjut loker berikutnya.
- Jangan pernah buka tab baru untuk ini — navigasi tab sama.

## 4. Pitfalls

- "Easy Apply" tidak selalu ada — kalau hanya "Apply" (redirect) → lihat §3b.
- Resume harus terpilih — kalau tidak ada CV di akun → `ask_user` upload → tunggu.
- Rate limit/verifikasi manusia kalau apply terlalu cepat → jeda 5–10 dtk antar lamaran.
- Duplikat: cek riwayat submitted dulu.

## 5. Kalibrasi

Selector modal Easy Apply (button text, field name/email/phone) diverifikasi saat
lamaran pertama — inspeksi DOM & catat ke skill ini.
