Buenas tardes.
Hace un par de años, en el apoyo del cazatalentos (hh.ru), lancé una propuesta para hacer una opción de búsqueda adicional para habilidades clave además de las tres disponibles (en el título del trabajo, en el nombre de la empresa, en la descripción del trabajo). Me dijeron que hay más propuestas para mejorar el servicio que oscuridad, así que dosvidos. El resultado es esta investigación ...
Descubrí api.hh.ru y decidí comenzar a hacer un analizador en Excel, para que el resultado sea de alguna manera más fácil de analizar visualmente. La base de API en github.com/hhru/api está bien, por lo que puede trabajar. En primer lugar, decidí analizar la Referencia de habilidades clave (key_skills). Mientras se estiraba, resultó que los primeros mil y medio son el estándar introducido por defecto. Y el resto de la confusión y el bamboleo, me detuve en 13.000 y dejé caer la carga. Está claro, tenemos que ir al analizador.
Hice la primera conclusión de los datos de la siguiente manera:
no pensé en cómo usarlos. Por lo tanto, decidí hacerlo como en un RDBMS y luego hacer una tabla dinámica para filtrar. Y ahora la conclusión es la siguiente:
diseñe inmediatamente el código y en orden.
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
La solicitud GET se acepta en cirílico y en el componente Activex WinHttp.WinHttpRequest en la propiedad Option (2) - la página de códigos utf-8 (65001), así que dediqué un tiempo a "¿por qué no hay letras rusas en la solicitud?" - reemplazado por 0. Se
agregó un enlace a la vacante en la salida; parece ser único.
Hizo una mesa pivotante.
Y como comprenderá, un conjunto único de habilidades de mil vacantes ascendió a 1500, es decir, la misma confusión y vacilación, de modo que el objetivo principal de “encontrar vacantes lo más cerca posible de las habilidades indicadas en mi currículum” parecía haberse alejado de mí.
Decidí contar y elegir mis favoritos algo como esto:
Encabezado de 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
En general, agregaré un salario a la producción y tal vez algo más, pero la continuación de la automatización se ha estancado. Luego use las manijas Ctrl + C, busque.
Si hay ideas y sugerencias, hablemos y continuemos.
Nota 1. No puedo dominar rápidamente un idioma extranjero a un nivel intermedio y el máximo de vacantes emitidas por la API = 2 mil por defecto, 20 por página, por lo que la solicitud en el código hizo esto.
El convertidor json tomó de aquí github.com/VBA-tools/VBA-JSON .
Para que funcione el convertidor JSON:
Abra Excel y active la pestaña "Desarrollador".
Vaya al Editor de Visual Basic (en la cinta Desarrollador> Visual Basic).
Abra la lista de referencias: en el menú Herramientas> Referencias ...
Compruebe "Microsoft Scripting Runtime" y "Microsoft VBScript Regular Expressions 5.5". Haga clic en Aceptar.
Todos. El mundo está cambiando, me estoy adaptando. Y no te enfermas.
PD:
En general, el artículo no es tanto técnico como sobre aspectos de la búsqueda de empleo. Me gustaría ver comentarios sobre cómo portales como hh pueden mejorar el uso de algunos puntos.
Por ejemplo, aquí están las habilidades clave discutidas en el artículo.
Si en las vacantes / currículums indica el nivel de competencia (principiante, intermedio, sénior) para cada habilidad, esto ayudaría a mejorar la visualización de la relevancia en los resultados de búsqueda.