
RRRabota
Mass hiring runs into a simple problem: an applicant searches for «courier in Tver», not «retail vacancies». The project covers those queries automatically — from a directory of salaries, geo and coordinates, Nuxt pre-generates around 230 separate landing pages for each «vacancy × city» pair, filling each one with the current salary. An applicant finds their city's page, sees the number and applies through a form that goes straight into the employer's CRM. Built for SberMarket, Samokat and Magnit — couriers, pickers and drivers.
- Captures low-frequency queries like «courier in Tver»: around 230 pages via routes /[vacancy]/[city], each with its own meta tags and headings declined by grammatical case (useSeoMeta, lvovich)
- Salaries on the pages are always current: a custom Node.js ETL pulls data from CSV and JSON, matches it against a directory of 1,102 Russian cities (cases, coordinates, population) and recomputes the figures by formula
- Applicants find their city on a map: OpenLayers with custom SVG markers for active cities, tooltips and click-through to the city's page
- Applications don't get lost: Cyrillic name validation and phone normalization (VeeValidate + Yup), submission straight into the employer's CRM and conversion tracking in Yandex.Metrica
- Three brands on one codebase: shared UI components plus isolated sets for SberMarket, Samokat and Magnit; static builds ship atomically via scp/ssh
- The approach works: over two years these pages drew 986,000 visitors, and employers accepted 32,848 applications






