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,503 @@
1
+ - name: iA Financial Group
2
+ platform: workday
3
+ slug: ia
4
+ source_of_record: discover
5
+ last_verified: &id007 2026-08-18
6
+ workday_tenant: ia
7
+ workday_site: Professional
8
+ workday_dc: wd3
9
+ notes: '2026-08-18: found by a plain-HTTP scan of the employer''s own careers page
10
+ for a known ATS hostname, part of the Montreal/Quebec sweep.'
11
+ - name: IBKR External
12
+ platform: greenhouse
13
+ slug: ibkrexternal
14
+ source_of_record: openjobs
15
+ enabled: false
16
+ notes: '2026-08-08: probed — board does not respond; re-resolve with discover --url
17
+ Re-probed 2026-08-14 and still dead.'
18
+ - name: IBM
19
+ platform: custom_json
20
+ slug: ibm
21
+ source_of_record: discover
22
+ last_verified: 2026-08-20
23
+ notes: '2026-08-20: owner-captured search request; field_keyword_18 is IBM''s own
24
+ Internship facet and the aggregations were dropped because they only feed the
25
+ facet sidebar.'
26
+ custom:
27
+ url: https://www-api.ibm.com/search/api/v2
28
+ method: POST
29
+ body:
30
+ appId: careers
31
+ scopes:
32
+ - careers2
33
+ query:
34
+ bool:
35
+ must: []
36
+ post_filter:
37
+ term:
38
+ field_keyword_18: Internship
39
+ size: 30
40
+ sort:
41
+ - _score: desc
42
+ - pageviews: desc
43
+ lang: zz
44
+ localeSelector: {}
45
+ sm:
46
+ query: ''
47
+ lang: zz
48
+ _source:
49
+ - _id
50
+ - title
51
+ - url
52
+ - description
53
+ - language
54
+ - field_keyword_05
55
+ - field_keyword_08
56
+ - field_keyword_18
57
+ - field_keyword_19
58
+ headers:
59
+ Origin: https://www.ibm.com
60
+ Referer: https://www.ibm.com/
61
+ jobs_path: hits.hits
62
+ fields:
63
+ title: _source.title
64
+ id: _id
65
+ url: _source.url
66
+ description: _source.description
67
+ location: _source.field_keyword_19
68
+ category: _source.field_keyword_08
69
+ employment_type: _source.field_keyword_18
70
+ page_param: from
71
+ page_size: 30
72
+ page_step: 30
73
+ max_pages: 12
74
+ - name: Icon Creative
75
+ platform: bamboohr
76
+ slug: iconcreative
77
+ source_of_record: openjobs
78
+ last_verified: &id001 2026-08-11
79
+ notes: '2026-08-11: enabled on slug evidence - bamboohr publishes no board name,
80
+ but the slug folds to the caption and the board returned 25 job(s)'
81
+ - name: ideogram
82
+ platform: ashby
83
+ slug: ideogram
84
+ source_of_record: openjobs
85
+ last_verified: *id001
86
+ notes: '2026-08-11: enabled on slug evidence - ashby publishes no board name, but
87
+ the slug folds to the caption and the board returned 6 job(s)'
88
+ - name: IDEXX
89
+ platform: workday
90
+ slug: idexx
91
+ source_of_record: discover
92
+ workday_tenant: idexx
93
+ workday_site: IDEXX
94
+ workday_dc: wd1
95
+ enabled: false
96
+ notes: '2026-08-20: re-checked tenant-wide; the CXS jobs endpoint still answers
97
+ 422 for this site, so the closed-contract verdict stands on a fresh measurement.'
98
+ - name: IDEXX (Phenom)
99
+ platform: custom_json
100
+ slug: idexx-phenom
101
+ source_of_record: discover
102
+ last_verified: 2026-08-18
103
+ notes: '2026-08-18: supplied by the owner. The Workday row for this employer is
104
+ parked; the live board is Phenom.'
105
+ custom:
106
+ url: https://careers.idexx.com/widgets
107
+ method: POST
108
+ body:
109
+ lang: en_us
110
+ deviceType: desktop
111
+ country: us
112
+ pageName: search-results
113
+ ddoKey: refineSearch
114
+ from: 0
115
+ size: 10
116
+ jobs: true
117
+ counts: true
118
+ all_fields:
119
+ - category
120
+ - country
121
+ - type
122
+ keywords: intern
123
+ siteType: external
124
+ clearAll: false
125
+ selected_fields: {}
126
+ locationData: {}
127
+ sortBy: ''
128
+ subsearch: ''
129
+ jobs_path: refineSearch.data.jobs
130
+ fields:
131
+ title: title
132
+ id: jobSeqNo
133
+ location: location
134
+ url: applyUrl
135
+ description: descriptionTeaser
136
+ category: category
137
+ department: department
138
+ page_param: from
139
+ page_size: 10
140
+ max_pages: 4
141
+ - name: iFLIP4
142
+ platform: smartrecruiters
143
+ slug: iflip4
144
+ source_of_record: discover
145
+ last_verified: 2026-08-18
146
+ notes: '2026-08-18: seen in feed postings but absent from the registry; discover
147
+ matched smartrecruiters/iflip4 with 29 job(s) and the board named itself, so it
148
+ is polled directly instead of secondhand'
149
+ - name: IGG
150
+ platform: bamboohr
151
+ slug: igg
152
+ source_of_record: openjobs
153
+ last_verified: *id001
154
+ notes: '2026-08-11: enabled on slug evidence - bamboohr publishes no board name,
155
+ but the slug folds to the caption and the board returned 6 job(s)'
156
+ - name: iHeartMedia
157
+ platform: workday
158
+ slug: iheartmedia
159
+ source_of_record: discover
160
+ last_verified: 2026-08-16
161
+ workday_tenant: iheartmedia
162
+ workday_site: External_iHM
163
+ workday_dc: wd5
164
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
165
+ verified by a scratch sync (5 posting(s), 0 kept)'
166
+ - name: Illumina
167
+ platform: workday
168
+ slug: illumina
169
+ source_of_record: openjobs
170
+ last_verified: &id010 2026-08-14
171
+ recheck_after: &id006 2026-10-01
172
+ workday_tenant: illumina
173
+ workday_site: illumina-careers
174
+ workday_dc: wd1
175
+ notes: '2026-08-14: verified by a real sync — this board returned postings'
176
+ - name: Image Engine
177
+ platform: bamboohr
178
+ slug: imageengine
179
+ source_of_record: openjobs
180
+ last_verified: *id001
181
+ notes: '2026-08-11: enabled on slug evidence - bamboohr publishes no board name,
182
+ but the slug folds to the caption and the board returned 17 job(s)'
183
+ - name: IMC
184
+ platform: greenhouse
185
+ slug: imc
186
+ source_of_record: discover
187
+ last_verified: &id002 2026-08-14
188
+ - name: Inbulks
189
+ platform: smartrecruiters
190
+ slug: inbulkscorp
191
+ source_of_record: discover
192
+ last_verified: &id003 2026-08-14
193
+ - name: Incident IQ
194
+ platform: greenhouse
195
+ slug: incidentiq
196
+ source_of_record: discover
197
+ last_verified: *id002
198
+ - name: Indigo Books
199
+ platform: smartrecruiters
200
+ slug: indigobooksmusic
201
+ source_of_record: discover
202
+ last_verified: &id004 2026-08-17
203
+ notes: '2026-08-17: found by a plain-HTTP scan of the employer''s own careers page
204
+ for a known ATS hostname, no browser and one request per host.'
205
+ - name: Infineon
206
+ platform: custom_json
207
+ slug: infineon
208
+ source_of_record: discover
209
+ last_verified: 2026-08-17
210
+ notes: Eightfold tenant; url_template added after 6 kept postings were found pointing
211
+ at the listing API instead of the job page.
212
+ custom:
213
+ url: https://jobs.infineon.com/api/pcsx/search?domain=infineon.com&query=&location=&start=0&
214
+ jobs_path: data.positions
215
+ fields:
216
+ title: name
217
+ id: id
218
+ location: locations
219
+ category: department
220
+ url_template: https://jobs.infineon.com/careers/job/{id}
221
+ page_param: start
222
+ page_size: 10
223
+ max_pages: 20
224
+ - name: InfiniteQuant
225
+ platform: smartrecruiters
226
+ slug: infinitequant
227
+ source_of_record: discover
228
+ last_verified: *id003
229
+ - name: InfluxData
230
+ platform: ashby
231
+ slug: influxdata
232
+ source_of_record: discover
233
+ last_verified: *id004
234
+ notes: '2026-08-17: found by careers-page ATS scan, one plain GET. verify returned
235
+ 4 jobs and needs-a-manual-check, the expected verdict where the platform publishes
236
+ no board name; token equals the company name'
237
+ - name: Infojini
238
+ platform: smartrecruiters
239
+ slug: infojiniinc1
240
+ source_of_record: discover
241
+ last_verified: &id005 2026-08-16
242
+ enabled: false
243
+ notes: '2026-08-16: IT staffing agency: posts client roles rather than its own,
244
+ so its rows are third-hand data.'
245
+ - name: ING
246
+ platform: workday
247
+ slug: ing
248
+ source_of_record: discover
249
+ last_verified: &id008 2026-08-14
250
+ workday_tenant: ing
251
+ workday_site: icsgblcor
252
+ workday_dc: wd3
253
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
254
+ is the only verification a Workday tenant can have without an offline probe'
255
+ - name: Inherent
256
+ platform: ashby
257
+ slug: inherent
258
+ source_of_record: discover
259
+ last_verified: *id005
260
+ name_gate_exempt: true
261
+ notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
262
+ ashby publishes no board name, so provenance is the evidence (6 job(s))'
263
+ - name: Inizio
264
+ platform: greenhouse
265
+ slug: inizio
266
+ source_of_record: discover
267
+ last_verified: *id002
268
+ - name: Insitro
269
+ platform: ashby
270
+ slug: insitro
271
+ source_of_record: discover
272
+ last_verified: 2026-08-17
273
+ name_gate_exempt: true
274
+ notes: '2026-08-17: found by browser-assisted discovery from the employer''s own
275
+ careers page and the board answered with postings, but ashby publishes no board
276
+ name, so provenance is the evidence rather than a name match'
277
+ - name: Instacart
278
+ platform: greenhouse
279
+ slug: instacart
280
+ source_of_record: openjobs
281
+ last_verified: *id002
282
+ - name: InstaLILY
283
+ platform: greenhouse
284
+ slug: instalilyai
285
+ source_of_record: discover
286
+ last_verified: *id002
287
+ - name: Instead
288
+ platform: greenhouse
289
+ slug: instead
290
+ source_of_record: discover
291
+ last_verified: *id002
292
+ - name: Institute of Foundation Models
293
+ platform: lever
294
+ slug: ifm-us
295
+ source_of_record: discover
296
+ last_verified: &id009 2026-08-14
297
+ name_gate_exempt: true
298
+ notes: '2026-08-14: board token taken from this employer''s own application URL
299
+ in a feed posting, not from slug guessing; lever publishes no board name, so the
300
+ name gate cannot confirm it and provenance is the evidence (44 job(s))'
301
+ - name: Intact
302
+ platform: workday
303
+ slug: intactfc
304
+ source_of_record: discover
305
+ last_verified: 2026-08-16
306
+ recheck_after: *id006
307
+ workday_tenant: intactfc
308
+ workday_site: intactfc
309
+ workday_dc: wd3
310
+ notes: '2026-08-16: un-parked. The 2026-08-11 reason was a budget argument against
311
+ a 120-request Workday ceiling that is now 732.'
312
+ - name: Integra FEC
313
+ platform: greenhouse
314
+ slug: integra
315
+ source_of_record: discover
316
+ last_verified: *id002
317
+ - name: Intel
318
+ platform: workday
319
+ slug: intel
320
+ source_of_record: openjobs
321
+ last_verified: 2026-08-03
322
+ workday_tenant: intel
323
+ workday_site: External
324
+ workday_dc: wd1
325
+ - name: Intelcom
326
+ platform: workday
327
+ slug: intelcomgroup
328
+ source_of_record: discover
329
+ last_verified: *id007
330
+ workday_tenant: intelcomgroup
331
+ workday_site: Intelcom
332
+ workday_dc: wd3
333
+ notes: '2026-08-18: found by a plain-HTTP scan of the employer''s own careers page
334
+ for a known ATS hostname, part of the Montreal/Quebec sweep.'
335
+ - name: Interac
336
+ platform: workday
337
+ slug: interac
338
+ source_of_record: discover
339
+ last_verified: 2026-08-20
340
+ workday_tenant: interac
341
+ workday_site: Interac
342
+ workday_dc: wd3
343
+ notes: Coordinates from the employer's own careers URL; the board answered with
344
+ 36 postings.
345
+ - name: Interactive Brokers
346
+ platform: custom_json
347
+ slug: dayforce-ibgllc
348
+ source_of_record: discover
349
+ last_verified: 2026-08-18
350
+ rate_profile: conservative
351
+ notes: 'Dayforce, reached by sending the /api/auth/csrf token as x-csrf-token; no
352
+ stable per-posting URL exists so apply_url is the board page. 2026-08-21: two
353
+ boards on this host answered 403 in one run, so the row is pinned conservative.'
354
+ custom:
355
+ url: https://jobs.dayforcehcm.com/api/geo/ibgllc/jobposting/search
356
+ method: POST
357
+ body:
358
+ clientNamespace: ibgllc
359
+ jobBoardCode: CANDIDATEPORTAL
360
+ cultureCode: en-CA
361
+ distanceUnit: 1
362
+ handshake_url: https://jobs.dayforcehcm.com/api/auth/csrf
363
+ token_pattern: '"csrfToken":"([a-f0-9]+)"'
364
+ token_header: x-csrf-token
365
+ jobs_path: jobPostings
366
+ fields:
367
+ title: jobTitle
368
+ id: jobPostingId
369
+ description: jobDescription
370
+ location: postingLocations.0.formattedAddress
371
+ url_template: https://jobs.dayforcehcm.com/en-CA/ibgllc/CANDIDATEPORTAL/jobs/{id}
372
+ page_param: paginationStart
373
+ page_size: 25
374
+ page_step: 25
375
+ max_pages: 20
376
+ - name: Interco
377
+ platform: smartrecruiters
378
+ slug: interco
379
+ source_of_record: discover
380
+ last_verified: *id003
381
+ - name: Interdigital
382
+ platform: workday
383
+ slug: interdigital
384
+ source_of_record: discover
385
+ last_verified: *id008
386
+ workday_tenant: interdigital
387
+ workday_site: InterDigital_Intern
388
+ workday_dc: wd5
389
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
390
+ is the only verification a Workday tenant can have without an offline probe'
391
+ - name: International Rescue Committee (IRC)
392
+ platform: workday
393
+ slug: theirc
394
+ source_of_record: discover
395
+ last_verified: *id008
396
+ workday_tenant: theirc
397
+ workday_site: External_Careers
398
+ workday_dc: wd1
399
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
400
+ is the only verification a Workday tenant can have without an offline probe'
401
+ - name: Internship
402
+ platform: ashby
403
+ slug: interplay
404
+ source_of_record: discover
405
+ last_verified: *id009
406
+ name_gate_exempt: true
407
+ notes: '2026-08-14: board token taken from this employer''s own application URL
408
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
409
+ name gate cannot confirm it and provenance is the evidence (13 job(s))'
410
+ - name: Intropic
411
+ platform: lever
412
+ slug: intropic
413
+ source_of_record: discover
414
+ last_verified: *id005
415
+ name_gate_exempt: true
416
+ notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
417
+ lever publishes no board name, so provenance is the evidence (11 job(s))'
418
+ - name: Intuit
419
+ platform: custom_json
420
+ slug: intuit-avature
421
+ source_of_record: discover
422
+ last_verified: 2026-08-21
423
+ notes: '2026-08-21: supplied Avature facets returned two current co-op postings
424
+ through the server-rendered listing.'
425
+ custom:
426
+ url: https://jobs.intuit.com/search-jobs?acm=9205024,9205760,9205744&alrpm=ALL&ascf=%5B%7B%22key%22%3A%22ALL%22%2C%22value%22%3A%22%22%7D%5D
427
+ format: html
428
+ row_selector: li[data-intuit-jobid]
429
+ fields:
430
+ title: h2
431
+ id: ::attr(data-intuit-jobid)
432
+ url: a.sr-item::attr(href)
433
+ location: span.job-location
434
+ category: ::attr(data-category)
435
+ page_param: p
436
+ page_size: 15
437
+ page_start: 1
438
+ page_step: 1
439
+ max_pages: 2
440
+ - name: Intuitive Surgical
441
+ platform: smartrecruiters
442
+ slug: intuitive
443
+ source_of_record: discover
444
+ last_verified: *id003
445
+ - name: Investissement Québec
446
+ platform: workday
447
+ slug: investquebec
448
+ source_of_record: discover
449
+ last_verified: 2026-08-20
450
+ workday_tenant: investquebec
451
+ workday_site: ext
452
+ workday_dc: wd10
453
+ notes: Coordinates from the employer's own careers URL; 36 postings, entirely French
454
+ and Quebec-based.
455
+ - name: Inworld AI
456
+ platform: greenhouse
457
+ slug: inworldai
458
+ source_of_record: openjobs
459
+ enabled: false
460
+ notes: '2026-08-08: probed — board does not respond; re-resolve with discover --url
461
+ Re-probed 2026-08-14 and still dead.'
462
+ - name: Ion
463
+ platform: lever
464
+ slug: ion
465
+ source_of_record: openjobs
466
+ last_verified: 2026-08-04
467
+ - name: Iron Mountain
468
+ platform: workday
469
+ slug: ironmountain
470
+ source_of_record: openjobs
471
+ last_verified: *id010
472
+ recheck_after: *id006
473
+ workday_tenant: ironmountain
474
+ workday_site: iron-mountain-jobs
475
+ workday_dc: wd5
476
+ notes: '2026-08-14: verified by a real sync — this board returned postings'
477
+ - name: ISG
478
+ platform: jobvite
479
+ slug: isg-one
480
+ source_of_record: openjobs
481
+ enabled: false
482
+ notes: '2026-08-21: re-checked on the server-rendered board as well; the tenant
483
+ redirects to its own /careers page, so the board moved off Jobvite'
484
+ - name: ISS Stoxx
485
+ platform: workday
486
+ slug: issgovernance
487
+ source_of_record: openjobs
488
+ last_verified: *id010
489
+ recheck_after: *id006
490
+ workday_tenant: issgovernance
491
+ workday_site: ISScareers
492
+ workday_dc: wd1
493
+ notes: '2026-08-14: verified by a real sync — this board returned postings'
494
+ - name: Ivy Tech Community College
495
+ platform: workday
496
+ slug: ivytech
497
+ source_of_record: discover
498
+ last_verified: *id008
499
+ workday_tenant: ivytech
500
+ workday_site: ivy_tech_careers
501
+ workday_dc: wd1
502
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
503
+ is the only verification a Workday tenant can have without an offline probe'
@@ -0,0 +1,138 @@
1
+ - name: J.S. Held LLC
2
+ platform: smartrecruiters
3
+ slug: jsheldllc
4
+ source_of_record: openjobs
5
+ last_verified: &id001 2026-08-14
6
+ - name: Jade Global
7
+ platform: smartrecruiters
8
+ slug: jadeglobal
9
+ source_of_record: discover
10
+ last_verified: *id001
11
+ - name: Jain Global
12
+ platform: workday
13
+ slug: jainglobal
14
+ source_of_record: discover
15
+ last_verified: 2026-08-14
16
+ workday_tenant: jainglobal
17
+ workday_site: ExternalSite
18
+ workday_dc: wd5
19
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
20
+ is the only verification a Workday tenant can have without an offline probe'
21
+ - name: Jam City
22
+ platform: lever
23
+ slug: jamcity
24
+ source_of_record: openjobs
25
+ last_verified: 2026-08-04
26
+ - name: Jane Street
27
+ platform: greenhouse
28
+ slug: janestreet
29
+ source_of_record: openjobs
30
+ last_verified: &id003 2026-08-14
31
+ - name: Jefferies
32
+ platform: custom_json
33
+ slug: jefferies
34
+ source_of_record: discover
35
+ last_verified: 2026-08-20
36
+ enabled: false
37
+ notes: '2026-08-20: same oleeoProtect altcha challenge as the Evercore row; the
38
+ Bank of America tenant on the same platform does not challenge us, so this is
39
+ tenant configuration.'
40
+ custom:
41
+ url: https://jefferies.tal.net/vx/lang-en-GB/mobile-0/appcentre-ext/brand-4/candidate/jobboard/vacancy/2/adv/
42
+ fields:
43
+ title: title
44
+ id: id
45
+ - name: JetBrains
46
+ platform: greenhouse
47
+ slug: jetbrains
48
+ source_of_record: openjobs
49
+ last_verified: 2026-08-16
50
+ notes: '2026-08-16: ats_link recorded in the OpenJobs dataset, then verified by
51
+ a live probe that matched the company name on the returned board'
52
+ - name: Jobs for Humanity
53
+ platform: smartrecruiters
54
+ slug: jobsforhumanity
55
+ source_of_record: discover
56
+ last_verified: 2026-08-16
57
+ enabled: false
58
+ notes: '2026-08-16: aggregator: reposts other employers'' postings, so its rows
59
+ are third-hand data that duplicate real boards under a different company name.'
60
+ - name: John Deere
61
+ platform: custom_json
62
+ slug: john-deere
63
+ source_of_record: discover
64
+ last_verified: 2026-08-17
65
+ notes: Eightfold tenant reached through the shared /api/pcsx/search template.
66
+ custom:
67
+ url: https://careers.deere.com/api/pcsx/search?domain=johndeere.com&query=&location=&start=0&sort_by=hot&filter_seniority=0
68
+ jobs_path: data.positions
69
+ fields:
70
+ title: name
71
+ id: id
72
+ location: locations
73
+ category: department
74
+ url_template: https://careers.deere.com/careers/job/{id}
75
+ page_param: start
76
+ page_size: 10
77
+ max_pages: 20
78
+ - name: Johns Hopkins APL
79
+ platform: custom_json
80
+ slug: jhuapl
81
+ source_of_record: discover
82
+ last_verified: 2026-08-20
83
+ notes: '2026-08-20: iCIMS careers-home site, the same contract as the AMD row; 356
84
+ postings with full bodies.'
85
+ custom:
86
+ url: https://careers.jhuapl.edu/api/jobs?limit=100
87
+ jobs_path: jobs
88
+ fields:
89
+ title: data.title
90
+ id: data.slug
91
+ location: data.full_location
92
+ description: data.description
93
+ employment_type: data.employment_type
94
+ category: data.category
95
+ department: data.department
96
+ url_template: https://careers.jhuapl.edu/jobs/{id}
97
+ page_param: page
98
+ page_size: 100
99
+ page_start: 1
100
+ page_step: 1
101
+ max_pages: 8
102
+ - name: Johnson & Johnson
103
+ platform: workday
104
+ slug: jj
105
+ source_of_record: discover
106
+ last_verified: &id002 2026-08-16
107
+ workday_tenant: jj
108
+ workday_site: jj
109
+ workday_dc: wd5
110
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
111
+ verified by a scratch sync — the board answered with 100 posting(s), 5 kept after
112
+ the CS-internship screens'
113
+ - name: Johnson Controls
114
+ platform: workday
115
+ slug: jci
116
+ source_of_record: discover
117
+ last_verified: *id002
118
+ workday_tenant: jci
119
+ workday_site: jci
120
+ workday_dc: wd5
121
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
122
+ verified by a scratch sync — the board answered with 15 posting(s), 1 kept after
123
+ the CS-internship screens'
124
+ - name: JP Morgan Chase
125
+ platform: oracle_cloud
126
+ slug: jpmc
127
+ source_of_record: discover
128
+ last_verified: 2026-08-14
129
+ oracle_host: jpmc.fa.oraclecloud.com
130
+ oracle_site: CX_1001
131
+ notes: '2026-08-14: enabled to be verified by a real sync — the Oracle Cloud candidate
132
+ endpoint has no offline probe, and this host and site come from the employer''s
133
+ own application URL'
134
+ - name: Jump Trading
135
+ platform: greenhouse
136
+ slug: jumptrading
137
+ source_of_record: discover
138
+ last_verified: *id003