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,817 @@
1
+ - name: Taboola
2
+ platform: greenhouse
3
+ slug: taboola
4
+ source_of_record: discover
5
+ last_verified: &id001 2026-08-14
6
+ - name: Tacit
7
+ platform: ashby
8
+ slug: tacit
9
+ source_of_record: discover
10
+ last_verified: &id002 2026-08-14
11
+ name_gate_exempt: true
12
+ notes: '2026-08-14: board token taken from this employer''s own application URL
13
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
14
+ name gate cannot confirm it and provenance is the evidence (17 job(s))'
15
+ - name: TAG
16
+ platform: workday
17
+ slug: tag
18
+ source_of_record: openjobs
19
+ last_verified: &id005 2026-08-14
20
+ recheck_after: &id004 2026-10-01
21
+ workday_tenant: tag
22
+ workday_site: Tag_Careers
23
+ workday_dc: wd3
24
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
25
+ is the only verification a Workday tenant can have without an offline probe'
26
+ - name: Taiga Motors
27
+ platform: bamboohr
28
+ slug: taigamotors
29
+ source_of_record: discover
30
+ last_verified: 2026-08-18
31
+ notes: '2026-08-18: found by a plain-HTTP scan of the employer''s own careers page
32
+ for a known ATS hostname, part of the Montreal/Quebec sweep.'
33
+ - name: Take-Two Interactive
34
+ platform: greenhouse
35
+ slug: taketwo
36
+ source_of_record: openjobs
37
+ last_verified: *id001
38
+ - name: Taktile
39
+ platform: ashby
40
+ slug: taktile
41
+ source_of_record: discover
42
+ last_verified: *id002
43
+ name_gate_exempt: true
44
+ notes: '2026-08-14: board token taken from this employer''s own application URL
45
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
46
+ name gate cannot confirm it and provenance is the evidence (44 job(s))'
47
+ - name: Talan
48
+ platform: smartrecruiters
49
+ slug: talan
50
+ source_of_record: discover
51
+ last_verified: &id003 2026-08-16
52
+ notes: '2026-08-16: seen in feed postings but absent from the registry; discover
53
+ matched smartrecruiters/talan with 452 job(s) and the board named itself, so it
54
+ is polled directly instead of secondhand'
55
+ - name: Talent-360.me
56
+ platform: workable
57
+ slug: talent3600
58
+ source_of_record: discover
59
+ last_verified: *id003
60
+ enabled: false
61
+ notes: '2026-08-16: recruitment agency: posts client roles rather than its own,
62
+ so its rows are third-hand data.'
63
+ - name: Tanium
64
+ platform: greenhouse
65
+ slug: tanium
66
+ source_of_record: discover
67
+ last_verified: 2026-08-21
68
+ - name: tarte cosmetics
69
+ platform: workable
70
+ slug: tarte-inc
71
+ source_of_record: discover
72
+ last_verified: *id003
73
+ notes: '2026-08-16: adopted from this employer''s own apply URL, then paused to
74
+ match the rest of the workable platform, which is parked until 2026-08-18 after
75
+ two 429s in one day.'
76
+ - name: TC Energy
77
+ platform: workday
78
+ slug: tcenergy
79
+ source_of_record: discover
80
+ last_verified: &id008 2026-08-17
81
+ workday_tenant: tcenergy
82
+ workday_site: CAREER_SITE_TC
83
+ workday_dc: wd3
84
+ notes: '2026-08-17: found by a plain-HTTP scan of the employer''s own careers page
85
+ for a known ATS hostname, no browser and one request per host.'
86
+ - name: TD Bank
87
+ platform: workday
88
+ slug: td
89
+ source_of_record: discover
90
+ last_verified: 2026-08-11
91
+ recheck_after: *id004
92
+ workday_tenant: td
93
+ workday_site: TD_Bank_Careers
94
+ workday_dc: wd3
95
+ workday_facet: jobFamily:de769652963501ab29a8b80c0704c3aa,de769652963501e60b293b0d070431ab
96
+ notes: '2026-08-13: pinned to TD''s verified Campus and Interns & Associates job-family
97
+ filters; both values are retained so future student postings are included without
98
+ walking the 1,824-role general board'
99
+ - name: TD SYNNEX
100
+ platform: workday
101
+ slug: synnex
102
+ source_of_record: discover
103
+ last_verified: &id006 2026-08-16
104
+ workday_tenant: synnex
105
+ workday_site: tdsynnexcareers
106
+ workday_dc: wd5
107
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
108
+ verified by a scratch sync — the board answered with 25 posting(s), 1 kept after
109
+ the CS-internship screens'
110
+ - name: Tech Mahindra
111
+ platform: bamboohr
112
+ slug: techmahindra
113
+ source_of_record: openjobs
114
+ last_verified: 2026-08-16
115
+ name_gate_exempt: true
116
+ notes: '2026-08-16: ats_link recorded in the OpenJobs dataset and the board answered
117
+ with postings, but this platform publishes no board name, so provenance is the
118
+ evidence rather than a name match.'
119
+ - name: Techtronic Industries
120
+ platform: workday
121
+ slug: tti
122
+ source_of_record: discover
123
+ last_verified: *id005
124
+ workday_tenant: tti
125
+ workday_site: tti_pe
126
+ workday_dc: wd1
127
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
128
+ is the only verification a Workday tenant can have without an offline probe'
129
+ - name: Tecsys
130
+ platform: workable
131
+ slug: tecsys
132
+ source_of_record: discover
133
+ last_verified: 2026-08-17
134
+ notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
135
+ paused_until resumed it.'
136
+ - name: Tekion Corp
137
+ platform: greenhouse
138
+ slug: tekion
139
+ source_of_record: openjobs
140
+ last_verified: 2026-08-01
141
+ enabled: false
142
+ notes: '2026-08-12: disabled — configured Greenhouse board returned 404; official
143
+ job-openings page no longer exposes a working supported board'
144
+ - name: Teledyne
145
+ platform: workday
146
+ slug: flir
147
+ source_of_record: discover
148
+ last_verified: *id005
149
+ workday_tenant: flir
150
+ workday_site: flircareers
151
+ workday_dc: wd1
152
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
153
+ is the only verification a Workday tenant can have without an offline probe'
154
+ - name: Teleperformance
155
+ platform: recruitee
156
+ slug: teleperformance
157
+ source_of_record: discover
158
+ last_verified: *id001
159
+ - name: TELUS
160
+ platform: custom_json
161
+ slug: telus
162
+ source_of_record: discover
163
+ last_verified: 2026-08-18
164
+ notes: careers.telus.com publishes its whole board as a Google-jobs RSS feed at
165
+ /rss.xml, but it is the retail and frontline board with no internship titles when
166
+ added.
167
+ custom:
168
+ url: https://careers.telus.com/rss.xml
169
+ format: rss
170
+ fields:
171
+ title: title
172
+ id: g:id
173
+ url: link
174
+ location: g:location
175
+ description: description
176
+ - name: TELUS Health
177
+ platform: workday
178
+ slug: lifeworks
179
+ source_of_record: discover
180
+ last_verified: 2026-08-16
181
+ recheck_after: *id004
182
+ workday_tenant: lifeworks
183
+ workday_site: External
184
+ workday_dc: wd3
185
+ name_gate_exempt: true
186
+ notes: '2026-08-16: un-parked. The 2026-08-11 reason was a budget argument against
187
+ a 120-request Workday ceiling that is now 732.'
188
+ - name: Temporal Technologies
189
+ platform: ashby
190
+ slug: temporal
191
+ source_of_record: discover
192
+ last_verified: &id007 2026-08-11
193
+ notes: '2026-08-31: greenhouse/temporaltechnologies went 404; moved to ashby.'
194
+ - name: Tenable
195
+ platform: greenhouse
196
+ slug: tenableinc
197
+ source_of_record: discover
198
+ last_verified: 2026-08-17
199
+ notes: '2026-08-17: found by browser-assisted discovery, then verified by a live
200
+ probe that matched the company name on the returned board'
201
+ - name: Tencent
202
+ platform: workday
203
+ slug: tencent
204
+ source_of_record: openjobs
205
+ last_verified: *id005
206
+ recheck_after: *id004
207
+ workday_tenant: tencent
208
+ workday_site: Tencent_Careers
209
+ workday_dc: wd1
210
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
211
+ is the only verification a Workday tenant can have without an offline probe'
212
+ - name: Tenstorrent
213
+ platform: greenhouse
214
+ slug: tenstorrent
215
+ source_of_record: discover
216
+ last_verified: *id001
217
+ - name: Terminal
218
+ platform: ashby
219
+ slug: terminal
220
+ source_of_record: manual
221
+ last_verified: 2026-08-13
222
+ notes: '2026-08-13: official active backend software-engineering internship application
223
+ verifies the public Ashby board.'
224
+ - name: Terranova
225
+ platform: ashby
226
+ slug: terranova
227
+ source_of_record: manual
228
+ last_verified: 2026-08-13
229
+ notes: '2026-08-13: official active embedded-systems internship application verifies
230
+ the public Ashby board.'
231
+ - name: Tessera Labs
232
+ platform: ashby
233
+ slug: tessera-labs
234
+ source_of_record: discover
235
+ last_verified: *id003
236
+ name_gate_exempt: true
237
+ notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
238
+ ashby publishes no board name, so provenance is the evidence (11 job(s))'
239
+ - name: Texas A&M International University
240
+ platform: workday
241
+ slug: tamus
242
+ source_of_record: discover
243
+ last_verified: 2026-08-16
244
+ workday_tenant: tamus
245
+ workday_site: TAMIU_Student_Employment
246
+ workday_dc: wd1
247
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
248
+ verified by a scratch sync (45 posting(s), 0 kept)'
249
+ - name: Texas Instruments
250
+ platform: oracle_cloud
251
+ slug: edbz
252
+ source_of_record: discover
253
+ last_verified: *id006
254
+ oracle_host: edbz.fa.us2.oraclecloud.com
255
+ oracle_site: CX
256
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
257
+ verified by a scratch sync — the board answered with 48 posting(s), 2 kept after
258
+ the CS-internship screens'
259
+ - name: Thales
260
+ platform: workday
261
+ slug: thales
262
+ source_of_record: openjobs
263
+ last_verified: *id005
264
+ recheck_after: *id004
265
+ workday_tenant: thales
266
+ workday_site: Careers
267
+ workday_dc: wd3
268
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
269
+ is the only verification a Workday tenant can have without an offline probe'
270
+ - name: The E.W. Scripps Company
271
+ platform: workday
272
+ slug: scripps
273
+ source_of_record: openjobs
274
+ last_verified: 2026-08-18
275
+ recheck_after: *id004
276
+ workday_tenant: scripps
277
+ workday_site: Scripps_Careers
278
+ workday_dc: wd115
279
+ notes: '2026-08-18: re-enabled with the correct datacenter. The row was parked on
280
+ wd5, which answers 422; the live board is scripps.wd115.myworkdayjobs.com site
281
+ Scripps_Careers, found by a careers-page ATS scan, and it answers with 79 postings.'
282
+ - name: The Exploration Company
283
+ platform: ashby
284
+ slug: the-exploration-company
285
+ source_of_record: discover
286
+ last_verified: *id002
287
+ name_gate_exempt: true
288
+ notes: '2026-08-14: board token taken from this employer''s own application URL
289
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
290
+ name gate cannot confirm it and provenance is the evidence (111 job(s))'
291
+ - name: The Federal Reserve System
292
+ platform: workday
293
+ slug: rb
294
+ source_of_record: discover
295
+ last_verified: 2026-08-16
296
+ workday_tenant: rb
297
+ workday_site: FRS
298
+ workday_dc: wd5
299
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
300
+ verified by a scratch sync (106 posting(s), 0 kept)'
301
+ - name: The Hartford
302
+ platform: workday
303
+ slug: thehartford
304
+ source_of_record: discover
305
+ last_verified: 2026-09-01
306
+ workday_tenant: thehartford
307
+ workday_site: Careers_External
308
+ workday_dc: wd5
309
+ notes: '2026-09-01: verified 102 postings including Summer 2027 Software and Data
310
+ Engineer internships.'
311
+ - name: The Independent Order of Foresters - Canada
312
+ platform: workday
313
+ slug: foresters
314
+ source_of_record: discover
315
+ last_verified: *id005
316
+ workday_tenant: foresters
317
+ workday_site: ForestersFinancialCareers
318
+ workday_dc: wd3
319
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
320
+ is the only verification a Workday tenant can have without an offline probe'
321
+ - name: The Nuclear Company
322
+ platform: greenhouse
323
+ slug: thenuclearcompany
324
+ source_of_record: discover
325
+ last_verified: *id001
326
+ - name: The Orchard
327
+ platform: greenhouse
328
+ slug: theorchard
329
+ source_of_record: openjobs
330
+ last_verified: *id007
331
+ - name: The Trade Desk
332
+ platform: greenhouse
333
+ slug: thetradedesk
334
+ source_of_record: discover
335
+ last_verified: *id001
336
+ - name: The Walt Disney Company
337
+ platform: workday
338
+ slug: disney
339
+ source_of_record: openjobs
340
+ last_verified: 2026-08-14
341
+ recheck_after: *id004
342
+ workday_tenant: disney
343
+ workday_site: disneycareer
344
+ workday_dc: wd5
345
+ notes: '2026-08-14: verified by a real sync — this board returned postings'
346
+ - name: Thermo Fisher Scientific
347
+ platform: workday
348
+ slug: thermofisher
349
+ source_of_record: discover
350
+ last_verified: *id005
351
+ workday_tenant: thermofisher
352
+ workday_site: ThermoFisherCareers
353
+ workday_dc: wd5
354
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
355
+ is the only verification a Workday tenant can have without an offline probe'
356
+ - name: Thingtrax
357
+ platform: workable
358
+ slug: thingtrax
359
+ source_of_record: discover
360
+ last_verified: 2026-08-17
361
+ notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
362
+ paused_until resumed it.'
363
+ - name: Thomson Reuters
364
+ platform: workday
365
+ slug: thomsonreuters
366
+ source_of_record: discover
367
+ last_verified: *id005
368
+ workday_tenant: thomsonreuters
369
+ workday_site: External_Career_Site
370
+ workday_dc: wd5
371
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
372
+ is the only verification a Workday tenant can have without an offline probe'
373
+ - name: ThoughtSpot
374
+ platform: custom_json
375
+ slug: thoughtspot
376
+ source_of_record: discover
377
+ last_verified: 2026-08-17
378
+ notes: '2026-08-17: endpoint found by browser-assisted discovery from https://www.thoughtspot.com/careers,
379
+ then replayed over plain HTTP with no browser.'
380
+ custom:
381
+ url: https://www.thoughtspot.com/api/getCareersListing
382
+ jobs_path: data
383
+ fields:
384
+ title: name
385
+ id: id
386
+ location: locations
387
+ url: url
388
+ category: department
389
+ - name: Thoughtworks
390
+ platform: custom_json
391
+ slug: thoughtworks
392
+ source_of_record: discover
393
+ last_verified: 2026-08-17
394
+ notes: '2026-08-17: endpoint found by browser-assisted discovery, then replayed
395
+ over plain HTTP. 47 postings in one response.'
396
+ custom:
397
+ url: https://www.thoughtworks.com/rest/careers/jobs
398
+ jobs_path: jobs
399
+ fields:
400
+ title: name
401
+ id: sourceSystemId
402
+ location: location
403
+ category: role
404
+ url_template: https://www.thoughtworks.com/careers/jobs/{id}
405
+ - name: Thumbtack
406
+ platform: greenhouse
407
+ slug: thumbtack
408
+ source_of_record: openjobs
409
+ enabled: false
410
+ notes: '2026-08-08: probed — board does not respond; re-resolve with discover --url
411
+ Re-probed 2026-08-14 and still dead.'
412
+ - name: thyssenkrupp
413
+ platform: workday
414
+ slug: thyssenkruppmaterialsna
415
+ source_of_record: discover
416
+ last_verified: 2026-08-16
417
+ workday_tenant: thyssenkruppmaterialsna
418
+ workday_site: '1'
419
+ workday_dc: wd12
420
+ notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
421
+ verified by a scratch sync (4 posting(s), 0 kept)'
422
+ - name: Tier 9 Game Studios
423
+ platform: breezy
424
+ slug: tier-9-game-studios-ltd
425
+ source_of_record: openjobs
426
+ last_verified: &id009 2026-08-11
427
+ notes: '2026-08-11: enabled on slug evidence - breezy publishes no board name, but
428
+ the slug folds to the caption and the board returned 1 job(s)'
429
+ - name: TIFIN
430
+ platform: greenhouse
431
+ slug: tifin
432
+ source_of_record: discover
433
+ last_verified: *id001
434
+ - name: TikTok
435
+ platform: custom_json
436
+ slug: tiktok
437
+ source_of_record: discover
438
+ last_verified: 2026-08-20
439
+ notes: The listing needs the website-path and accept-language headers its own bundle
440
+ sends; recruit type 202 is the publisher's Intern facet, so no keyword is used.
441
+ custom:
442
+ url: https://api.lifeattiktok.com/api/v1/public/supplier/search/job/posts
443
+ method: POST
444
+ body:
445
+ keyword: ''
446
+ limit: 100
447
+ offset: 0
448
+ recruitment_id_list:
449
+ - '202'
450
+ job_category_id_list: []
451
+ location_code_list: []
452
+ subject_id_list: []
453
+ tag_id_list: []
454
+ headers:
455
+ Referer: https://lifeattiktok.com/
456
+ Origin: https://lifeattiktok.com
457
+ website-path: tiktok
458
+ accept-language: en-US
459
+ jobs_path: data.job_post_list
460
+ fields:
461
+ title: title
462
+ id: id
463
+ location: city_info.en_name
464
+ description: description
465
+ category: job_category.en_name
466
+ url_template: https://lifeattiktok.com/search/{id}
467
+ page_param: offset
468
+ page_size: 100
469
+ page_step: 100
470
+ max_pages: 14
471
+ - name: Tilde Research
472
+ platform: ashby
473
+ slug: tilderesearch
474
+ source_of_record: discover
475
+ last_verified: *id002
476
+ name_gate_exempt: true
477
+ notes: '2026-08-14: board token taken from this employer''s own application URL
478
+ in a feed posting, not from slug guessing; ashby publishes no board name, so the
479
+ name gate cannot confirm it and provenance is the evidence (3 job(s))'
480
+ - name: TMEIC Corporation Americas
481
+ platform: workable
482
+ slug: tmeic-corporation-americas
483
+ source_of_record: discover
484
+ last_verified: 2026-08-17
485
+ notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
486
+ paused_until resumed it.'
487
+ - name: TMX GROUP
488
+ platform: workday
489
+ slug: tmx
490
+ source_of_record: discover
491
+ last_verified: *id005
492
+ workday_tenant: tmx
493
+ workday_site: TMX_Careers
494
+ workday_dc: wd3
495
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
496
+ is the only verification a Workday tenant can have without an offline probe'
497
+ - name: Toast
498
+ platform: greenhouse
499
+ slug: toast
500
+ source_of_record: discover
501
+ last_verified: 2026-08-21
502
+ notes: '2026-08-21: official early-career page resolves to the live Toast Greenhouse
503
+ board.'
504
+ - name: Together AI
505
+ platform: greenhouse
506
+ slug: togetherai
507
+ source_of_record: discover
508
+ last_verified: *id001
509
+ - name: Tonic DNA
510
+ platform: smartrecruiters
511
+ slug: tonicdna1
512
+ source_of_record: openjobs
513
+ last_verified: 2026-08-14
514
+ - name: Toon Boom
515
+ platform: bamboohr
516
+ slug: toonboom
517
+ source_of_record: discover
518
+ last_verified: *id008
519
+ notes: '2026-08-17: found by careers-page ATS scan, one plain GET. verify returned
520
+ 7 jobs and needs-a-manual-check, the expected verdict where the platform publishes
521
+ no board name; token equals the company name'
522
+ - name: Toppan MErril
523
+ platform: workday
524
+ slug: toppanmerrill
525
+ source_of_record: openjobs
526
+ last_verified: *id005
527
+ recheck_after: *id004
528
+ workday_tenant: toppanmerrill
529
+ workday_site: Toppan_Merrill
530
+ workday_dc: wd5
531
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
532
+ is the only verification a Workday tenant can have without an offline probe'
533
+ - name: Torn banner studios
534
+ platform: greenhouse
535
+ slug: tornbannerstudios
536
+ source_of_record: openjobs
537
+ enabled: false
538
+ notes: '2026-08-08: probed — board does not respond; re-resolve with discover --url
539
+ Re-probed 2026-08-14 and still dead.'
540
+ - name: Tower Research Capital
541
+ platform: greenhouse
542
+ slug: towerresearchcapital
543
+ source_of_record: openjobs
544
+ last_verified: *id001
545
+ - name: Toyota Research Institute
546
+ platform: lever
547
+ slug: tri
548
+ source_of_record: discover
549
+ last_verified: *id003
550
+ name_gate_exempt: true
551
+ notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
552
+ lever publishes no board name, so provenance is the evidence (14 job(s))'
553
+ - name: TPG
554
+ platform: greenhouse
555
+ slug: tpgcareers
556
+ source_of_record: discover
557
+ last_verified: *id008
558
+ notes: '2026-08-17: found by a plain-HTTP scan of the employer''s own careers page
559
+ for a known ATS hostname, no browser and one request per host.'
560
+ - name: Track VFX
561
+ platform: lever
562
+ slug: trackvfx
563
+ source_of_record: openjobs
564
+ last_verified: 2026-08-04
565
+ - name: Tradebot
566
+ platform: custom_json
567
+ slug: tradebot
568
+ source_of_record: discover
569
+ last_verified: 2026-08-20
570
+ enabled: false
571
+ notes: '2026-08-20: the careers page renders client-side and its sitemap holds a
572
+ single url, so there is no listing to read.'
573
+ custom:
574
+ url: https://www.tradebot.com/careers
575
+ fields:
576
+ title: title
577
+ id: id
578
+ - name: Tradeweb
579
+ platform: oracle_cloud
580
+ slug: ecnf
581
+ source_of_record: discover
582
+ last_verified: 2026-08-14
583
+ oracle_host: ecnf.fa.us2.oraclecloud.com
584
+ oracle_site: CX
585
+ notes: '2026-08-14: enabled to be verified by a real sync — the Oracle Cloud candidate
586
+ endpoint has no offline probe, and this host and site come from the employer''s
587
+ own application URL'
588
+ - name: TransMarket Group
589
+ platform: greenhouse
590
+ slug: transmarketgroup
591
+ source_of_record: discover
592
+ last_verified: *id001
593
+ - name: TransPerfect
594
+ platform: recruitee
595
+ slug: tgs
596
+ source_of_record: openjobs
597
+ enabled: false
598
+ notes: '2026-08-08: recruitee publishes no board name, so a 200 with jobs is not
599
+ evidence of the right company; needs a human to open the board once'
600
+ - name: TransUnion
601
+ platform: workday
602
+ slug: transunion
603
+ source_of_record: openjobs
604
+ last_verified: *id005
605
+ recheck_after: *id004
606
+ workday_tenant: transunion
607
+ workday_site: TransUnion
608
+ workday_dc: wd5
609
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
610
+ is the only verification a Workday tenant can have without an offline probe'
611
+ - name: Trek
612
+ platform: workday
613
+ slug: trekbikes
614
+ source_of_record: openjobs
615
+ last_verified: *id005
616
+ recheck_after: *id004
617
+ workday_tenant: trekbikes
618
+ workday_site: TREK
619
+ workday_dc: wd1
620
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
621
+ is the only verification a Workday tenant can have without an offline probe'
622
+ - name: Trellix
623
+ platform: workday
624
+ slug: trellix
625
+ source_of_record: openjobs
626
+ last_verified: *id005
627
+ recheck_after: *id004
628
+ workday_tenant: trellix
629
+ workday_site: EnterpriseCareers
630
+ workday_dc: wd1
631
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
632
+ is the only verification a Workday tenant can have without an offline probe'
633
+ - name: Trend Micro
634
+ platform: workday
635
+ slug: trendmicro
636
+ source_of_record: openjobs
637
+ last_verified: *id005
638
+ recheck_after: *id004
639
+ workday_tenant: trendmicro
640
+ workday_site: External
641
+ workday_dc: wd3
642
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
643
+ is the only verification a Workday tenant can have without an offline probe'
644
+ - name: TribalScale
645
+ platform: greenhouse
646
+ slug: tribalscale
647
+ source_of_record: discover
648
+ last_verified: *id001
649
+ - name: Trimble
650
+ platform: workday
651
+ slug: trimble
652
+ source_of_record: discover
653
+ last_verified: *id005
654
+ workday_tenant: trimble
655
+ workday_site: trimblecareers
656
+ workday_dc: wd1
657
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
658
+ is the only verification a Workday tenant can have without an offline probe'
659
+ - name: Triotech
660
+ platform: bamboohr
661
+ slug: triotech
662
+ source_of_record: openjobs
663
+ last_verified: 2026-08-16
664
+ name_gate_exempt: true
665
+ notes: '2026-08-16: ats_link recorded in the OpenJobs dataset and the board answered
666
+ with postings, but this platform publishes no board name, so provenance is the
667
+ evidence rather than a name match.'
668
+ - name: Triple dot studios
669
+ platform: greenhouse
670
+ slug: tripledotstudios
671
+ source_of_record: openjobs
672
+ last_verified: *id007
673
+ - name: True Anomaly
674
+ platform: greenhouse
675
+ slug: trueanomalyinc
676
+ source_of_record: discover
677
+ last_verified: *id001
678
+ - name: Truist Bank
679
+ platform: workday
680
+ slug: truist
681
+ source_of_record: discover
682
+ last_verified: *id005
683
+ workday_tenant: truist
684
+ workday_site: Careers
685
+ workday_dc: wd1
686
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
687
+ is the only verification a Workday tenant can have without an offline probe'
688
+ - name: Truveta
689
+ platform: greenhouse
690
+ slug: truveta
691
+ source_of_record: discover
692
+ last_verified: *id003
693
+ notes: '2026-08-16: seen in feed postings but absent from the registry; discover
694
+ matched greenhouse/truveta with 40 job(s) and the board named itself, so it is
695
+ polled directly instead of secondhand'
696
+ - name: TSC
697
+ platform: workday
698
+ slug: tsc
699
+ source_of_record: discover
700
+ last_verified: *id005
701
+ workday_tenant: tsc
702
+ workday_site: TSC-Careers
703
+ workday_dc: wd12
704
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
705
+ is the only verification a Workday tenant can have without an offline probe'
706
+ - name: TSMC
707
+ platform: custom_json
708
+ slug: tsmc
709
+ source_of_record: discover
710
+ last_verified: 2026-08-20
711
+ enabled: false
712
+ notes: '2026-08-20: switched off on cost, not reachability. Its 542 facet omits
713
+ real internships, so a correct row must walk all 719 rows in 72 requests per refresh,
714
+ and the board yields no CS internships today. Re-enable if TSMC starts posting
715
+ software interns.'
716
+ custom:
717
+ url: https://careers.tsmc.com/en_US/careers/SearchJobs/?listFilterMode=1&jobRecordsPerPage=10
718
+ format: html
719
+ row_selector: article.article--result
720
+ fields:
721
+ title: h3.article__header__text__title a
722
+ url: h3.article__header__text__title a::attr(href)
723
+ location: div.article__header__content__text > span.paragraph_inner-span
724
+ page_param: jobOffset
725
+ page_size: 10
726
+ max_pages: 80
727
+ - name: TTC Global
728
+ platform: greenhouse
729
+ slug: ttcglobal
730
+ source_of_record: openjobs
731
+ last_verified: *id007
732
+ - name: Tuckernuck
733
+ platform: bamboohr
734
+ slug: tnuck
735
+ source_of_record: discover
736
+ last_verified: *id003
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 (22 job(s))'
740
+ - name: Turabify
741
+ platform: workable
742
+ slug: turabify-co
743
+ source_of_record: discover
744
+ last_verified: 2026-08-16
745
+ notes: '2026-08-16: adopted from this employer''s own apply URL, then paused to
746
+ match the rest of the workable platform, which is parked until 2026-08-18 after
747
+ two 429s in one day.'
748
+ - name: Turbulent
749
+ platform: breezy
750
+ slug: turbulent
751
+ source_of_record: openjobs
752
+ last_verified: *id009
753
+ notes: '2026-08-11: enabled on slug evidence - breezy publishes no board name, but
754
+ the slug folds to the caption and the board returned 4 job(s)'
755
+ - name: Turner & Townsend
756
+ platform: smartrecruiters
757
+ slug: turnertownsend
758
+ source_of_record: discover
759
+ last_verified: *id003
760
+ enabled: false
761
+ notes: '2026-08-16: probed in isolation — 2,914 postings fetched, 0 internships
762
+ kept, and all 69 of its Canadian rows are full-time project management, HR and
763
+ accounting roles.'
764
+ - name: TVH
765
+ platform: workday
766
+ slug: tvh
767
+ source_of_record: openjobs
768
+ last_verified: *id005
769
+ recheck_after: *id004
770
+ workday_tenant: tvh
771
+ workday_site: JobsatTVH
772
+ workday_dc: wd3
773
+ notes: '2026-08-14: verified by a real sync — this board returned postings, which
774
+ is the only verification a Workday tenant can have without an offline probe'
775
+ - name: Twilio
776
+ platform: greenhouse
777
+ slug: twilio
778
+ source_of_record: discover
779
+ last_verified: *id001
780
+ - name: Two Circles
781
+ platform: workable
782
+ slug: twocircles
783
+ source_of_record: openjobs
784
+ last_verified: 2026-08-17
785
+ notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
786
+ paused_until resumed it.'
787
+ - name: Two Sigma
788
+ platform: custom_json
789
+ slug: twosigma
790
+ source_of_record: discover
791
+ last_verified: 2026-08-19
792
+ notes: Avature /feed/ is a hard 20 items with no offset parameter, so the HTML listing
793
+ is read instead; jobOffset pages it, and the whole board is 54 roles so it is
794
+ unfiltered.
795
+ custom:
796
+ url: https://careers.twosigma.com/careers/OpenRoles/?listFilterMode=1&jobRecordsPerPage=10
797
+ format: html
798
+ row_selector: article.article--result
799
+ fields:
800
+ title: h3.article__header__text__title a
801
+ id: h3.article__header__text__title a::slugid(href)
802
+ url: h3.article__header__text__title a::attr(href)
803
+ location: div.article__header__content__text > span.paragraph_inner-span
804
+ department: div.article__header__content__sub-text > span.paragraph_inner-span
805
+ employment_type: div.article__header__content__sub-text > span.paragraph_inner-span:nth-of-type(2)
806
+ page_param: jobOffset
807
+ page_size: 10
808
+ page_step: 10
809
+ max_pages: 12
810
+ - name: Two Six Technologies
811
+ platform: greenhouse
812
+ slug: twosixtechnologies
813
+ source_of_record: discover
814
+ last_verified: *id003
815
+ notes: '2026-08-16: seen in feed postings but absent from the registry; discover
816
+ matched greenhouse/twosixtechnologies with 59 job(s) and the board named itself,
817
+ so it is polled directly instead of secondhand'