Selamat sore.
Beberapa tahun yang lalu, dalam dukungan headhunter (hh.ru), saya mengajukan proposal untuk membuat opsi pencarian tambahan untuk keterampilan utama selain tiga keterampilan yang tersedia (dalam judul pekerjaan, dalam nama perusahaan, dalam deskripsi pekerjaan). Saya diberitahu bahwa ada lebih banyak proposal untuk meningkatkan layanan daripada kegelapan, jadi dosvidos. Hasil penelitian ini ...
Saya mengetahui tentang api.hh.ru dan memutuskan untuk mulai membuat parser di Excel, sehingga hasilnya secara visual lebih mudah untuk dianalisis. Dok API di github.com/hhru/api baik - baik saja, jadi Anda dapat bekerja. Pertama-tama, saya memutuskan untuk menganalisis Key Skills Reference (key_skills). Saat dia melakukan peregangan, ternyata seribu setengah pertama adalah standar yang diperkenalkan secara default. Dan sisa kebingungan dan goyah, saya berhenti di 13.000 dan menjatuhkan beban. Jelas, kita perlu menuju ke parser.
Saya membuat kesimpulan pertama dari data sebagai berikut:
Saya tidak memikirkan cara menggunakannya. Oleh karena itu, saya memutuskan untuk melakukannya seperti di RDBMS dan kemudian membuat tabel pivot untuk pemfilteran. Dan sekarang kesimpulannya adalah ini:
Segera buat kode dan urutannya.
Sub vvv()
Dim http
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
timeout = 2000 'milliseconds
http.setTimeouts timeout, timeout, timeout, timeout
http.Option(2) = 0 ' 65001 utf-8
Dim url_ As String
url0 = "https://api.hh.ru/vacancies?text=NAME:() and DESCRIPTION:(NOT intermediate)&area=1&only_with_salary=true&no_magic=true&salary=100000¤cy_code=RUR&period=30&label=not_from_agency&order_by=publication_time"
http.Open "get", url0
http.send
text = http.responseText
If InStr(text, "errors") > 0 Then
Debug.Print text
Stop
Else
If text <> "" Then
Set qwe = JsonConverter.ParseJson(text)
End If
End If
CountV = qwe("found")
CountP = qwe("pages")
isk = 1
On Error GoTo AfterSk
For pg = 1 To CountP
If pg > 1 Then
url_ = url0 & "&page=" & pg
http.Open "get", url_
http.send
text = http.responseText
Set qwe = JsonConverter.ParseJson(text)
End If
For i = 1 To 20
ii = (pg - 1) * 20 + i
Set Item = qwe("items")(i)
url1 = Item("alternate_url")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1) = Item("name")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 3) = url1
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1).Font.Bold = True
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1).Font.Size = 14
ThisWorkbook.Worksheets(2).Cells(ii + isk, 3).Font.Bold = True
url_ = Item("url")
url_ = Replace(url_, "?host=hh.ru", "")
http.Open "get", url_
http.send
text = http.responseText
Set vak = JsonConverter.ParseJson(text)
Set keySkills = vak("key_skills")
CountSk = keySkills.Count
If CountSk > 0 Then
For jj = 1 To CountSk
If jj <> 1 Then isk = isk + 1
ThisWorkbook.Worksheets(2).Cells(ii + isk, 1) = Item("name")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 2) = keySkills(jj)("name")
ThisWorkbook.Worksheets(2).Cells(ii + isk, 2).Font.Italic = True
ThisWorkbook.Worksheets(2).Cells(ii + isk, 3) = url1
Next jj
' Else
' ThisWorkbook.Worksheets(2).Cells(2 + (ii - 1) * 3, 1) = vak("description")
' ThisWorkbook.Worksheets(2).Cells(2 + (ii - 1) * 3, 1).Select
' Rows("2 + (ii - 1) * 3:2 + (ii - 1) * 3").EntireRow.AutoFit
End If
AfterSk:
If Err.Number <> 0 Then
'Stop
Resume Next
Err.Clear
End If
DoEvents
Next i
Next pg
Stop
End Sub
Permintaan GET diterima di Sirilik, dan di komponen Activex WinHttp.WinHttpRequest di properti Option (2) - halaman kode utf-8 (65001), jadi saya menghabiskan beberapa waktu untuk "mengapa tidak ada huruf Rusia dalam permintaan?" - diganti dengan 0.
Menambahkan tautan ke lowongan di output - tampaknya unik.
Membuat tabel pivot.
Dan seperti yang Anda pahami, seperangkat keterampilan unik dari seribu lowongan berjumlah 1500, mis. kebingungan dan kebimbangan yang sama, sehingga tujuan utama "untuk menemukan lowongan yang sedekat mungkin dengan keterampilan yang ditunjukkan dalam resume saya" tampaknya telah menjauh dari saya.
Saya memutuskan untuk menghitung dan memilih favorit saya seperti ini:
Header spoiler
skill;count
Git;546
JavaScript;458
SQL;283
MySQL;255
PostgreSQL;251
;197
Java;196
HTML;186
Linux;177
Python;164
C#;139
HTML5;131
MS SQL;120
REST;82
XML;61
.NET Framework;56
MVC;55
ASP.NET;51
MS SQL Server;49
.NET Core;24
Entity Framework;21
HTTP;20
MS Visual Studio;20
Rest API;18
TCP/IP;15
C ;13
LINQ;12
SQLite;12
WCF;11
Git;546
JavaScript;458
SQL;283
MySQL;255
PostgreSQL;251
;197
Java;196
HTML;186
Linux;177
Python;164
C#;139
HTML5;131
MS SQL;120
REST;82
XML;61
.NET Framework;56
MVC;55
ASP.NET;51
MS SQL Server;49
.NET Core;24
Entity Framework;21
HTTP;20
MS Visual Studio;20
Rest API;18
TCP/IP;15
C ;13
LINQ;12
SQLite;12
WCF;11
Secara umum, saya akan menambahkan gaji ke output dan mungkin sesuatu yang lain, tetapi kelanjutan otomatisasi terhenti. Kemudian gunakan pegangan Ctrl + C, cari.
Jika ada ide dan saran, mari kita diskusikan dan lanjutkan.
Catatan 1. Saya tidak dapat dengan cepat menguasai bahasa asing ke tingkat menengah dan maksimum lowongan yang dikeluarkan oleh API = 2 ribu secara default, 20 per halaman, jadi permintaan dalam kode membuat ini.
Konverter json diambil dari sini github.com/VBA-tools/VBA-JSON .
Agar konverter JSON bekerja:
Buka Excel dan aktifkan tab "Pengembang"
Buka Editor Visual Basic (di pita Pengembang> Visual Basic).
Buka daftar referensi: di menu Alat> Referensi ...
Periksa Microsoft Scripting Runtime dan Microsoft VBScript Regular Expressions 5.5. Klik OK.
Semua. Dunia sedang berubah - saya sedang beradaptasi. Dan Anda tidak sakit.
PS:
Secara umum artikelnya tidak terlalu teknis tapi aspek pencarian kerja. Saya ingin melihat komentar tentang bagaimana portal seperti hh dapat meningkatkan penggunaan beberapa poin.
Misalnya, berikut adalah keterampilan utama yang dibahas dalam artikel tersebut.
Jika dalam lowongan / resume menunjukkan tingkat kemahiran (Pemula, Menengah, Senior) untuk setiap keterampilan - ini akan membantu meningkatkan tampilan relevansi dalam hasil pencarian.