Сборщик

Скрапер Greenhouse Job Boards

Все открытые позиции, которые компания публикует в Greenhouse: название, локация, отдел, офис, когда вакансию разместили и когда она последний раз двигалась, по строке на вакансию, — из публичного API самой доски, без аккаунта и без браузера.

Содержание

Что он собирает

Вакансии

Все открытые позиции, которые компания публикует в Greenhouse: название, локация, отдел, офис, когда вакансию разместили и когда она последний раз двигалась, по строке на вакансию, — из публичного API самой доски, без аккаунта и без браузера. Это скрапер, а значит весь договор такой: заполните форму — и вернётся одна таблица. Окно браузера не открывается, слоты автоматизаций вашего тарифа не тратятся, а запросы уходят по обычному HTTP с TLS-отпечатком настоящего браузера.

Он прекрасно работает и с вашего собственного адреса: прокси можно выбрать при запуске, но этому источнику он не нужен. Как бы ни ушёл запрос, каждая строка это фиксирует — см. служебные колонки ниже.

Что вы даёте — 5

Форма, которую рисует приложение, прочитанная из самой карточки. Каждая подсказка ниже — та же, что стоит рядом с этим полем в диалоге запуска, так что здесь нет описания продукта, написанного отдельно от него.

Один ответ, без которого запуск не начнётся

companies
Boards · list · обязательное

One company per line — the board slug, its public board page, or any link off it. A 404 means that company is not on Greenhouse (they may be on Ashby or Lever, which have their own cards); the other boards in the list keep going. A whole board arrives in one reply, and a big one is megabytes — Stripe’s 575 roles are 4.4 MB.

Всё остальное — по желанию

titleContains
Title contains · list

Keeps a role only when its title contains one of these. Costs no extra requests — the whole board arrived in one reply.

locationContains
Location contains · list

Matched against Greenhouse’s free-text location, so "Remote" and "London" both work and neither is a normalised place.

departments
Department contains · list

The board’s own department name — "Engineering", "EMEA - Commercial". A role filed under two departments matches on either.

postedAfter
Posted after · text

Keeps roles first published on or after this date — the hiring signal. A role with no date fails this rather than passing by accident.

Что вернётся — колонок: 16

Один датасет на запуск — типизированная таблица, которая принадлежит вашему рабочему пространству: её можно сортировать, фильтровать, править прямо в сетке, выгружать целиком или читать через локальный API. Вот колонки, с которыми она создаётся.

Одна колонка помечена как может быть пустой. Это факт о самой записи, а не о сборщике — пост без отметки места, аккаунт без категории бизнеса, — и об этом сказано вслух, чтобы пустая ячейка не читалась как сломанный скрапер. Колонку, которой в ответе не бывает вовсе, удаляют на стороне каталога, а не поставляют пустой, так что здесь нет ничего декоративного.

Из Greenhouse Job Boards — колонок: 12

КлючКолонкаТип
titleRoletext
companyNameCompanytext
locationLocationtext
departmentDepartmenttext
officeOfficeможет быть пустойtext
jobUrlJob pageurl
firstPublishedPublisheddatetime
updatedAtUpdateddatetime
requisitionIdRequisitiontext
internalJobIdInternal IDtext
jobIdJob IDtext
searchTermBoardtext

Пишет каждый скрапер — колонок: 4

Одни и те же четыре на каждой карточке, чтобы таблица и через несколько месяцев могла ответить, откуда взялись её строки: из какого сервиса, когда, с личностью какого профиля уходили запросы и был ли выполнен вход.

КлючКолонкаТип
platformPlatformtext
collected_atCollected atdatetime
profileCollected byprofile
logged_inSigned inselect

Четыре способа запустить

Вкладка «Скраперы». Выберите карточку, заполните форму, нажмите «Старт». Каждый запуск отсюда создаёт новую таблицу, названную по тому, что вы искали, и по времени запуска. Хотите — сначала проверьте: скрапер соберёт одну страницу, ничего не запишет и покажет, какие колонки вернулись заполненными.

Попросите ассистента. У него есть весь каталог, поэтому эта карточка — фраза, а не форма. Он заполнит параметры выше из того, что вы сказали, и покажет их вам до запуска.

Через MCP или локальный API. Та же карточка, но из кодового агента: argus_run_scraper на MCP-сервере или POST http://127.0.0.1:39219/v1/scrapers/run в локальном API. Рядом лежит пример вызова, который ничего не записывает.

argus_run_scraper — Greenhouse Job Boards
{
  "kind": "greenhouse_jobs",
  "inputs": {
    "companies": [
      "…"
    ]
  }
}

Шагом внутри сценария. Шаг Run scraper ставит этот сборщик в середину автоматизации — собрать, отфильтровать, разослать — и дерево всё так же не открывает при этом ни одного окна. Это ещё и единственный вызывающий, который может отменить правило «таблица на запуск»: если указать ему таблицу по имени, он создаст её с колонками выше, когда её нет, и дальше будет складывать туда каждый запуск — дописывая строки или обновляя их на месте по колонке, которую вы выбрали для сопоставления. Следующему шагу он передаёт имя таблицы, её идентификатор и число строк.

Где он останавливается

Управлять страницей он не станет. Всё, чему нужен настоящий браузер — сайт без списочной точки под капотом или любая работа с вашим собственным аккаунтом, — это автоматизация, и это другой инструмент, а не худшая версия этого.

Он никуда не входит. Чтение публичной страницы без входа — устоявшаяся позиция: Bright Data собирала данные Meta без входа и выиграла, hiQ собирала LinkedIn со входом и проиграла. Поэтому эта карточка не просит аккаунта и не держит его.

Другие, которые собирают то же самое

Разные сервисы — и одна и та же форма таблицы на выходе.