Data parser for hh.ru

A new Python project has been created using Flask and AJAX. The parser is integrated into the Build block for Filament CMS. It displays vacancy data from hh.ru and provides a direct link to each vacancy.

What has been implemented

  • A REST API built with Flask and a single endpoint: GET /search?query=...
  • Requests to the official hh.ru API without authorization
  • For each vacancy, the parser returns: job title, company, city, experience, salary from/to/currency, schedule, publication date, and a direct link
  • Runs as a system service through systemd
  • Integrated with the Laravel website via ParserController

Stack

  • Python 3.12
  • Flask
  • Requests
  • systemd deployment on Ubuntu 24.04

Running locally

git clone https://github.com/Magbusjap/hh-parser-flask
cd hh-parser-flask
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py

Check:

curl "http://127.0.0.1:5000/search?query=Laravel"

Example response

{
  "total": 284,
  "shown": 100,
  "vacancies": [
    {
      "name": "PHP Laravel Developer",
      "employer": "Company",
      "city": "Moscow",
      "experience": "3 to 6 years",
      "salary_from": 120000,
      "salary_to": 180000,
      "currency": "RUR",
      "schedule": "Full-time",
      "published": "2026-04-01",
      "url": "https://hh.ru/vacancy/..."
    }
  ]
}