Preguntas frecuentes de HeadHunter API (Publicación de trabajos)

Una breve historia sobre nuestro servicio de reclutamiento personalizado y una gran historia sobre los problemas que aparecieron al integrarse con HeadHunter en términos de publicar vacantes. ¿Por qué HeadHunter? Porque en Superjob, todo es algo más simple (pero más sobre eso más adelante).


imagen


Antecedentes


Mi equipo está desarrollando una aplicación de inserción laboral basada en la web para una importante cadena minorista. La cadena de acciones se construye de esta manera:


  1. la empresa aprueba las plantillas básicas de vacantes (requisitos, responsabilidades, condiciones), universales para todas las tiendas y ciudades;
  2. Los recursos humanos, sobre la base de la plantilla básica, crean la plantilla de vacante básica para cada ciudad, indicando el rango de salario para un puesto en particular (para puestos idénticos en diferentes regiones puede haber diferentes salarios);
  3. el director de la tienda, sobre la base de la plantilla de vacante, abre una vacante en su tienda dentro de nuestra aplicación y recibe un enlace a ella;
  4. el candidato, siguiendo el enlace, accede al cuestionario, donde ingresa la información de contacto y la envía al director de la tienda para su consideración;
  5. ??????
  6. BENEFICIOS!

Cuando hubo una propuesta para publicar una vacante en HeadHunter con un enlace al cuestionario, estudié brevemente la documentación de su API y pensé algo al estilo de "hay un negocio durante 5 minutos". Y ahora, después de ~ 1.5 meses, estoy escribiendo este artículo.


Trabajando con la API HeadHunter


Entonces, existe la tarea de publicar vacantes en HeadHunter, necesitará:


Versión API actual


Desafortunadamente (¿o afortunadamente?), La API no está versionada, por lo que, en teoría , cualquier cosa puede caerse en cualquier momento. Incluso si esto nunca ha sucedido y no hay requisitos previos para esto, todavía se actualiza:


Puede encontrar claves en las respuestas y los parámetros de API que no se describen en la documentación. Por lo general, esto significa que tienen compatibilidad con versiones anteriores. No se recomienda su uso.

Registro de solicitud


Aquí todo es simple, pero no tan simple como nos gustaría. Se le pedirá que complete un formulario en el que uno de los campos contenga la frase " Describa toda la funcionalidad de la aplicación e indique los métodos API utilizados ". ¿Qué tan detallado?


todos los metodos?


Al registrar la solicitud por primera vez, el formulario se completaba en detalle, indicando todas las rutas, la segunda vez había suficiente paciencia solo para la frase " todos los métodos del bloque de vacantes ". Ambas opciones pasaron.


La solicitud está aprobada por aproximadamente dos semanas. Esta es una de las razones por las que nuestra integración se ha demorado un poco.


Registro de la segunda solicitud.


Preste atención al parámetro Redirigir URI al registrar la aplicación. Según nuestra observación, confirmada por el soporte técnico de HeadHunter, si su circuito de prueba está en un subdominio (por ejemplo, test.example.com), entonces necesita una aplicación para la venta (con redirect_uri = example.com) y para el desarrollo (con redirect_uri = test.example.com ) Y estas son otras dos semanas de espera de aprobación.


Aprendiendo y aclarando las reglas


Mientras estábamos desarrollando las vacantes cerradas funcionales y publicadas en modo de prueba, todo estuvo bien. Después de descargar las vacantes abiertas para la publicación de publicaciones, se descubrió que los enlaces desaparecían debido a la prohibición de las reglas de su colocación en vacantes, pero, por palabras de apoyo, los enlaces se pueden enviar automáticamente al usuario en respuesta (lo cual no se describe en las reglas). Aquí nos decepcionó nuestro propio descuido, sin embargo, en mi opinión, fue posible colocar un validador en la etapa de recepción del texto de vacante.


Un poco de intuición


A veces, los textos de error son completamente impredecibles e ilógicos. Esto es a lo que nos enfrentamos:


  • not_enough_purchased_services (los servicios adquiridos para publicar o actualizar este tipo de vacante no son suficientes), cuando se publica una vacante con el tipo gratuito . Lo que exactamente debe comprarse para vacantes gratuitas no está claro. Solución: especifique el type: standard ;
  • quota_exceeded (la cuota del administrador para publicar este tipo de vacante ha finalizado): las cuotas del administrador se configuran a través de https://hh.ru/employer/settings/quotas , la última vez que lo vimos al escribir standart lugar de standard en el campo de type ;
  • duplicate (ya se ha publicado una vacante similar) cuando se usa el indicador ignore_duplicates : se produce cuando los campos de name y area son los mismos, independientemente de la presencia del indicador para ignorar los duplicados.

También


Acerca de la seguridad


Tenga en cuenta el hecho de que la vida útil del token es de dos semanas (aparentemente es su momento favorito) y no puede actualizarlo con anticipación, solo con razlogin. Teóricamente, esto no debería causar problemas, sin embargo, si la ficha se escapa, entonces el atacante puede tener tiempo suficiente para meditar, atrocidades y regodearse.


Acerca de las interfaces


Una descripción de trabajo es un campo de description único que admite múltiples etiquetas HTML, pero el formato solo funciona cuando se publica a través del sitio. HTML enviado a través de API convertido en texto sin formato.


Sobre libros de referencia


Al igual que toda la API, los directorios pueden cambiar en cualquier momento, como se indica explícitamente en sus descripciones:
libro de referencia


Los errores también son posibles, por ejemplo, en el directorio de regiones que encontraron espacios en exceso, para los cuales es posible que no esté preparado. Comencé una revisión sobre este tema, espero que lo arreglen, pero tenga cuidado.




Resumen


Un inicio rápido le llevará unas dos semanas, probablemente con la necesidad de registrar varias solicitudes. En general, la documentación y la API en sí son bastante sensatas, de lo contrario, puede descubrir cómo comunicarse con el soporte técnico o mediante un problema en su github.


Estoy seguro de que no encontramos todas las cosas interesantes relacionadas con la API HeadHunter, porque ni siquiera tocamos la rama de currículum. Por lo tanto, si tiene algo que contar / complementar / aclarar, escriba en los comentarios.


PS


Superjob API y una pequeña comparación con HeadHunter: habr.com/en/post/465663

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


All Articles