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,549 @@
1
+ - name: Nagarro
2
+ platform: smartrecruiters
3
+ slug: nagarro1
4
+ source_of_record: openjobs
5
+ last_verified: &id001 2026-08-14
6
+ - name: Nanoleaf
7
+ platform: bamboohr
8
+ slug: nanoleaf
9
+ source_of_record: discover
10
+ last_verified: &id003 2026-08-17
11
+ notes: '2026-08-17: found by careers-page ATS scan, one plain GET. verify returned
12
+ 1 jobs and needs-a-manual-check, the expected verdict where the platform publishes
13
+ no board name; token equals the company name'
14
+ - name: Nasdaq
15
+ platform: workday
16
+ slug: nasdaq
17
+ source_of_record: openjobs
18
+ last_verified: 2026-08-03
19
+ workday_tenant: nasdaq
20
+ workday_site: Global_External_Site
21
+ workday_dc: wd1
22
+ workday_facet: workerSubType:88704065592e0140cc56a1a7463955ae
23
+ notes: '2026-08-13: verified public fixed-term facet; it avoids walking Nasdaq''s
24
+ 182-role general board while the title classifier retains only CS internships
25
+ and co-ops'
26
+ - name: National Bank of Canada
27
+ platform: custom_json
28
+ slug: bnc
29
+ source_of_record: discover
30
+ last_verified: 2026-08-18
31
+ notes: Every Avature JSON shape returns markup, so the server-rendered results table
32
+ is read instead.
33
+ custom:
34
+ url: https://emplois.bnc.ca/en_CA/careers/searchjobs/
35
+ format: html
36
+ row_selector: table tr:has(a[data-map='job-detail-link'])
37
+ fields:
38
+ title: a[data-map='job-detail-link']
39
+ id: a[data-map='job-detail-link']::attr(href)
40
+ url: a[data-map='job-detail-link']::attr(href)
41
+ location: td:nth-of-type(1)
42
+ page_param: jobOffset
43
+ page_size: 20
44
+ page_step: 20
45
+ max_pages: 25
46
+ - name: National Laboratory of the Rockies
47
+ platform: workday
48
+ slug: nrel
49
+ source_of_record: manual
50
+ last_verified: 2026-08-13
51
+ workday_tenant: nrel
52
+ workday_site: NLR
53
+ workday_dc: wd5
54
+ workday_facet: workerSubType:41059f5be019104091d88850a3f54318
55
+ notes: '2026-08-13: official Workday endpoint verified; its Intern fixed-term facet
56
+ has 21 listings.'
57
+ - name: NationGraph
58
+ platform: ashby
59
+ slug: nationgraph
60
+ source_of_record: discover
61
+ last_verified: &id007 2026-08-14
62
+ name_gate_exempt: true
63
+ notes: '2026-08-14: board token taken from this employer''s own application URL
64
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
65
+ name gate cannot confirm it and provenance is the evidence (2 job(s))'
66
+ - name: Nationwide Children's Hospital
67
+ platform: workday
68
+ slug: nationwidechildrens
69
+ source_of_record: discover
70
+ last_verified: 2026-08-16
71
+ workday_tenant: nationwidechildrens
72
+ workday_site: NCHCareers
73
+ workday_dc: wd5
74
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
75
+ verified by a scratch sync (120 posting(s), 0 kept)'
76
+ - name: Navan
77
+ platform: greenhouse
78
+ slug: tripactions
79
+ source_of_record: discover
80
+ last_verified: 2026-08-17
81
+ name_gate_exempt: true
82
+ notes: '2026-08-17: Navan still posts under its former name TripActions, so the
83
+ board token is tripactions.'
84
+ - name: Navy Federal
85
+ platform: oracle_cloud
86
+ slug: nfcu
87
+ source_of_record: manual
88
+ last_verified: 2026-08-13
89
+ oracle_host: fa-etbx-saasfaprod1.fa.ocs.oraclecloud.com
90
+ oracle_site: nfcu
91
+ notes: '2026-08-13: official Oracle candidate JSON verified; it currently includes
92
+ a year-round data-engineering internship.'
93
+ - name: NBCUniversal
94
+ platform: smartrecruiters
95
+ slug: nbcuniversal3
96
+ source_of_record: discover
97
+ last_verified: *id001
98
+ - name: Nelnet
99
+ platform: workday
100
+ slug: nelnet
101
+ source_of_record: discover
102
+ last_verified: &id002 2026-08-14
103
+ workday_tenant: nelnet
104
+ workday_site: MyNelnet
105
+ workday_dc: wd1
106
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
107
+ is the only verification a Workday tenant can have without an offline probe'
108
+ - name: Neo Financial
109
+ platform: ashby
110
+ slug: neofinancial
111
+ source_of_record: discover
112
+ last_verified: 2026-08-20
113
+ name_gate_exempt: true
114
+ notes: Board token from the employer's own careers link; ashby publishes no board
115
+ name, so provenance is the evidence (95 job(s)).
116
+ - name: Neo4j
117
+ platform: greenhouse
118
+ slug: neo4j
119
+ source_of_record: discover
120
+ last_verified: 2026-08-17
121
+ notes: '2026-08-17: found by browser-assisted discovery, then verified by a live
122
+ probe that matched the company name on the returned board'
123
+ - name: NeoCognition
124
+ platform: ashby
125
+ slug: neocognition
126
+ source_of_record: discover
127
+ last_verified: &id006 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 (5 job(s))'
131
+ - name: ness digital
132
+ platform: jobvite
133
+ slug: ness
134
+ source_of_record: openjobs
135
+ last_verified: 2026-08-21
136
+ notes: '2026-08-21: the Jobvite API answers 401, but jobs.jobvite.com/ness/jobs
137
+ server-renders all 34 postings, which is the contract this row polls'
138
+ - name: nesto
139
+ platform: custom_json
140
+ slug: nesto
141
+ source_of_record: discover
142
+ last_verified: 2026-08-20
143
+ notes: '2026-08-20: Rippling ATS; the public board API is stable, unlike the _next/data
144
+ route whose build id changes on every deploy.'
145
+ custom:
146
+ url: https://api.rippling.com/platform/api/ats/v1/board/nesto/jobs
147
+ fields:
148
+ title: name
149
+ id: uuid
150
+ url: url
151
+ location: workLocation.label
152
+ department: department.label
153
+ - name: NetApp
154
+ platform: custom_json
155
+ slug: netapp
156
+ source_of_record: discover
157
+ last_verified: 2026-08-20
158
+ notes: '2026-08-20: Eightfold tenant whose pcsx search is disabled, so the older
159
+ apply/v2 listing is the contract; it carries no intern facet, so it is fetched
160
+ unfiltered.'
161
+ custom:
162
+ url: https://netapp.eightfold.ai/api/apply/v2/jobs?domain=netapp.com&num=10
163
+ jobs_path: positions
164
+ fields:
165
+ title: name
166
+ id: id
167
+ url: canonicalPositionUrl
168
+ location: location
169
+ department: department
170
+ description: job_description
171
+ page_param: start
172
+ page_size: 10
173
+ max_pages: 30
174
+ - name: NetEase Games
175
+ platform: greenhouse
176
+ slug: neteasegames
177
+ source_of_record: openjobs
178
+ last_verified: 2026-08-11
179
+ - name: Netflix
180
+ platform: workday
181
+ slug: netflix
182
+ source_of_record: discover
183
+ last_verified: *id002
184
+ workday_tenant: netflix
185
+ workday_site: netflix
186
+ workday_dc: wd108
187
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
188
+ is the only verification a Workday tenant can have without an offline probe'
189
+ - name: Netic
190
+ platform: ashby
191
+ slug: netic
192
+ source_of_record: manual
193
+ last_verified: 2026-08-13
194
+ notes: '2026-08-13: official internship application verifies the public Ashby board'
195
+ - name: Netlify
196
+ platform: greenhouse
197
+ slug: netlify
198
+ source_of_record: discover
199
+ last_verified: *id003
200
+ notes: '2026-08-17: found by a plain-HTTP scan of the employer''s own careers page
201
+ for a known ATS hostname, no browser and one request per host.'
202
+ - name: Netomi
203
+ platform: lever
204
+ slug: netomi
205
+ source_of_record: openjobs
206
+ last_verified: &id005 2026-08-04
207
+ - name: Netskope
208
+ platform: smartrecruiters
209
+ slug: netskope
210
+ source_of_record: openjobs
211
+ last_verified: 2026-08-16
212
+ notes: '2026-08-16: ats_link recorded in the OpenJobs dataset, then verified by
213
+ a live probe that matched the company name on the returned board'
214
+ - name: Netsmart
215
+ platform: workday
216
+ slug: ntst
217
+ source_of_record: discover
218
+ last_verified: *id002
219
+ workday_tenant: ntst
220
+ workday_site: careers
221
+ workday_dc: wd1
222
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
223
+ is the only verification a Workday tenant can have without an offline probe'
224
+ - name: Neura Robotics
225
+ platform: ashby
226
+ slug: neura-robotics-gmbh
227
+ source_of_record: manual
228
+ last_verified: 2026-08-13
229
+ notes: '2026-08-13: official active AI infrastructure and robotics internship application
230
+ verifies the public Ashby board'
231
+ - name: Neuralink
232
+ platform: greenhouse
233
+ slug: neuralink
234
+ source_of_record: discover
235
+ last_verified: &id004 2026-08-14
236
+ - name: New Balance
237
+ platform: workday
238
+ slug: newbalance
239
+ source_of_record: discover
240
+ last_verified: *id002
241
+ workday_tenant: newbalance
242
+ workday_site: careers
243
+ workday_dc: wd1
244
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
245
+ is the only verification a Workday tenant can have without an offline probe'
246
+ - name: New Relic
247
+ platform: smartrecruiters
248
+ slug: newrelic
249
+ source_of_record: openjobs
250
+ last_verified: 2026-08-16
251
+ notes: '2026-08-16: ats_link recorded in the OpenJobs dataset, then verified by
252
+ a live probe that matched the company name on the returned board'
253
+ - name: New York Post Holdings
254
+ platform: workday
255
+ slug: dowjones
256
+ source_of_record: discover
257
+ last_verified: 2026-08-16
258
+ workday_tenant: dowjones
259
+ workday_site: New_York_Post_Careers
260
+ workday_dc: wd1
261
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
262
+ verified by a scratch sync (63 posting(s), 0 kept)'
263
+ - name: Newrich Network
264
+ platform: workable
265
+ slug: newrich-network
266
+ source_of_record: openjobs
267
+ last_verified: 2026-08-17
268
+ notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
269
+ paused_until resumed it.'
270
+ - name: NewsBreak
271
+ platform: greenhouse
272
+ slug: newsbreak
273
+ source_of_record: discover
274
+ last_verified: *id004
275
+ - name: Nexstar
276
+ platform: workday
277
+ slug: nexstar
278
+ source_of_record: discover
279
+ last_verified: 2026-08-16
280
+ workday_tenant: nexstar
281
+ workday_site: nexstar
282
+ workday_dc: wd5
283
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
284
+ verified by a scratch sync — the board answered with 84 posting(s), 1 kept after
285
+ the CS-internship screens'
286
+ - name: Next Level Business Services
287
+ platform: smartrecruiters
288
+ slug: nextlevelbusinessservicesinc2
289
+ source_of_record: openjobs
290
+ last_verified: *id001
291
+ - name: Nextiva
292
+ platform: greenhouse
293
+ slug: nextiva
294
+ source_of_record: discover
295
+ last_verified: *id004
296
+ - name: Nidec
297
+ platform: workday
298
+ slug: nidec
299
+ source_of_record: manual
300
+ last_verified: 2026-08-13
301
+ workday_tenant: nidec
302
+ workday_site: nidec
303
+ workday_dc: wd1
304
+ workday_facet: workerSubType:741416030163102b023a6d8feab221d6,741416030163102b023a6798c61821d4
305
+ notes: '2026-08-13: official Workday endpoint verified; its Co-Op and Intern fixed-term
306
+ facets total eleven listings.'
307
+ - name: NielsenIQ
308
+ platform: smartrecruiters
309
+ slug: nielseniq
310
+ source_of_record: openjobs
311
+ last_verified: *id001
312
+ - name: Nightwing Intelligence Solutions
313
+ platform: workday
314
+ slug: nwis
315
+ source_of_record: discover
316
+ last_verified: *id002
317
+ workday_tenant: nwis
318
+ workday_site: NW
319
+ workday_dc: wd12
320
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
321
+ is the only verification a Workday tenant can have without an offline probe'
322
+ - name: Nintendo
323
+ platform: greenhouse
324
+ slug: nintendo
325
+ source_of_record: discover
326
+ last_verified: 2026-08-21
327
+ - name: Nio
328
+ platform: workday
329
+ slug: nio
330
+ source_of_record: manual
331
+ last_verified: 2026-08-13
332
+ workday_tenant: nio
333
+ workday_site: NIO_Careers
334
+ workday_dc: wd3
335
+ workday_facet: workerSubType:0e6a0783031c1002034cb2de456e0000,7ac7128699f61006f6e20a25c28693c8
336
+ notes: '2026-08-13: official Workday endpoint verified; its intern facets total
337
+ five listings.'
338
+ - name: Nissan Global
339
+ platform: workday
340
+ slug: alliance
341
+ source_of_record: discover
342
+ last_verified: *id002
343
+ workday_tenant: alliance
344
+ workday_site: nissanjobs
345
+ workday_dc: wd3
346
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
347
+ is the only verification a Workday tenant can have without an offline probe'
348
+ - name: Nium
349
+ platform: lever
350
+ slug: nium
351
+ source_of_record: openjobs
352
+ last_verified: *id005
353
+ - name: Niural
354
+ platform: ashby
355
+ slug: niural
356
+ source_of_record: discover
357
+ last_verified: *id006
358
+ name_gate_exempt: true
359
+ notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
360
+ ashby publishes no board name, so provenance is the evidence (27 job(s))'
361
+ - name: Nokia
362
+ platform: oracle_cloud
363
+ slug: fa-evmr-saasfaprod1
364
+ source_of_record: discover
365
+ last_verified: 2026-08-14
366
+ oracle_host: fa-evmr-saasfaprod1.fa.ocs.oraclecloud.com
367
+ oracle_site: CX_1
368
+ notes: '2026-08-14: enabled to be verified by a real sync — the Oracle Cloud candidate
369
+ endpoint has no offline probe, and this host and site come from the employer''s
370
+ own application URL'
371
+ - name: Northeastern University
372
+ platform: workday
373
+ slug: northeastern
374
+ source_of_record: discover
375
+ last_verified: 2026-08-16
376
+ workday_tenant: northeastern
377
+ workday_site: careers
378
+ workday_dc: wd1
379
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
380
+ verified by a scratch sync (1 posting(s), 0 kept)'
381
+ - name: Northern Trust
382
+ platform: workday
383
+ slug: ntrs
384
+ source_of_record: discover
385
+ last_verified: 2026-08-20
386
+ workday_tenant: ntrs
387
+ workday_site: northerntrust
388
+ workday_dc: wd1
389
+ notes: '2026-08-20: coordinates read from the owner-supplied careers URL; 637 postings.'
390
+ - name: Northrop Grumman
391
+ platform: workday
392
+ slug: ngc
393
+ source_of_record: manual
394
+ last_verified: 2026-08-13
395
+ workday_tenant: ngc
396
+ workday_site: Northrop_Grumman_External_Site
397
+ workday_dc: wd1
398
+ workday_facet: workerSubType:a111b0a898f10129e4db58f2e700d97a
399
+ notes: '2026-08-13: official Workday endpoint verified; its global intern fixed-term
400
+ facet has three listings.'
401
+ - name: Northwestern Mutual
402
+ platform: smartrecruiters
403
+ slug: northwesternmutual
404
+ source_of_record: discover
405
+ last_verified: *id001
406
+ - name: Notarius
407
+ platform: bamboohr
408
+ slug: portagecybertech
409
+ source_of_record: discover
410
+ last_verified: 2026-08-18
411
+ name_gate_exempt: true
412
+ notes: portagecybertech is the parent's BambooHR board, so the name gate is exempted
413
+ with that reason.
414
+ - name: Notion
415
+ platform: ashby
416
+ slug: notion
417
+ source_of_record: discover
418
+ last_verified: 2026-08-18
419
+ name_gate_exempt: true
420
+ notes: '2026-08-18: the Greenhouse park was right about Greenhouse and wrong about
421
+ the employer - notion.com/careers links jobs.ashbyhq.com, and the Ashby posting
422
+ API returns 129 postings.'
423
+ - name: Novanta
424
+ platform: workday
425
+ slug: novanta
426
+ source_of_record: discover
427
+ last_verified: *id002
428
+ workday_tenant: novanta
429
+ workday_site: Novanta-Careers
430
+ workday_dc: wd5
431
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
432
+ is the only verification a Workday tenant can have without an offline probe'
433
+ - name: Novogradac
434
+ platform: workday
435
+ slug: novoco
436
+ source_of_record: discover
437
+ last_verified: 2026-08-16
438
+ workday_tenant: novoco
439
+ workday_site: Novogradac
440
+ workday_dc: wd108
441
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
442
+ verified by a scratch sync (25 posting(s), 0 kept)'
443
+ - name: NTT DATA AIVista
444
+ platform: ashby
445
+ slug: ntt-data-aivista
446
+ source_of_record: discover
447
+ last_verified: *id007
448
+ name_gate_exempt: true
449
+ notes: '2026-08-14: board token taken from this employer''s own application URL
450
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
451
+ name gate cannot confirm it and provenance is the evidence (8 job(s))'
452
+ - name: nubank
453
+ platform: ashby
454
+ slug: nubank
455
+ source_of_record: discover
456
+ last_verified: 2026-08-18
457
+ name_gate_exempt: true
458
+ notes: '2026-08-18: re-probed while working the owner batch. Greenhouse nubank answers
459
+ 200 with total 0 - a live-looking token with no board - while the Ashby posting
460
+ API returns 112 postings (Miami, Ciudad de Mexico), consistent with Nubank.'
461
+ - name: Nuclear Promise X
462
+ platform: ashby
463
+ slug: npx
464
+ source_of_record: discover
465
+ last_verified: *id007
466
+ name_gate_exempt: true
467
+ notes: '2026-08-14: board token taken from this employer''s own application URL
468
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
469
+ name gate cannot confirm it and provenance is the evidence (14 job(s))'
470
+ - name: Nuro
471
+ platform: greenhouse
472
+ slug: nuro
473
+ source_of_record: discover
474
+ last_verified: 2026-08-20
475
+ notes: '2026-08-20: owner-supplied careers URL; the greenhouse board names itself
476
+ Nuro.'
477
+ - name: Nutanix
478
+ platform: custom_json
479
+ slug: nutanix
480
+ source_of_record: discover
481
+ last_verified: 2026-08-20
482
+ notes: '2026-08-20: its Google-jobs feed wraps rows in <job> rather than <item>,
483
+ which item_tag now reads; city is mapped alone because the feed splits city, state
484
+ and country.'
485
+ custom:
486
+ url: https://careers.nutanix.com/en/jobs/xml/
487
+ format: rss
488
+ item_tag: job
489
+ fields:
490
+ title: title
491
+ id: apijobid
492
+ url: url
493
+ location: city
494
+ description: description
495
+ category: category
496
+ employment_type: jobtype
497
+ department: department
498
+ - name: Nuvei
499
+ platform: workable
500
+ slug: nuvei
501
+ source_of_record: discover
502
+ last_verified: 2026-08-20
503
+ notes: '2026-08-20: careers-page ATS scan found the Workable embed; the widget account
504
+ names itself Nuvei.'
505
+ - name: NVIDIA
506
+ platform: workday
507
+ slug: nvidia
508
+ source_of_record: openjobs
509
+ last_verified: 2026-08-20
510
+ recheck_after: 2026-10-01
511
+ workday_tenant: nvidia
512
+ workday_site: NVIDIAExternalCareerSite
513
+ workday_dc: wd5
514
+ notes: '2026-08-20: reopened — the old note recorded a SlugRejectedError, not a
515
+ Workday refusal; the CXS endpoint answers 200 with 2,000 postings on these coordinates.'
516
+ - name: NVIDIA (Eightfold)
517
+ platform: custom_json
518
+ slug: nvidia-eightfold
519
+ source_of_record: discover
520
+ last_verified: 2026-08-18
521
+ notes: Eightfold tenant whose intern filter is honoured, 9 hits against 2,628.
522
+ custom:
523
+ url: https://jobs.nvidia.com/api/pcsx/search?domain=nvidia.com&query=&start=0&num=10&filter_job_type=intern%20(fixed%20term)
524
+ jobs_path: data.positions
525
+ fields:
526
+ title: name
527
+ id: id
528
+ location: standardizedLocations
529
+ department: department
530
+ url_template: https://jobs.nvidia.com/careers/job/{id}
531
+ page_param: start
532
+ page_size: 10
533
+ max_pages: 5
534
+ - name: Nvizzio Creations
535
+ platform: smartrecruiters
536
+ slug: nvizziocreations
537
+ source_of_record: openjobs
538
+ last_verified: *id001
539
+ - name: NXP
540
+ platform: workday
541
+ slug: nxp
542
+ source_of_record: openjobs
543
+ last_verified: *id002
544
+ recheck_after: 2026-10-01
545
+ workday_tenant: nxp
546
+ workday_site: careers
547
+ workday_dc: wd3
548
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
549
+ is the only verification a Workday tenant can have without an offline probe'