
Вместо 404 — шесть открытых вакансий: что показывает ссылка на снятую
Ссылка на вакансию живёт дольше самой вакансии: её пересылают в чатах и прячут в закладки, а работодатель за это время успевает закрыть набор. С 7 октября такой адрес у…
Как устроен сайт
17 октября 2026 · 4 мин чтения

Вакансия приходит к нам строкой, которую набрал живой человек в своём источнике. Кто-то пишет «Kaspi», кто-то «ТОО Kaspi.kz», кто-то заворачивает название в кавычки, а кто-то кладёт в то же поле адрес сайта. Для нас это ещё не компания, а сырьё: из него нужно получить одно имя, один адрес страницы и один список вакансий. На странице методики это второй шаг из четырёх — нормализация; там же вместе с названием к одному виду приводятся уровень, город, формат работы и зарплата.
Разницу легко посчитать. На 17 октября в витрине 265 вакансий, а в списке компаний — 211 записей. Частично потому, что один работодатель ищет сразу нескольких дизайнеров, но ещё 35 вакансий приходят вообще без имени нанимателя — они собраны на отдельной странице «Компания не указана».
Сначала из строки уходит то, что попало в неё случайно.
Из того, что осталось, собирается ключ сопоставления: слова склеиваются в одну строку, а юридические формы и общие добавки из неё выбрасываются — ТОО, ИП, АО, ООО, LLP, LLC, Ltd, Inc, GmbH, а с ними group, holding, company, kz и «Казахстан». В самом правиле пример записан прямым текстом: «ТОО Kaspi.kz», «Kaspi.kz» и «Kaspi» — один работодатель. Поэтому у Kaspi.kz одна страница, и на ней на 17 октября две открытые вакансии — Product Designer и дизайнер дизайн-систем; зарплату компания в них не называет.
Сравниваем по отдельным словам, а не поиском подстроки: в JavaScript граница слова определена для латиницы, а на кириллице работает наоборот — такое правило нашло бы «ип» в середине чужого названия.
Показанное имя при этом остаётся тем, которое написал работодатель: в списке спокойно живут «ТОО "Plan Group Kas"» и «Товарищество с ограниченной ответственностью Thousand IT Company». Юридическая форма решает, с кем свести вакансию, но не то, как компания подписана. Адрес страницы собирается из показанного имени, и если два разных работодателя дают одинаковый адрес, второму дописывается короткий хвост.
Правило смотрит только на слова названия, и если они разошлись, страницы остаются разными. Это выбор, а не недосмотр: склеить двух разных работодателей хуже, чем показать одного дважды. Тот же принцип работает в склейке дублей вакансий.
Видно это сразу. У сети ITSTEP на 17 октября три страницы: Almaty с тремя вакансиями, KRG с двумя и Astana с одной. Имена отличаются последним словом, значит и ключи разные — и здесь это скорее правильно, потому что за ними разные юрлица и разные города.
Бывает и обратное. Сейчас на сайте есть CIRCLE LIMITED и «Частная компания Circle Limited», у каждой — по одной вакансии UX/UI-дизайнера. Слов «частная компания» в списке общих добавок нет, ключ вышел другим, и одно название раздвоилось на два адреса.
Иногда имя приходится поправить руками. Доска вакансий называла компанию «Higgsfield», остальные источники — «Higgsfield AI», и получилось два адреса: свежие вакансии уходили на один, а тот, который показывает поиск, стоял со старыми записями. С 16 октября имя одно, а старый адрес /companies/higgsfield отвечает постоянным перенаправлением на страницу Higgsfield AI — проверили сегодня, работает. Открытых вакансий у компании на 17 октября шесть.

Ссылка на вакансию живёт дольше самой вакансии: её пересылают в чатах и прячут в закладки, а работодатель за это время успевает закрыть набор. С 7 октября такой адрес у…

На 27 сентября в ленте 270 вакансий, и 29 карточек из них склеены из нескольких найденных объявлений: одна и та же работа висела в двух, трёх, а в одном случае в четырёх…

Мы не знаем, закрыта ли вакансия, и не притворяемся. Вместо этого считаем уверенность от 0 до 1 и показываем причины словами. Разбираем формулу — и почему на текущем…