FAQ HeadHunter API (Job Post)

Sebuah cerita pendek tentang layanan rekrutmen kustom kami dan sebuah cerita besar tentang masalah yang muncul ketika berintegrasi dengan HeadHunter dalam hal memposting lowongan. Mengapa HeadHunter? Karena pada Superjob, semuanya agak sederhana (tetapi lebih banyak tentang itu nanti).


gambar


Latar belakang


Tim saya sedang mengembangkan aplikasi penempatan kerja berbasis web untuk satu rantai ritel besar. Rantai tindakan dibangun dengan cara ini:


  1. bisnis menyetujui templat kekosongan dasar (persyaratan, tanggung jawab, kondisi), universal untuk semua toko dan kota;
  2. SDM, berdasarkan templat dasar, membuat templat lowongan kerja dasar untuk setiap kota, yang menunjukkan kisaran gaji untuk posisi tertentu (untuk jabatan yang sama di berbagai daerah mungkin ada gaji yang berbeda);
  3. direktur toko, berdasarkan templat lowongan, membuka lowongan di tokonya di dalam aplikasi kami dan menerima tautan ke sana;
  4. kandidat, mengikuti tautan, sampai ke kuesioner, di mana ia memasukkan informasi kontak dan mengirimkannya ke direktur toko untuk dipertimbangkan;
  5. ??????
  6. KEUNTUNGAN!

Ketika ada proposal untuk menerbitkan lowongan di HeadHunter dengan tautan ke kuesioner, saya secara singkat mempelajari dokumentasi untuk API mereka dan memikirkan sesuatu dengan gaya "ada bisnis selama 5 menit." Dan sekarang, setelah ~ 1,5 bulan, saya menulis artikel ini.


Bekerja dengan API HeadHunter


Jadi, ada tugas untuk mempublikasikan lowongan di HeadHunter, Anda perlu:


Versi API saat ini


Sayangnya (atau untungnya?), API tidak diversi, jadi, secara teoritis , apa pun bisa jatuh kapan saja. Meskipun ini belum pernah terjadi dan tidak ada prasyarat untuk ini, masih diperbarui:


Anda dapat menemukan kunci dalam jawaban dan parameter API yang tidak dijelaskan dalam dokumentasi. Biasanya ini berarti mereka dibiarkan kompatibel dengan versi yang lebih lama. Penggunaannya tidak dianjurkan.

Pendaftaran Aplikasi


Semuanya sederhana di sini, tetapi tidak sesederhana yang kita inginkan. Anda akan diminta untuk mengisi formulir di mana salah satu bidang berisi kata-kata " Jelaskan semua fungsi aplikasi dan tunjukkan metode API yang digunakan ." Seberapa detail ???


semua metode?


Saat mendaftar aplikasi untuk pertama kalinya, formulir itu diisi secara rinci, menunjukkan semua rute, kedua kalinya ada cukup kesabaran hanya untuk frasa " semua metode dari blok lowongan ". Kedua opsi berlalu.


Aplikasi disetujui selama sekitar dua minggu. Ini adalah salah satu alasan integrasi kami agak berlarut-larut.


Pendaftaran aplikasi kedua


Perhatikan parameter Redirect URI saat mendaftarkan aplikasi. Menurut pengamatan kami, dikonfirmasi oleh dukungan teknis HeadHunter, jika sirkuit pengujian Anda berada pada subdomain (misalnya, test.example.com), maka Anda memerlukan aplikasi untuk dijual (dengan redirect_uri = example.com) dan untuk pengembangan (dengan redirect_uri = test.example.com ) Dan ini dua minggu lagi menunggu persetujuan.


Mempelajari dan mengklarifikasi aturan


Sementara kami sedang mengembangkan lowongan tertutup yang fungsional dan diterbitkan dalam mode uji, semuanya baik-baik saja. Setelah meluncurkan lowongan terbuka untuk publikasi publikasi, tautan menghilang karena larangan oleh aturan penempatan mereka di lowongan, tetapi, dari kata-kata dukungan, tautan dapat secara otomatis dikirim kepada pengguna sebagai tanggapan (yang tidak dijelaskan dalam aturan). Di sini kami dikecewakan oleh kecerobohan kami sendiri, namun, menurut pendapat saya, adalah mungkin untuk menempatkan validator pada tahap menerima teks lowongan.


Sedikit intuisi


Terkadang teks kesalahan benar-benar tidak dapat diprediksi dan tidak logis. Inilah yang kita hadapi:


  • not_enough_purchased_services (layanan yang dibeli untuk menerbitkan atau memperbarui jenis lowongan ini tidak cukup) - ketika menerbitkan lowongan dengan jenis ini gratis . Apa yang sebenarnya perlu dibeli untuk lowongan gratis tidak jelas. Solusi: sebutkan type: standard ;
  • quota_exceeded (kuota manajer untuk memublikasikan jenis lowongan ini telah berakhir) - kuota manajer dikonfigurasikan melalui https://hh.ru/employer/settings/quotas , terakhir kali kami melihatnya saat mengetik standart alih-alih standard di bidang type ;
  • duplicate (lowongan serupa telah diterbitkan) saat menggunakan flag ignore_duplicates - terjadi ketika bidang name dan area sama, terlepas dari keberadaan flag untuk mengabaikan duplikat.

Juga


Tentang keamanan


Mempertimbangkan fakta bahwa kehidupan token adalah dua minggu (tampaknya ini waktu favorit mereka) dan Anda tidak dapat menyegarkannya terlebih dahulu, hanya dengan razlogin. Secara teoritis, ini seharusnya tidak menyebabkan masalah, namun, jika token bocor, maka penyerang mungkin punya cukup waktu untuk meditasi, kekejaman dan sombong.


Tentang antarmuka


Deskripsi pekerjaan adalah bidang description tunggal yang mendukung beberapa tag HTML, tetapi pemformatan hanya berfungsi saat dipublikasikan melalui situs. HTML yang dikirim melalui API berubah menjadi teks biasa.


Tentang buku referensi


Seperti seluruh API, direktori dapat berubah kapan saja, seperti yang dinyatakan secara eksplisit dalam deskripsi mereka:
buku referensi


Kesalahan juga dimungkinkan, misalnya, di direktori wilayah ditemukan ruang berlebih, di mana Anda mungkin tidak siap. Saya memulai ulasan tentang topik ini, saya berharap mereka akan memperbaikinya, tetapi hati-hati.




Ringkasan


Mulai cepat akan memakan waktu sekitar dua minggu, mungkin dengan kebutuhan untuk mendaftarkan beberapa aplikasi. Secara umum, dokumentasi dan API itu sendiri cukup waras, jika tidak, Anda dapat mengetahui cara berkomunikasi dengan dukungan teknis atau melalui masalah pada github mereka.


Saya yakin kami tidak menemukan semua hal menarik terkait dengan HeadHunter API, karena kami bahkan tidak menyentuh cabang resume. Karena itu, jika Anda memiliki sesuatu untuk diceritakan / ditambahkan / diperjelas - tulis di komentar.


PS


API Superjob dan perbandingan kecil dengan HeadHunter: habr.com/en/post/465663

Source: https://habr.com/ru/post/id464013/


All Articles