stage-cli 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. stage/__init__.py +1 -0
  2. stage/__main__.py +8 -0
  3. stage/banner.py +32 -0
  4. stage/bootstrap/__init__.py +0 -0
  5. stage/bootstrap/openjobs.py +392 -0
  6. stage/classify/__init__.py +29 -0
  7. stage/classify/eligibility.py +115 -0
  8. stage/classify/internship.py +64 -0
  9. stage/classify/role.py +91 -0
  10. stage/classify/scope.py +47 -0
  11. stage/cli/__init__.py +0 -0
  12. stage/cli/app.py +4 -0
  13. stage/cli/commands/__init__.py +8 -0
  14. stage/cli/commands/discovery.py +294 -0
  15. stage/cli/commands/insight.py +494 -0
  16. stage/cli/commands/pipeline.py +337 -0
  17. stage/cli/commands/postings.py +473 -0
  18. stage/cli/commands/schedule.py +171 -0
  19. stage/cli/housekeeping.py +64 -0
  20. stage/cli/logfile.py +56 -0
  21. stage/cli/notify.py +170 -0
  22. stage/cli/options.py +678 -0
  23. stage/cli/render.py +1398 -0
  24. stage/cli/runlock.py +74 -0
  25. stage/cli/schedule.py +702 -0
  26. stage/cli/schedule_state.py +363 -0
  27. stage/cli/selection.py +83 -0
  28. stage/cli/serialize.py +196 -0
  29. stage/companies.py +542 -0
  30. stage/data/companies/a.yaml +1289 -0
  31. stage/data/companies/b.yaml +900 -0
  32. stage/data/companies/c.yaml +1377 -0
  33. stage/data/companies/d.yaml +497 -0
  34. stage/data/companies/e.yaml +519 -0
  35. stage/data/companies/f.yaml +454 -0
  36. stage/data/companies/g.yaml +601 -0
  37. stage/data/companies/h.yaml +446 -0
  38. stage/data/companies/i.yaml +503 -0
  39. stage/data/companies/j.yaml +138 -0
  40. stage/data/companies/k.yaml +278 -0
  41. stage/data/companies/l.yaml +402 -0
  42. stage/data/companies/m.yaml +937 -0
  43. stage/data/companies/n.yaml +549 -0
  44. stage/data/companies/o.yaml +371 -0
  45. stage/data/companies/other.yaml +58 -0
  46. stage/data/companies/p.yaml +825 -0
  47. stage/data/companies/q.yaml +121 -0
  48. stage/data/companies/r.yaml +583 -0
  49. stage/data/companies/s.yaml +1140 -0
  50. stage/data/companies/t.yaml +817 -0
  51. stage/data/companies/u.yaml +196 -0
  52. stage/data/companies/v.yaml +325 -0
  53. stage/data/companies/w.yaml +353 -0
  54. stage/data/companies/x.yaml +67 -0
  55. stage/data/companies/y.yaml +36 -0
  56. stage/data/companies/z.yaml +146 -0
  57. stage/data/fonts/DejaVuSans.LICENSE.txt +99 -0
  58. stage/data/fonts/DejaVuSans.ttf +0 -0
  59. stage/data/lexicon/company_tokens.yaml +228 -0
  60. stage/data/lexicon/eligibility.yaml +455 -0
  61. stage/data/lexicon/inclusive_suffixes.yaml +37 -0
  62. stage/data/lexicon/internship.yaml +187 -0
  63. stage/data/lexicon/language.yaml +226 -0
  64. stage/data/lexicon/locations.yaml +1159 -0
  65. stage/data/lexicon/roles.yaml +2012 -0
  66. stage/data/lexicon/terms.yaml +76 -0
  67. stage/data/lexicon/workday_facets.yaml +27 -0
  68. stage/data/seed_companies.yaml +198 -0
  69. stage/dedup/__init__.py +19 -0
  70. stage/dedup/identity.py +113 -0
  71. stage/dedup/resolve.py +97 -0
  72. stage/domain/__init__.py +244 -0
  73. stage/domain/company.py +49 -0
  74. stage/domain/coverage.py +86 -0
  75. stage/domain/custom_board.py +92 -0
  76. stage/domain/discovery.py +94 -0
  77. stage/domain/enums.py +114 -0
  78. stage/domain/events.py +204 -0
  79. stage/domain/filters.py +27 -0
  80. stage/domain/health.py +169 -0
  81. stage/domain/ids.py +48 -0
  82. stage/domain/job.py +47 -0
  83. stage/domain/matching.py +15 -0
  84. stage/domain/priority.py +34 -0
  85. stage/domain/quarantine.py +39 -0
  86. stage/domain/rate_state.py +78 -0
  87. stage/domain/retention.py +20 -0
  88. stage/domain/rotation.py +46 -0
  89. stage/domain/signals.py +12 -0
  90. stage/domain/sync_run.py +35 -0
  91. stage/domain/text.py +113 -0
  92. stage/domain/validator.py +14 -0
  93. stage/domain/visits.py +60 -0
  94. stage/domain/workday.py +38 -0
  95. stage/http/__init__.py +58 -0
  96. stage/http/breaker.py +53 -0
  97. stage/http/cache.py +44 -0
  98. stage/http/client.py +725 -0
  99. stage/http/profiles.py +101 -0
  100. stage/lexicon.py +370 -0
  101. stage/normalize/__init__.py +16 -0
  102. stage/normalize/language.py +47 -0
  103. stage/normalize/location.py +271 -0
  104. stage/normalize/terms.py +153 -0
  105. stage/normalize/urls.py +122 -0
  106. stage/paths.py +86 -0
  107. stage/py.typed +0 -0
  108. stage/services/__init__.py +0 -0
  109. stage/services/canary.py +120 -0
  110. stage/services/coverage.py +231 -0
  111. stage/services/discover.py +747 -0
  112. stage/services/export.py +274 -0
  113. stage/services/health.py +237 -0
  114. stage/services/maintenance.py +225 -0
  115. stage/services/quarantine.py +20 -0
  116. stage/services/query.py +86 -0
  117. stage/services/sync.py +1257 -0
  118. stage/sources/__init__.py +82 -0
  119. stage/sources/_text.py +79 -0
  120. stage/sources/ashby.py +93 -0
  121. stage/sources/bamboohr.py +80 -0
  122. stage/sources/base.py +225 -0
  123. stage/sources/breezy.py +90 -0
  124. stage/sources/collage.py +60 -0
  125. stage/sources/community_feeds.py +142 -0
  126. stage/sources/curated_markdown.py +289 -0
  127. stage/sources/custom_json.py +610 -0
  128. stage/sources/espresso.py +154 -0
  129. stage/sources/feed.py +44 -0
  130. stage/sources/greenhouse.py +104 -0
  131. stage/sources/jobbank.py +147 -0
  132. stage/sources/jobvite.py +133 -0
  133. stage/sources/lever.py +76 -0
  134. stage/sources/oracle_cloud.py +187 -0
  135. stage/sources/platforms.py +609 -0
  136. stage/sources/quebec_emploi.py +146 -0
  137. stage/sources/recruitee.py +96 -0
  138. stage/sources/simplify.py +110 -0
  139. stage/sources/smartrecruiters.py +216 -0
  140. stage/sources/speedyapply.py +200 -0
  141. stage/sources/themuse.py +157 -0
  142. stage/sources/workable.py +83 -0
  143. stage/sources/workday.py +524 -0
  144. stage/sources/zshah.py +99 -0
  145. stage/storage/__init__.py +29 -0
  146. stage/storage/migrations/0001_initial.sql +239 -0
  147. stage/storage/migrations/__init__.py +135 -0
  148. stage/storage/repository.py +213 -0
  149. stage/storage/search.py +28 -0
  150. stage/storage/sqlite_repo.py +1586 -0
  151. stage/storage/writer.py +249 -0
  152. stage/tui/__init__.py +0 -0
  153. stage/tui/app.py +82 -0
  154. stage/tui/help.py +26 -0
  155. stage/tui/safe.py +21 -0
  156. stage/tui/screens/__init__.py +0 -0
  157. stage/tui/screens/boards.py +186 -0
  158. stage/tui/screens/postings.py +509 -0
  159. stage/tui/screens/review.py +209 -0
  160. stage/tui/screens/splash.py +37 -0
  161. stage/tui/screens/stats.py +124 -0
  162. stage/tui/screens/sync.py +194 -0
  163. stage/tui/state.py +160 -0
  164. stage/tui/theme.tcss +205 -0
  165. stage/tui/widgets/__init__.py +0 -0
  166. stage_cli-1.0.0.dist-info/METADATA +379 -0
  167. stage_cli-1.0.0.dist-info/RECORD +170 -0
  168. stage_cli-1.0.0.dist-info/WHEEL +4 -0
  169. stage_cli-1.0.0.dist-info/entry_points.txt +2 -0
  170. stage_cli-1.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,900 @@
