Сборщик
Скрапер 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
- locationContains
- Location contains · list
- departments
- Department contains · list
- postedAfter
- Posted after · text
Keeps a role only when its title contains one of these. Costs no extra requests — the whole board arrived in one reply.
Matched against Greenhouse’s free-text location, so "Remote" and "London" both work and neither is a normalised place.
The board’s own department name — "Engineering", "EMEA - Commercial". A role filed under two departments matches on either.
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
| Ключ | Колонка | Тип |
|---|---|---|
| title | Role | text |
| companyName | Company | text |
| location | Location | text |
| department | Department | text |
| office | Officeможет быть пустой | text |
| jobUrl | Job page | url |
| firstPublished | Published | datetime |
| updatedAt | Updated | datetime |
| requisitionId | Requisition | text |
| internalJobId | Internal ID | text |
| jobId | Job ID | text |
| searchTerm | Board | text |
Пишет каждый скрапер — колонок: 4
Одни и те же четыре на каждой карточке, чтобы таблица и через несколько месяцев могла ответить, откуда взялись её строки: из какого сервиса, когда, с личностью какого профиля уходили запросы и был ли выполнен вход.
| Ключ | Колонка | Тип |
|---|---|---|
| platform | Platform | text |
| collected_at | Collected at | datetime |
| profile | Collected by | profile |
| logged_in | Signed in | select |
Четыре способа запустить
Вкладка «Скраперы». Выберите карточку, заполните форму, нажмите «Старт». Каждый запуск отсюда создаёт новую таблицу, названную по тому, что вы искали, и по времени запуска. Хотите — сначала проверьте: скрапер соберёт одну страницу, ничего не запишет и покажет, какие колонки вернулись заполненными.
Попросите ассистента. У него есть весь каталог, поэтому эта карточка — фраза, а не форма. Он заполнит параметры выше из того, что вы сказали, и покажет их вам до запуска.
Через MCP или локальный API. Та же карточка, но из кодового агента: argus_run_scraper на MCP-сервере или POST http://127.0.0.1:39219/v1/scrapers/run в локальном API. Рядом лежит пример вызова, который ничего не записывает.
{
"kind": "greenhouse_jobs",
"inputs": {
"companies": [
"…"
]
}
}Шагом внутри сценария. Шаг Run scraper ставит этот сборщик в середину автоматизации — собрать, отфильтровать, разослать — и дерево всё так же не открывает при этом ни одного окна. Это ещё и единственный вызывающий, который может отменить правило «таблица на запуск»: если указать ему таблицу по имени, он создаст её с колонками выше, когда её нет, и дальше будет складывать туда каждый запуск — дописывая строки или обновляя их на месте по колонке, которую вы выбрали для сопоставления. Следующему шагу он передаёт имя таблицы, её идентификатор и число строк.
Где он останавливается
Управлять страницей он не станет. Всё, чему нужен настоящий браузер — сайт без списочной точки под капотом или любая работа с вашим собственным аккаунтом, — это автоматизация, и это другой инструмент, а не худшая версия этого.
Он никуда не входит. Чтение публичной страницы без входа — устоявшаяся позиция: Bright Data собирала данные Meta без входа и выиграла, hiQ собирала LinkedIn со входом и проиграла. Поэтому эта карточка не просит аккаунта и не держит его.
Другие, которые собирают то же самое
Разные сервисы — и одна и та же форма таблицы на выходе.