下午好。
几年前,在猎头公司(hh.ru)的支持下,我提出了一个建议,除了三个可用的技能(在职称,公司名称,职位描述中)以外,还为关键技能提供其他搜索选项。有人告诉我,有更多建议来改善服务质量,而不是黑暗。结果就是这项研究...
我发现了有关api.hh.ru的信息,并决定开始在Excel中创建解析器,以便从某种程度上在视觉上更易于分析结果。github.com/hhru/api上的API基座很好,因此您可以工作。首先,我决定分析关键技能参考(key_skills)。当他伸展运动时,原来的前半个是默认引入的标准。其余的混乱和动摇,我停在13,000,然后放下了负载。显然,我们需要转到解析器。
我对数据做出了第一个结论,如下所示:
我没有想到如何使用它。因此,我决定像在RDBMS中那样做,然后创建一个数据透视表进行过滤。现在的结论是:
立即按顺序排列代码。
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
GET请求在西里尔字母和Option(2)属性的Activex组件WinHttp.WinHttpRequest-utf-8代码页(65001)中被接受,因此我花了一些时间在“为什么请求中不使用俄语字母?” -替换为0。
在输出中添加了指向空缺的链接-似乎是唯一的。
做了一个数据透视表。
如您所知,千个职位空缺中的一组独特技能总计1500个,即 同样的困惑和动摇,以至于“寻找尽可能与我简历中指示的技能相近的职位空缺”的主要目标似乎已经远离了我。
我决定数一数二并选择我喜欢的东西:
扰流板头
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
总的来说,我会在输出中增加薪水,也许还会增加一些其他东西,但是自动化的延续一直停滞不前。然后使用手柄Ctrl + C进行搜索。
如果有想法和建议,让我们讨论并继续。
注1。我无法快速掌握中级语言,并且默认情况下,API发出的空缺数量上限为2000,每页20个,因此代码中的要求就是这样。
json转换器来自github.com/VBA-tools/VBA-JSON。
为了使JSON转换器起作用:
打开Excel并打开“开发人员”选项卡的显示。
转到Visual Basic编辑器(在“开发人员”>“ Visual Basic”功能区中)。
打开参考列表:在“工具”>“参考...”中。
检查“ Microsoft脚本运行时”和“ Microsoft VBScript正则表达式5.5”。单击确定。
所有。世界在变化-我正在适应。而且您不会生病。
PS:
总的来说,这篇文章的技术性不强于求职方面。我希望看到有关诸如hh的门户网站如何改进某些点的使用的评论。
例如,这是本文中讨论的关键技能。
如果在职位空缺/简历中指明每种技能的熟练程度(初级,中级,高级),这将有助于改善搜索结果相关性的显示。