1
+ - name: BAE Systems
2
+ platform: custom_json
3
+ slug: baesystems
4
+ source_of_record: discover
5
+ last_verified: 2026-08-20
6
+ notes: '2026-08-20: WordPress career site; the public wp/v2 jobs post type is the
7
+ listing contract. Its location taxonomy is not the first embedded group, so the
8
+ path names it rather than counting.'
9
+ custom:
10
+ url: https://jobsearch.baesystems.com/wp-json/wp/v2/jobs?per_page=100&_embed=wp%3Aterm
11
+ fields:
12
+ title: title.rendered
13
+ id: id
14
+ url: link
15
+ location: _embedded.wp:term[0.taxonomy=location].0.name
16
+ department: _embedded.wp:term[0.taxonomy=area-of-work].0.name
17
+ page_param: page
18
+ page_size: 100
19
+ page_start: 1
20
+ page_step: 1
21
+ max_pages: 8
22
+ - name: Baker Hughes
23
+ platform: workday
24
+ slug: bakerhughes
25
+ source_of_record: discover
26
+ last_verified: 2026-08-16
27
+ workday_tenant: bakerhughes
28
+ workday_site: BakerHughes
29
+ workday_dc: wd5
30
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
31
+ verified by a scratch sync — the board answered with 120 posting(s), 1 kept after
32
+ the CS-internship screens'
33
+ - name: Bambus
34
+ platform: custom_json
35
+ slug: bambus
36
+ source_of_record: discover
37
+ last_verified: 2026-08-20
38
+ enabled: false
39
+ notes: '2026-08-20: a Salesforce Experience site that ships no listing markup and
40
+ names no endpoint; it needs a captured request.'
41
+ custom:
42
+ url: https://bambusdev.my.site.com/s/
43
+ fields:
44
+ title: title
45
+ id: id
46
+ - name: Bandai Namco
47
+ platform: greenhouse
48
+ slug: bandainamco
49
+ source_of_record: discover
50
+ last_verified: 2026-08-21
51
+ notes: '2026-08-21: the board names itself Bandai Namco Entertainment America Inc.'
52
+ - name: Bank of America
53
+ platform: custom_json
54
+ slug: bankofamerica
55
+ source_of_record: discover
56
+ last_verified: 2026-08-30
57
+ notes: '2026-08-30: tal.net now answers every request with an Altcha proof-of-work
58
+ page titled "Quick Check Needed", so the old html board cannot be read and a fresh
59
+ xf- token does not help. careers.bankofamerica.com serves the same campus listings
60
+ as json from campusjobssearchservlet, which needs no token and returns all 74
61
+ rows in one request. The experienced-hire sibling, jobssearchservlet, carries
62
+ 2,273 rows and no internships, so it is deliberately not used.'
63
+ custom:
64
+ url: https://careers.bankofamerica.com/services/campusjobssearchservlet?start=0&rows=200&search=getAllJobs
65
+ jobs_path: jobsList
66
+ fields:
67
+ title: postingTitle
68
+ id: jobRequisitionId
69
+ location: location
70
+ description: jobDescriptionExternal
71
+ category: family
72
+ url_template: https://careers.bankofamerica.com/en-us/students/job-detail/{id}/job
73
+ - name: Bank of China USA
74
+ platform: custom_json
75
+ slug: bocusa
76
+ source_of_record: discover
77
+ last_verified: 2026-09-01
78
+ notes: '2026-09-01: iCIMS serves no JSON, so this reads the search page.
79
+ Verified an Internal Audit Data Analytics intern.'
80
+ custom:
81
+ url: https://careers-bocusa.icims.com/jobs/search?ss=1&in_iframe=1
82
+ format: html
83
+ row_selector: div.row:has(a.iCIMS_Anchor)
84
+ fields:
85
+ title: a.iCIMS_Anchor h3
86
+ url: a.iCIMS_Anchor::attr(href)
87
+ location: .header.left span + span
88
+ - name: Banyan Software
89
+ platform: greenhouse
90
+ slug: banyansoftware
91
+ source_of_record: openjobs
92
+ last_verified: 2026-08-14
93
+ - name: Barclays
94
+ platform: workday
95
+ slug: barclays
96
+ source_of_record: manual
97
+ last_verified: 2026-08-13
98
+ workday_tenant: barclays
99
+ workday_site: external_career_site_barclays
100
+ workday_dc: wd3
101
+ workday_facet: workerSubType:6139d325cdcc1001a72ceb63d5d60001
102
+ notes: '2026-08-13: official Workday endpoint verified; its Intern facet has 13
103
+ listings.'
104
+ - name: Barkback
105
+ platform: smartrecruiters
106
+ slug: barkbackllc
107
+ source_of_record: discover
108
+ last_verified: &id007 2026-08-14
109
+ - name: Barnstorm VFX
110
+ platform: bamboohr
111
+ slug: barnstormvfx
112
+ source_of_record: openjobs
113
+ last_verified: &id012 2026-08-11
114
+ notes: '2026-08-11: enabled on slug evidence - bamboohr publishes no board name,
115
+ but the slug folds to the caption and the board returned 15 job(s)'
116
+ - name: Base Power
117
+ platform: ashby
118
+ slug: base-power
119
+ source_of_record: manual
120
+ last_verified: 2026-08-13
121
+ notes: '2026-08-13: official active hardware-engineering internship application
122
+ verifies the public Ashby board.'
123
+ - name: Baseten
124
+ platform: ashby
125
+ slug: baseten
126
+ source_of_record: discover
127
+ last_verified: &id008 2026-08-16
128
+ name_gate_exempt: true
129
+ notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
130
+ ashby publishes no board name, so provenance is the evidence (71 job(s))'
131
+ - name: Bayut dubizzle
132
+ platform: workable
133
+ slug: bayutdubizzle
134
+ source_of_record: discover
135
+ last_verified: 2026-08-17
136
+ notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
137
+ paused_until resumed it.'
138
+ - name: BCG
139
+ platform: custom_json
140
+ slug: bcg
141
+ source_of_record: discover
142
+ last_verified: 2026-08-16
143
+ notes: Phenom POST /widgets; the earlier HTML-only verdict came from reading the
144
+ document request rather than the widget.
145
+ custom:
146
+ url: https://careers.bcg.com/widgets
147
+ method: POST
148
+ body:
149
+ lang: en_global
150
+ deviceType: desktop
151
+ country: global
152
+ pageName: search-results
153
+ all_fields:
154
+ - country
155
+ - city
156
+ - category
157
+ - company
158
+ - type
159
+ - jobType
160
+ clearAll: false
161
+ counts: true
162
+ ddoKey: refineSearch
163
+ from: 0
164
+ global: true
165
+ irs: false
166
+ isSliderEnable: false
167
+ jdsource: facets
168
+ jobs: true
169
+ keywords: ''
170
+ locationData: {}
171
+ pageId: page17-ds
172
+ selected_fields:
173
+ jobType:
174
+ - Internship
175
+ siteType: external
176
+ size: 10
177
+ sortBy: ''
178
+ subsearch: ''
179
+ jobs_path: refineSearch.data.jobs
180
+ fields:
181
+ title: title
182
+ id: jobId
183
+ location: location
184
+ url: applyUrl
185
+ description: descriptionTeaser
186
+ category: category
187
+ employment_type: type
188
+ page_param: from
189
+ page_size: 10
190
+ max_pages: 15
191
+ - name: BDO Canada
192
+ platform: workday
193
+ slug: bdo
194
+ source_of_record: discover
195
+ last_verified: &id003 2026-08-14
196
+ workday_tenant: bdo
197
+ workday_site: BDO
198
+ workday_dc: wd3
199
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
200
+ is the only verification a Workday tenant can have without an offline probe'
201
+ - name: Beacon Software
202
+ platform: ashby
203
+ slug: beaconsoftware
204
+ source_of_record: manual
205
+ last_verified: 2026-08-13
206
+ notes: '2026-08-13: official active software-engineering internship application
207
+ verifies the public Ashby board.'
208
+ - name: Beamdog
209
+ platform: bamboohr
210
+ slug: beamdog
211
+ source_of_record: openjobs
212
+ enabled: false
213
+ notes: '2026-08-08: bamboohr publishes no board name, so a 200 with jobs is not
214
+ evidence of the right company; needs a human to open the board once'
215
+ - name: Beenox
216
+ platform: custom_json
217
+ slug: beenox
218
+ source_of_record: discover
219
+ last_verified: 2026-08-20
220
+ notes: Phenom POST /widgets; an Activision studio in Quebec City, two postings today.
221
+ custom:
222
+ url: https://careers.beenox.com/widgets
223
+ method: POST
224
+ body:
225
+ lang: en_global
226
+ deviceType: desktop
227
+ country: ca
228
+ pageName: search-results
229
+ ddoKey: refineSearch
230
+ from: 0
231
+ size: 100
232
+ jobs: true
233
+ counts: true
234
+ all_fields:
235
+ - category
236
+ - country
237
+ - type
238
+ keywords: ''
239
+ siteType: external
240
+ clearAll: false
241
+ selected_fields: {}
242
+ locationData: {}
243
+ sortBy: ''
244
+ subsearch: ''
245
+ jobs_path: refineSearch.data.jobs
246
+ fields:
247
+ title: title
248
+ id: jobSeqNo
249
+ location: location
250
+ url: applyUrl
251
+ description: descriptionTeaser
252
+ category: category
253
+ department: department
254
+ page_param: from
255
+ page_size: 100
256
+ max_pages: 2
257
+ - name: Behaviour Interactive
258
+ platform: lever
259
+ slug: bhvr
260
+ source_of_record: openjobs
261
+ last_verified: &id005 2026-08-04
262
+ - name: Bell Canada
263
+ platform: custom_json
264
+ slug: bell-canada
265
+ source_of_record: discover
266
+ last_verified: &id006 2026-08-17
267
+ notes: Phenom POST /widgets, fetched unfiltered because the intern roster is empty
268
+ rather than the filter broken.
269
+ custom:
270
+ url: https://jobs.bell.ca/widgets
271
+ method: POST
272
+ body:
273
+ lang: en_global
274
+ deviceType: desktop
275
+ country: ca
276
+ pageName: search-results
277
+ ddoKey: refineSearch
278
+ from: 0
279
+ size: 10
280
+ jobs: true
281
+ counts: true
282
+ all_fields:
283
+ - category
284
+ - country
285
+ - type
286
+ keywords: ''
287
+ siteType: external
288
+ clearAll: false
289
+ selected_fields: {}
290
+ locationData: {}
291
+ sortBy: ''
292
+ subsearch: ''
293
+ jobs_path: refineSearch.data.jobs
294
+ fields:
295
+ title: title
296
+ id: jobSeqNo
297
+ location: location
298
+ description: descriptionTeaser
299
+ category: category
300
+ department: department
301
+ url_template: https://jobs.bell.ca/ca/en/job/{id}
302
+ page_param: from
303
+ page_size: 10
304
+ max_pages: 8
305
+ - name: Belvedere Trading
306
+ platform: lever
307
+ slug: belvederetrading
308
+ source_of_record: manual
309
+ last_verified: 2026-08-13
310
+ notes: '2026-08-13: official active quantitative-trading internship application
311
+ verifies the public Lever board.'
312
+ - name: Beneva
313
+ platform: workday
314
+ slug: beneva
315
+ source_of_record: discover
316
+ last_verified: 2026-08-20
317
+ workday_tenant: beneva
318
+ workday_site: BenevaSite_carriere
319
+ workday_dc: wd10
320
+ notes: Coordinates from the employer's own careers URL; 50 postings, entirely French
321
+ and Quebec-based.
322
+ - name: Benevity
323
+ platform: ashby
324
+ slug: benevity
325
+ source_of_record: discover
326
+ last_verified: &id002 2026-08-17
327
+ notes: '2026-08-17: found by careers-page ATS scan, one plain GET. verify returned
328
+ 13 jobs and needs-a-manual-check, the expected verdict where the platform publishes
329
+ no board name; token equals the company name'
330
+ - name: Berkshire Hathaway Energy
331
+ platform: oracle_cloud
332
+ slug: fa-essf-saasfaprod1
333
+ source_of_record: discover
334
+ last_verified: &id004 2026-08-14
335
+ oracle_host: fa-essf-saasfaprod1.fa.ocs.oraclecloud.com
336
+ oracle_site: CX_1
337
+ notes: '2026-08-14: enabled to be verified by a real sync — the Oracle Cloud candidate
338
+ endpoint has no offline probe, and this host and site come from the employer''s
339
+ own application URL'
340
+ - name: Bestow
341
+ platform: ashby
342
+ slug: bestow
343
+ source_of_record: discover
344
+ last_verified: &id001 2026-08-14
345
+ name_gate_exempt: true
346
+ notes: '2026-08-14: board token taken from this employer''s own application URL
347
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
348
+ name gate cannot confirm it and provenance is the evidence (17 job(s))'
349
+ - name: Betterment
350
+ platform: greenhouse
351
+ slug: betterment
352
+ source_of_record: discover
353
+ last_verified: 2026-08-21
354
+ notes: '2026-08-21: official current-openings page exposes the Betterment Greenhouse
355
+ board.'
356
+ - name: BeyondTrust
357
+ platform: greenhouse
358
+ slug: beyondtrust
359
+ source_of_record: discover
360
+ last_verified: 2026-08-21
361
+ notes: '2026-08-21: both greenhouse and smartrecruiters answer under this name;
362
+ greenhouse carries 55 postings to the smartrecruiters board''s 2, so it is the
363
+ live one'
364
+ - name: Bigblue
365
+ platform: lever
366
+ slug: bigblue
367
+ source_of_record: discover
368
+ last_verified: *id001
369
+ name_gate_exempt: true
370
+ notes: '2026-08-14: board token taken from this employer''s own application URL
371
+ in a feed posting, not from slug guessing; lever publishes no board name, so the
372
+ name gate cannot confirm it and provenance is the evidence (34 job(s))'
373
+ - name: BigCommerce
374
+ platform: workday
375
+ slug: bigcommerce
376
+ source_of_record: discover
377
+ last_verified: *id002
378
+ workday_tenant: bigcommerce
379
+ workday_site: Commerce
380
+ workday_dc: wd12
381
+ notes: '2026-08-17: found by a plain-HTTP scan of the employer''s own careers page
382
+ for a known ATS hostname, no browser and one request per host.'
383
+ - name: Bild AI
384
+ platform: ashby
385
+ slug: bild-ai
386
+ source_of_record: manual
387
+ last_verified: 2026-08-13
388
+ notes: '2026-08-13: official active AI/software-engineering internship application
389
+ verifies the public Ashby board.'
390
+ - name: Binance.US
391
+ platform: ashby
392
+ slug: binance.us
393
+ source_of_record: discover
394
+ last_verified: *id001
395
+ name_gate_exempt: true
396
+ notes: '2026-08-14: board token taken from this employer''s own application URL
397
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
398
+ name gate cannot confirm it and provenance is the evidence (8 job(s))'
399
+ - name: Bio-Techne
400
+ platform: workday
401
+ slug: biotechne
402
+ source_of_record: discover
403
+ last_verified: *id003
404
+ workday_tenant: biotechne
405
+ workday_site: Biotechne
406
+ workday_dc: wd5
407
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
408
+ is the only verification a Workday tenant can have without an offline probe'
409
+ - name: Biogen
410
+ platform: workday
411
+ slug: biibhr
412
+ source_of_record: discover
413
+ last_verified: *id003
414
+ workday_tenant: biibhr
415
+ workday_site: external
416
+ workday_dc: wd3
417
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
418
+ is the only verification a Workday tenant can have without an offline probe'
419
+ - name: BNY
420
+ platform: oracle_cloud
421
+ slug: eofe
422
+ source_of_record: discover
423
+ last_verified: 2026-09-01
424
+ oracle_host: eofe.fa.us2.oraclecloud.com
425
+ oracle_site: BNY-Careers
426
+ notes: '2026-09-01: verified 1401 postings on the Oracle Cloud candidate endpoint.'
427
+ - name: Black Bery
428
+ platform: workday
429
+ slug: bb
430
+ source_of_record: openjobs
431
+ last_verified: &id011 2026-08-14
432
+ recheck_after: &id009 2026-10-01
433
+ workday_tenant: bb
434
+ workday_site: QNX
435
+ workday_dc: wd3
436
+ notes: '2026-08-14: verified by a real sync — this board returned postings'
437
+ - name: Black Box
438
+ platform: oracle_cloud
439
+ slug: eoje
440
+ source_of_record: discover
441
+ last_verified: *id004
442
+ oracle_host: eoje.fa.us2.oraclecloud.com
443
+ oracle_site: CX_1001
444
+ notes: '2026-08-14: enabled to be verified by a real sync — the Oracle Cloud candidate
445
+ endpoint has no offline probe, and this host and site come from the employer''s
446
+ own application URL'
447
+ - name: BlackBerry (students)
448
+ platform: workday
449
+ slug: bb
450
+ source_of_record: discover
451
+ last_verified: 2026-08-20
452
+ workday_tenant: bb
453
+ workday_site: Student
454
+ workday_dc: wd3
455
+ notes: The tenant's student site; three postings, all co-op or intern, against the
456
+ QNX row's general board.
457
+ - name: Blackbird Interactive
458
+ platform: lever
459
+ slug: blackbirdinteractive
460
+ source_of_record: openjobs
461
+ last_verified: *id005
462
+ - name: BlackEdge Capital
463
+ platform: greenhouse
464
+ slug: blackedgecapital
465
+ source_of_record: discover
466
+ last_verified: &id010 2026-08-14
467
+ - name: Blackline Safety
468
+ platform: workday
469
+ slug: blackline
470
+ source_of_record: discover
471
+ last_verified: *id006
472
+ workday_tenant: blackline
473
+ workday_site: BlackLineCareers
474
+ workday_dc: wd108
475
+ notes: '2026-08-17: verified by scratch sync, 110 postings returned, 0 internships
476
+ on the day of adoption.'
477
+ - name: BlackRock
478
+ platform: custom_json
479
+ slug: blackrock
480
+ source_of_record: discover
481
+ last_verified: 2026-08-18
482
+ notes: TalentBrew JSON answers 200 with empty content, so the server-rendered /search-jobs
483
+ page is read instead; pagination is p=, not the pg= in the URL bar.
484
+ custom:
485
+ url: https://careers.blackrock.com/search-jobs?p=1
486
+ format: html
487
+ row_selector: li.section3__search-results-li
488
+ fields:
489
+ title: h2.section3__job-title
490
+ id: a.section3__search-results-a::attr(data-job-id)
491
+ url: a.section3__search-results-a::attr(href)
492
+ location: span.section3__job-location
493
+ page_param: p
494
+ page_size: 10
495
+ page_start: 1
496
+ page_step: 1
497
+ max_pages: 32
498
+ - name: Blackstar Computers
499
+ platform: ashby
500
+ slug: blackstar
501
+ source_of_record: discover
502
+ last_verified: *id001
503
+ name_gate_exempt: true
504
+ notes: '2026-08-14: board token taken from this employer''s own application URL
505
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
506
+ name gate cannot confirm it and provenance is the evidence (14 job(s))'
507
+ - name: Blackstone
508
+ platform: workday
509
+ slug: blackstone
510
+ source_of_record: discover
511
+ last_verified: *id003
512
+ workday_tenant: blackstone
513
+ workday_site: Blackstone_Campus_Careers
514
+ workday_dc: wd1
515
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
516
+ is the only verification a Workday tenant can have without an offline probe'
517
+ - name: BlinqLABS
518
+ platform: smartrecruiters
519
+ slug: blinqlabs
520
+ source_of_record: discover
521
+ last_verified: *id007
522
+ - name: Block
523
+ platform: greenhouse
524
+ slug: block
525
+ source_of_record: discover
526
+ last_verified: 2026-08-21
527
+ notes: '2026-08-21: official careers page names the live Block Greenhouse board.'
528
+ - name: Blockhouse
529
+ platform: ashby
530
+ slug: blockhouse
531
+ source_of_record: manual
532
+ last_verified: 2026-08-13
533
+ notes: '2026-08-13: official active Rust-development internship application verifies
534
+ the public Ashby board.'
535
+ - name: Bloomberg
536
+ platform: custom_json
537
+ slug: bloomberg
538
+ source_of_record: discover
539
+ last_verified: 2026-08-20
540
+ notes: '2026-08-20: Avature board on the same listFilterMode markup the Two Sigma
541
+ row pins; walked unfiltered because its facet ids are opaque.'
542
+ custom:
543
+ url: https://bloomberg.avature.net/careers/SearchJobs/?listFilterMode=1&jobRecordsPerPage=12
544
+ format: html
545
+ row_selector: article.article--result
546
+ fields:
547
+ title: h3.article__header__text__title a
548
+ url: h3.article__header__text__title a::attr(href)
549
+ location: div.article__header__content__text > span.paragraph_inner-span
550
+ page_param: jobOffset
551
+ page_size: 12
552
+ max_pages: 40
553
+ - name: Blue Cross Blue Shield of Michigan
554
+ platform: oracle_cloud
555
+ slug: ejko
556
+ source_of_record: discover
557
+ last_verified: 2026-08-18
558
+ oracle_host: ejko.fa.us2.oraclecloud.com
559
+ oracle_site: CX_3
560
+ notes: '2026-08-18: re-enabled with the site number supplied by the owner. The row
561
+ was parked as ''returned no postings at all'' because the site was unknown; with
562
+ siteNumber=CX_3 the candidate endpoint answers 200 with postings.'
563
+ - name: blue isle studios
564
+ platform: smartrecruiters
565
+ slug: blueislestudios
566
+ source_of_record: openjobs
567
+ last_verified: *id007
568
+ - name: Blue Origin
569
+ platform: workday
570
+ slug: blueorigin
571
+ source_of_record: manual
572
+ last_verified: 2026-08-13
573
+ workday_tenant: blueorigin
574
+ workday_site: blueorigin
575
+ workday_dc: wd5
576
+ workday_facet: workerSubType:f3db39143e3e01ea6d86269150283618
577
+ notes: '2026-08-13: official Workday endpoint verified; its Intern fixed-term facet
578
+ has one listing.'
579
+ - name: BlueLabs Analytics
580
+ platform: greenhouse
581
+ slug: bluelabsanalyticsinc
582
+ source_of_record: discover
583
+ last_verified: *id008
584
+ notes: '2026-08-16: seen in feed postings but absent from the registry; discover
585
+ matched greenhouse/bluelabsanalyticsinc with 9 job(s) and the board named itself,
586
+ so it is polled directly instead of secondhand'
587
+ - name: Bluestaq
588
+ platform: greenhouse
589
+ slug: bluestaq
590
+ source_of_record: discover
591
+ last_verified: 2026-08-18
592
+ notes: '2026-08-18: seen in feed postings but absent from the registry; discover
593
+ matched greenhouse/bluestaq with 9 job(s) and the board named itself, so it is
594
+ polled directly instead of secondhand'
595
+ - name: BMO
596
+ platform: workday
597
+ slug: bmo
598
+ source_of_record: discover
599
+ last_verified: 2026-08-11
600
+ recheck_after: *id009
601
+ workday_tenant: bmo
602
+ workday_site: External
603
+ workday_dc: wd3
604
+ workday_facet: company:99ba898c88ac011c8a873c01f2016c06
605
+ notes: '2026-08-13: pinned to BMO''s verified Intern (Fixed Term) facet, so sync
606
+ avoids its 1,180-role general board'
607
+ - name: BMW Group
608
+ platform: custom_json
609
+ slug: bmwgroup
610
+ source_of_record: discover
611
+ last_verified: 2026-08-20
612
+ enabled: false
613
+ notes: '2026-08-20: closed for good — the jobfinder renders client-side, its sitemap
614
+ carries only content pages, and the owner confirmed a DevTools capture finds no
615
+ reusable listing request.'
616
+ custom:
617
+ url: https://www.bmwgroup.jobs/en/jobfinder.html
618
+ fields:
619
+ title: title
620
+ id: id
621
+ - name: Boeing
622
+ platform: workday
623
+ slug: boeing
624
+ source_of_record: manual
625
+ last_verified: 2026-08-13
626
+ workday_tenant: boeing
627
+ workday_site: external_careers
628
+ workday_dc: wd1
629
+ workday_facet: workerSubType:8b618a30e00f01dbf217e9650c3fc507
630
+ notes: '2026-08-13: official Workday endpoint verified; its paid intern facet has
631
+ 16 listings.'
632
+ - name: Bolder Apps
633
+ platform: workable
634
+ slug: bolderapps
635
+ source_of_record: discover
636
+ last_verified: 2026-08-16
637
+ notes: '2026-08-16: adopted from this employer''s own apply URL, then paused to
638
+ match the rest of the workable platform, which is parked until 2026-08-18 after
639
+ two 429s in one day.'
640
+ - name: Bombardier
641
+ platform: custom_json
642
+ slug: bombardier
643
+ source_of_record: discover
644
+ last_verified: 2026-08-18
645
+ notes: SuccessFactors listings are session-gated, but /rss.xml is a Google-jobs
646
+ feed carrying the whole board.
647
+ custom:
648
+ url: https://jobs.bombardier.com/rss.xml
649
+ format: rss
650
+ fields:
651
+ title: title
652
+ id: g:id
653
+ url: link
654
+ location: g:location
655
+ description: description
656
+ - name: Booking.com
657
+ platform: custom_json
658
+ slug: booking-com-jibe
659
+ source_of_record: discover
660
+ last_verified: 2026-08-21
661
+ notes: '2026-08-21: official Jibe search API with the supplied internship keyword
662
+ returned a live posting.'
663
+ custom:
664
+ url: https://jobs.booking.com/api/jobs?keywords=internship&limit=100
665
+ jobs_path: jobs
666
+ fields:
667
+ title: data.title
668
+ id: data.req_id
669
+ location: full_location
670
+ url: canonical_url
671
+ description: data.description
672
+ employment_type: data.employment_type
673
+ page_param: page
674
+ page_size: 100
675
+ page_start: 1
676
+ page_step: 1
677
+ max_pages: 2
678
+ - name: Booz Allen
679
+ platform: workday
680
+ slug: bah
681
+ source_of_record: manual
682
+ last_verified: 2026-08-13
683
+ workday_tenant: bah
684
+ workday_site: bah_jobs
685
+ workday_dc: wd1
686
+ workday_facet: workerSubType:12aea2bdfbdb10dbf53be9b8e38a2a1d
687
+ notes: '2026-08-13: official Workday endpoint verified; its paid intern facet has
688
+ two listings.'
689
+ - name: BorgWarner
690
+ platform: workday
691
+ slug: borgwarner
692
+ source_of_record: manual
693
+ last_verified: 2026-08-13
694
+ workday_tenant: borgwarner
695
+ workday_site: BorgWarner_Careers
696
+ workday_dc: wd5
697
+ workday_facet: workerSubType:04519724ad9a4dbaa1c1dd96f0cfb311
698
+ notes: '2026-08-13: official Workday endpoint verified; its Student facet has 28
699
+ listings.'
700
+ - name: Bosch
701
+ platform: smartrecruiters
702
+ slug: boschgroup
703
+ source_of_record: discover
704
+ last_verified: *id007
705
+ - name: Boston Dynamics
706
+ platform: workday
707
+ slug: bostondynamics
708
+ source_of_record: discover
709
+ last_verified: *id002
710
+ workday_tenant: bostondynamics
711
+ workday_site: Boston_Dynamics
712
+ workday_dc: wd1
713
+ notes: '2026-08-17: found by a plain-HTTP scan of the employer''s own careers page
714
+ for a known ATS hostname, no browser and one request per host.'
715
+ - name: Bot Auto
716
+ platform: greenhouse
717
+ slug: botauto
718
+ source_of_record: discover
719
+ last_verified: *id010
720
+ - name: Botpress
721
+ platform: workable
722
+ slug: botpress
723
+ source_of_record: discover
724
+ last_verified: 2026-08-20
725
+ notes: '2026-08-20: careers-page ATS scan found the Workable embed; the widget account
726
+ names itself Botpress Technologies Inc.'
727
+ - name: bounteous
728
+ platform: lever
729
+ slug: bounteous
730
+ source_of_record: openjobs
731
+ last_verified: *id005
732
+ - name: BowerGroupAsia
733
+ platform: bamboohr
734
+ slug: bga
735
+ source_of_record: discover
736
+ last_verified: *id008
737
+ name_gate_exempt: true
738
+ notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
739
+ bamboohr publishes no board name, so provenance is the evidence (23 job(s))'
740
+ - name: BP
741
+ platform: workday
742
+ slug: bpinternational
743
+ source_of_record: discover
744
+ last_verified: 2026-08-16
745
+ workday_tenant: bpinternational
746
+ workday_site: bpEarlyCareers
747
+ workday_dc: wd3
748
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
749
+ verified by a scratch sync (9 posting(s), 0 kept)'
750
+ - name: Brain Hunter
751
+ platform: smartrecruiters
752
+ slug: brainhunter
753
+ source_of_record: openjobs
754
+ last_verified: *id007
755
+ - name: Branch International
756
+ platform: greenhouse
757
+ slug: branch
758
+ source_of_record: discover
759
+ last_verified: *id010
760
+ - name: Braze
761
+ platform: greenhouse
762
+ slug: braze
763
+ source_of_record: discover
764
+ last_verified: 2026-08-17
765
+ notes: '2026-08-17: browser discovery found a greenhouse API URL, so this is a native
766
+ board rather than custom_json; verified by probe with the company name on the
767
+ returned board'
768
+ - name: Bree
769
+ platform: ashby
770
+ slug: bree
771
+ source_of_record: manual
772
+ last_verified: 2026-08-13
773
+ notes: '2026-08-13: official active machine-learning internship/co-op application
774
+ verifies the public Ashby board.'
775
+ - name: Brevium
776
+ platform: greenhouse
777
+ slug: brevium
778
+ source_of_record: discover
779
+ last_verified: *id008
780
+ notes: '2026-08-16: seen in feed postings but absent from the registry; discover
781
+ matched greenhouse/brevium with 3 job(s) and the board named itself, so it is
782
+ polled directly instead of secondhand'
783
+ - name: Brex
784
+ platform: greenhouse
785
+ slug: brex
786
+ source_of_record: discover
787
+ last_verified: 2026-08-21
788
+ notes: '2026-08-21: official careers page resolves to the live Brex Greenhouse board.'
789
+ - name: Bridgewater Associates
790
+ platform: greenhouse
791
+ slug: bridgewater89
792
+ source_of_record: discover
793
+ last_verified: *id006
794
+ notes: '2026-08-17: browser-assisted discovery returned www.bridgewater.com/jobboard,
795
+ whose rows carry job-boards.greenhouse.io/bridgewater89 apply URLs.'
796
+ - name: Brillio
797
+ platform: lever
798
+ slug: brillio-2
799
+ source_of_record: openjobs
800
+ last_verified: *id005
801
+ - name: Bristol Myers Squibb
802
+ platform: custom_json
803
+ slug: bristol-myers-squibb
804
+ source_of_record: discover
805
+ last_verified: 2026-08-17
806
+ notes: '2026-08-17: eightfold. filter_family carries the employer''s own early-career
807
+ and intern/co-op families.'
808
+ custom:
809
+ url: https://jobs.bms.com/api/pcsx/search?domain=bms.com&query=&start=0&sort_by=relevance&filter_family=early%20career%20program%2Cintern%2Fco-op
810
+ jobs_path: data.positions
811
+ fields:
812
+ title: name
813
+ id: id
814
+ location: standardizedLocations
815
+ department: department
816
+ url_template: https://jobs.bms.com/careers/job/{id}
817
+ page_param: start
818
+ page_size: 10
819
+ max_pages: 20
820
+ - name: Broadcom
821
+ platform: workday
822
+ slug: broadcom
823
+ source_of_record: openjobs
824
+ last_verified: *id011
825
+ recheck_after: *id009
826
+ workday_tenant: broadcom
827
+ workday_site: External_Career
828
+ workday_dc: wd1
829
+ notes: '2026-08-14: verified by a real sync — this board returned postings'
830
+ - name: Brookfield
831
+ platform: workday
832
+ slug: brookfield
833
+ source_of_record: discover
834
+ last_verified: *id003
835
+ workday_tenant: brookfield
836
+ workday_site: brookfieldprivate
837
+ workday_dc: wd5
838
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
839
+ is the only verification a Workday tenant can have without an offline probe'
840
+ - name: Brown Brothers Harriman
841
+ platform: workday
842
+ slug: bbh
843
+ source_of_record: discover
844
+ last_verified: *id003
845
+ workday_tenant: bbh
846
+ workday_site: bbh
847
+ workday_dc: wd5
848
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
849
+ is the only verification a Workday tenant can have without an offline probe'
850
+ - name: Bruce Power
851
+ platform: workday
852
+ slug: brucepower
853
+ source_of_record: discover
854
+ last_verified: *id002
855
+ workday_tenant: brucepower
856
+ workday_site: BrucePower
857
+ workday_dc: wd3
858
+ notes: '2026-08-17: found by a plain-HTTP scan of the employer''s own careers page
859
+ for a known ATS hostname, no browser and one request per host.'
860
+ - name: Buckman
861
+ platform: smartrecruiters
862
+ slug: buckman
863
+ source_of_record: openjobs
864
+ last_verified: *id007
865
+ - name: Budge Studios
866
+ platform: bamboohr
867
+ slug: budge
868
+ source_of_record: openjobs
869
+ last_verified: *id012
870
+ notes: '2026-08-11: enabled on slug evidence - bamboohr publishes no board name,
871
+ but the slug folds to the caption and the board returned 4 job(s)'
872
+ - name: Build Staff
873
+ platform: smartrecruiters
874
+ slug: buildstaffinc
875
+ source_of_record: openjobs
876
+ last_verified: *id007
877
+ - name: Bungie
878
+ platform: greenhouse
879
+ slug: bungie
880
+ source_of_record: openjobs
881
+ last_verified: *id010
882
+ - name: Bybit
883
+ platform: greenhouse
884
+ slug: bybit
885
+ source_of_record: discover
886
+ last_verified: *id010
887
+ - name: Bynder
888
+ platform: ashby
889
+ slug: bynder
890
+ source_of_record: discover
891
+ last_verified: *id001
892
+ name_gate_exempt: true
893
+ notes: '2026-08-14: board token taken from this employer''s own application URL
894
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
895
+ name gate cannot confirm it and provenance is the evidence (25 job(s))'
896
+ - name: ByteDance
897
+ platform: smartrecruiters
898
+ slug: bytedance
899
+ source_of_record: openjobs
900
+ last_verified: *id007