取得元とプラットフォームの対応
Sweepy は 2 つの方法で求人を見つけます。4 つの公開 ATS サイトとニューヨークの求人サイト 1 つに直接問い合わせます。加えて python-jobspy 経由でアグリゲーターフィードを読み取れます。このページはすべてのソースを一覧し、自分の分野に Sweepy を向ける方法を示します。
既定のソース
初期状態で、Sweepy は 5 つの決定的なソースと 1 つのアグリゲーター経路をスイープします。決定的なソースは、誰でも開ける公開エンドポイントを使います。アカウント、ログイン、有料サービスは不要です。
| ソース | 設定キー | シードファイル | エンドポイント |
|---|---|---|---|
| Greenhouse | sources.greenhouse.boards | data/sources/greenhouse_boards.txt | boards-api.greenhouse.io/v1/boards/{board}/jobs?content=true |
| Ashby | sources.ashby.orgs | data/sources/ashby_orgs.txt | api.ashbyhq.com/posting-api/job-board/{org} |
| Lever | sources.lever.companies | data/sources/lever_companies.txt | api.lever.co/v0/postings/{company}?mode=json |
| Workable | sources.workable.slugs | data/sources/workable_slugs.txt | apply.workable.com/api/v1/widget/accounts/{slug} |
| Built In NYC | sources.builtinnyc.categories | data/sources/builtin_categories.txt | builtinnyc.com/{category} |
| Glassdoor | sources.jobspy.glassdoor | なし | python-jobspy 経由 |
有効化の規則
Sweepy は、次の 2 つの設定がそろったときに決定的なソースを実行します。
sources.<name>.enabledをtrueに設定します。- 対応する設定がある場合は
platforms.<name>をtrueに設定します。
どちらのキーも既定は true です。
次の例外に注意してください。
- Built In NYC には
platforms.builtinnycの設定がありません。エンジンはsources.builtinnyc.enabledだけを尊重します。各カードには、掲載ページから企業、働く場所、勤務地、給与が入ります。求人の全文も読み取るにはsources.builtinnyc.detail_pages: trueを設定します。Built In は数回のリクエストでそのページに確認を求めるため、Sweepy は最初の確認で止まります。 - Glassdoor は
python-jobspy経由で動作し、sources.jobspy.glassdoorを尊重します。platforms.glassdoorのキーは存在しないため、sources側のキーだけで無効になります。
ソースを無効にするには、いずれかのキーを false に設定します。
プロファイルが v2.2.0 より前の場合
Greenhouse と Lever は既定で動作するようになりました。Sweepy は v2.2.0 でこの動作を変えました。既存のプロファイルは、これらのソースを無効にしない限り新しい求人を検出します。フラグの既定値は変わっていません。
フラグ platforms.ashby: false、platforms.workable: false、platforms.greenhouse: false、platforms.lever: false は、これらの決定的なシードソースを止めるようになりました。v2.2.0 より前は、python-jobspy の結果だけを絞り込んでいました。
ソースは sources.<name>.enabled: false か、その platforms.<name>: false で無効にします。
シードファイルの仕組み
プロファイルでソースのリストを空にしたとき、Sweepy は data/sources/ のシードファイルを代替として使います。
boards: []のような空のリストは、厳選されたシードファイルに切り替わります。- 明示的なリストはシードを完全に上書きします。あなたのリストがシードを置き換えるため、エンジンが両者を統合することはありません。
あなたのリストが優先されます。どのサイトと職種カテゴリを使うかはあなたが決めます。
自分の分野の例
気になる ATS のサイト、組織、企業、スラッグ、カテゴリを、プロファイルの sources セクションに追加します。
法務
sources:
ashby:
orgs:
- "crosby"
- "normlaw"
- "hargrove-firm"
- "lawhive"
workable:
slugs:
- "shegerianand-associates-1"
- "harper-james"
- "legalvision"
builtinnyc:
enabled: true
categories:
- "jobs/legal"
- "jobs/legal/search/paralegal"
テクニカルライティング
sources:
greenhouse:
enabled: true
boards:
- "gitlab"
- "cloudflare"
ashby:
orgs:
- "modal"
- "perplexity"
- "replit"
lever:
enabled: true
companies:
- "spotify"
workable:
slugs:
- "soda-data-nv"
builtinnyc:
enabled: true
categories:
- "jobs/technical-writer"
医療・バイオテクノロジー
sources:
workable:
slugs:
- "bask-health-1"
- "atria-health"
builtinnyc:
enabled: true
categories:
- "jobs/healthcare"
自分の分野に最も近いブロックをコピーし、すでにフォローしている企業に差し替えてください。サイトのトークンは、企業の公開採用ページのアドレスから取れます。
カスタムプラットフォーム
platforms.custom に独自の ATS ドメインを登録します。エンジンは検出したすべての求人リンクを読み取り、あなたのドメインと比較します。Sweepy は一致した求人を専用のレポートディレクトリに振り分けます。
platforms:
custom:
- name: "LawCrossing"
domain: "lawcrossing.com"
enabled: true
- name: "Indeed Legal"
domain: "indeed.com/legal"
enabled: true
各項目は 3 つのフィールドを取ります。
| フィールド | 必須 | 動作 |
|---|---|---|
name | はい | レポートで Sweepy がこのプラットフォームに表示するラベルです。 |
domain | はい | エンジンが各求人リンクと比較するウェブのドメインまたはパスです。 |
enabled | いいえ | 項目を残したまま照合を飛ばすには false を設定します。既定は true です。 |
任意のエンジン
Sweepy は既定で ats と jobspy のエンジンを同梱しています。任意のエンジンは、ダウンロードすると対象のサイトが増えます。
| エンジン | サイト | インストール前の準備 |
|---|---|---|
hirehunt | LinkedIn、Indeed、Naukri、Shine、Internshala、Unstop、Google Careers、Amazon、Meta、Apple、Netflix、Microsoft | なし |
openroles | 指定した Greenhouse、Lever、Ashby、Workday のサイト | companies のスラッグ |
jobdrop | Google、Wellfound、Workday、iCIMS、Dice、USAJobs を含む 33 のサイト | JobSpy と併用する場合は --allow-engine-conflicts を渡します |
apify | マネージドのアクター経由の LinkedIn | APIFY_TOKEN と Apify の課金 |
互換性のあるエンジンをまとめてインストールします。
sweepy --install-engines all
all の組は JobDrop を飛ばします。JobDrop は curl-cffi<0.8 を指定しますが、JobSpy は curl_cffi>=0.16.2 を必要とするためです。
JobDrop だけをインストールするには、次のコマンドを実行します。
sweepy --install-engines jobdrop --allow-engine-conflicts
セットアップウィザードの Download job engines でも同じインストールを実行します。その後、sources.enabled にエンジンを挙げ、サイトの設定を指定します。
sources:
enabled: [jobspy, ats, openroles]
openroles:
companies:
- "figma"
- "stripe"
通信量とのトレードオフ
Greenhouse のサイトは、ボードごとに 1 回のリクエストで全内容を求めるため、?content=true を付けます。すると説明、部門、給与のメタデータが採点できる状態で届きます。何百件もの求人を返すサイトもあるため、シードしたすべてのサイトを合わせると、1 回のスイープで数十メガバイト弱を取得することがあります。
Sweepy はそのコストを 3 つの方法で抑えます。
- 各レコードを正規化するときに、プロファイルの
titlesで求人を事前に絞り込みます。 - シードしたソースごとに 1 回ずつリクエストを送り、並列には送りません。
- リクエストの間に
SWEEPY_SOURCE_DELAYの間隔(既定は 0.2 秒)だけ待ちます。
シードリストが小さいほど早く終わります。スイープが遅く感じる場合は、まずシードリストを削ってください。
プラットフォームの互換性
Sweepy は素の HTML を取得し、ヘッドレスブラウザーなしで動作するため、プラットフォームの種類によって返るデータが少なくなります。
| プラットフォームの種類 | 例 | 互換性 | 注意点 |
|---|---|---|---|
| 公開 ATS | Greenhouse、Ashby、Lever、Workable、SmartRecruiters、Breezy HR | 完全に対応 | Sweepy は標準的なサーバー描画の求人ページを解析し、各リンクが応答するかを確認します。 |
| クライアント描画の SPA | myworkdayjobs.com の Workday、Oracle HCM | 限定的 | これらのプラットフォームはクライアント側の JavaScript で求人ページを描画します。ヘッドレスブラウザーがないと、最初の HTML に説明が含まれないことがあります。 |
| 認証で保護されたポータル | Handshake、社内イントラネット | 非対応 | これらのポータルはセッション Cookie か SSO の認証情報を必要とします。 |
| ボット対策のあるアグリゲーター | Cloudflare Turnstile や PerimeterX を使うサイト | レート制限あり | 自動の HTTP リクエストは、プロキシを切り替えないと HTTP 403 の遮断を招くことがあります。 |
アグリゲーターフィードに含まれる場合は、レポートに Workday の求人が現れることがあります。Sweepy はリンクを検証し、ペイロードに含まれるテキストでその求人を採点します。