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.
- stage/__init__.py +1 -0
- stage/__main__.py +8 -0
- stage/banner.py +32 -0
- stage/bootstrap/__init__.py +0 -0
- stage/bootstrap/openjobs.py +392 -0
- stage/classify/__init__.py +29 -0
- stage/classify/eligibility.py +115 -0
- stage/classify/internship.py +64 -0
- stage/classify/role.py +91 -0
- stage/classify/scope.py +47 -0
- stage/cli/__init__.py +0 -0
- stage/cli/app.py +4 -0
- stage/cli/commands/__init__.py +8 -0
- stage/cli/commands/discovery.py +294 -0
- stage/cli/commands/insight.py +494 -0
- stage/cli/commands/pipeline.py +337 -0
- stage/cli/commands/postings.py +473 -0
- stage/cli/commands/schedule.py +171 -0
- stage/cli/housekeeping.py +64 -0
- stage/cli/logfile.py +56 -0
- stage/cli/notify.py +170 -0
- stage/cli/options.py +678 -0
- stage/cli/render.py +1398 -0
- stage/cli/runlock.py +74 -0
- stage/cli/schedule.py +702 -0
- stage/cli/schedule_state.py +363 -0
- stage/cli/selection.py +83 -0
- stage/cli/serialize.py +196 -0
- stage/companies.py +542 -0
- stage/data/companies/a.yaml +1289 -0
- stage/data/companies/b.yaml +900 -0
- stage/data/companies/c.yaml +1377 -0
- stage/data/companies/d.yaml +497 -0
- stage/data/companies/e.yaml +519 -0
- stage/data/companies/f.yaml +454 -0
- stage/data/companies/g.yaml +601 -0
- stage/data/companies/h.yaml +446 -0
- stage/data/companies/i.yaml +503 -0
- stage/data/companies/j.yaml +138 -0
- stage/data/companies/k.yaml +278 -0
- stage/data/companies/l.yaml +402 -0
- stage/data/companies/m.yaml +937 -0
- stage/data/companies/n.yaml +549 -0
- stage/data/companies/o.yaml +371 -0
- stage/data/companies/other.yaml +58 -0
- stage/data/companies/p.yaml +825 -0
- stage/data/companies/q.yaml +121 -0
- stage/data/companies/r.yaml +583 -0
- stage/data/companies/s.yaml +1140 -0
- stage/data/companies/t.yaml +817 -0
- stage/data/companies/u.yaml +196 -0
- stage/data/companies/v.yaml +325 -0
- stage/data/companies/w.yaml +353 -0
- stage/data/companies/x.yaml +67 -0
- stage/data/companies/y.yaml +36 -0
- stage/data/companies/z.yaml +146 -0
- stage/data/fonts/DejaVuSans.LICENSE.txt +99 -0
- stage/data/fonts/DejaVuSans.ttf +0 -0
- stage/data/lexicon/company_tokens.yaml +228 -0
- stage/data/lexicon/eligibility.yaml +455 -0
- stage/data/lexicon/inclusive_suffixes.yaml +37 -0
- stage/data/lexicon/internship.yaml +187 -0
- stage/data/lexicon/language.yaml +226 -0
- stage/data/lexicon/locations.yaml +1159 -0
- stage/data/lexicon/roles.yaml +2012 -0
- stage/data/lexicon/terms.yaml +76 -0
- stage/data/lexicon/workday_facets.yaml +27 -0
- stage/data/seed_companies.yaml +198 -0
- stage/dedup/__init__.py +19 -0
- stage/dedup/identity.py +113 -0
- stage/dedup/resolve.py +97 -0
- stage/domain/__init__.py +244 -0
- stage/domain/company.py +49 -0
- stage/domain/coverage.py +86 -0
- stage/domain/custom_board.py +92 -0
- stage/domain/discovery.py +94 -0
- stage/domain/enums.py +114 -0
- stage/domain/events.py +204 -0
- stage/domain/filters.py +27 -0
- stage/domain/health.py +169 -0
- stage/domain/ids.py +48 -0
- stage/domain/job.py +47 -0
- stage/domain/matching.py +15 -0
- stage/domain/priority.py +34 -0
- stage/domain/quarantine.py +39 -0
- stage/domain/rate_state.py +78 -0
- stage/domain/retention.py +20 -0
- stage/domain/rotation.py +46 -0
- stage/domain/signals.py +12 -0
- stage/domain/sync_run.py +35 -0
- stage/domain/text.py +113 -0
- stage/domain/validator.py +14 -0
- stage/domain/visits.py +60 -0
- stage/domain/workday.py +38 -0
- stage/http/__init__.py +58 -0
- stage/http/breaker.py +53 -0
- stage/http/cache.py +44 -0
- stage/http/client.py +725 -0
- stage/http/profiles.py +101 -0
- stage/lexicon.py +370 -0
- stage/normalize/__init__.py +16 -0
- stage/normalize/language.py +47 -0
- stage/normalize/location.py +271 -0
- stage/normalize/terms.py +153 -0
- stage/normalize/urls.py +122 -0
- stage/paths.py +86 -0
- stage/py.typed +0 -0
- stage/services/__init__.py +0 -0
- stage/services/canary.py +120 -0
- stage/services/coverage.py +231 -0
- stage/services/discover.py +747 -0
- stage/services/export.py +274 -0
- stage/services/health.py +237 -0
- stage/services/maintenance.py +225 -0
- stage/services/quarantine.py +20 -0
- stage/services/query.py +86 -0
- stage/services/sync.py +1257 -0
- stage/sources/__init__.py +82 -0
- stage/sources/_text.py +79 -0
- stage/sources/ashby.py +93 -0
- stage/sources/bamboohr.py +80 -0
- stage/sources/base.py +225 -0
- stage/sources/breezy.py +90 -0
- stage/sources/collage.py +60 -0
- stage/sources/community_feeds.py +142 -0
- stage/sources/curated_markdown.py +289 -0
- stage/sources/custom_json.py +610 -0
- stage/sources/espresso.py +154 -0
- stage/sources/feed.py +44 -0
- stage/sources/greenhouse.py +104 -0
- stage/sources/jobbank.py +147 -0
- stage/sources/jobvite.py +133 -0
- stage/sources/lever.py +76 -0
- stage/sources/oracle_cloud.py +187 -0
- stage/sources/platforms.py +609 -0
- stage/sources/quebec_emploi.py +146 -0
- stage/sources/recruitee.py +96 -0
- stage/sources/simplify.py +110 -0
- stage/sources/smartrecruiters.py +216 -0
- stage/sources/speedyapply.py +200 -0
- stage/sources/themuse.py +157 -0
- stage/sources/workable.py +83 -0
- stage/sources/workday.py +524 -0
- stage/sources/zshah.py +99 -0
- stage/storage/__init__.py +29 -0
- stage/storage/migrations/0001_initial.sql +239 -0
- stage/storage/migrations/__init__.py +135 -0
- stage/storage/repository.py +213 -0
- stage/storage/search.py +28 -0
- stage/storage/sqlite_repo.py +1586 -0
- stage/storage/writer.py +249 -0
- stage/tui/__init__.py +0 -0
- stage/tui/app.py +82 -0
- stage/tui/help.py +26 -0
- stage/tui/safe.py +21 -0
- stage/tui/screens/__init__.py +0 -0
- stage/tui/screens/boards.py +186 -0
- stage/tui/screens/postings.py +509 -0
- stage/tui/screens/review.py +209 -0
- stage/tui/screens/splash.py +37 -0
- stage/tui/screens/stats.py +124 -0
- stage/tui/screens/sync.py +194 -0
- stage/tui/state.py +160 -0
- stage/tui/theme.tcss +205 -0
- stage/tui/widgets/__init__.py +0 -0
- stage_cli-1.0.0.dist-info/METADATA +379 -0
- stage_cli-1.0.0.dist-info/RECORD +170 -0
- stage_cli-1.0.0.dist-info/WHEEL +4 -0
- stage_cli-1.0.0.dist-info/entry_points.txt +2 -0
- stage_cli-1.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
- name: k-ID
|
|
2
|
+
platform: ashby
|
|
3
|
+
slug: k-id
|
|
4
|
+
source_of_record: discover
|
|
5
|
+
last_verified: &id001 2026-08-14
|
|
6
|
+
name_gate_exempt: true
|
|
7
|
+
notes: '2026-08-14: board token taken from this employer''s own application URL
|
|
8
|
+
in a feed posting, not from slug guessing; ashby publishes no board name, so the
|
|
9
|
+
name gate cannot confirm it and provenance is the evidence (9 job(s))'
|
|
10
|
+
- name: Kabam
|
|
11
|
+
platform: lever
|
|
12
|
+
slug: kabam
|
|
13
|
+
source_of_record: openjobs
|
|
14
|
+
last_verified: 2026-08-04
|
|
15
|
+
- name: Kastle AI
|
|
16
|
+
platform: ashby
|
|
17
|
+
slug: kastle
|
|
18
|
+
source_of_record: discover
|
|
19
|
+
last_verified: *id001
|
|
20
|
+
name_gate_exempt: true
|
|
21
|
+
notes: '2026-08-14: board token taken from this employer''s own application URL
|
|
22
|
+
in a feed posting, not from slug guessing; ashby publishes no board name, so the
|
|
23
|
+
name gate cannot confirm it and provenance is the evidence (12 job(s))'
|
|
24
|
+
- name: KBR
|
|
25
|
+
platform: workday
|
|
26
|
+
slug: kbr
|
|
27
|
+
source_of_record: discover
|
|
28
|
+
last_verified: &id002 2026-08-14
|
|
29
|
+
workday_tenant: kbr
|
|
30
|
+
workday_site: KBR_Careers
|
|
31
|
+
workday_dc: wd5
|
|
32
|
+
notes: '2026-08-14: verified by a real sync — this board returned postings, which
|
|
33
|
+
is the only verification a Workday tenant can have without an offline probe'
|
|
34
|
+
- name: Kepler Communications
|
|
35
|
+
platform: lever
|
|
36
|
+
slug: kepler
|
|
37
|
+
source_of_record: discover
|
|
38
|
+
last_verified: *id001
|
|
39
|
+
name_gate_exempt: true
|
|
40
|
+
notes: '2026-08-14: board token taken from this employer''s own application URL
|
|
41
|
+
in a feed posting, not from slug guessing; lever publishes no board name, so the
|
|
42
|
+
name gate cannot confirm it and provenance is the evidence (34 job(s))'
|
|
43
|
+
- name: KeyBank
|
|
44
|
+
platform: workday
|
|
45
|
+
slug: keybank
|
|
46
|
+
source_of_record: discover
|
|
47
|
+
last_verified: *id002
|
|
48
|
+
workday_tenant: keybank
|
|
49
|
+
workday_site: External_Career_Site
|
|
50
|
+
workday_dc: wd5
|
|
51
|
+
notes: '2026-08-14: verified by a real sync — this board returned postings, which
|
|
52
|
+
is the only verification a Workday tenant can have without an offline probe'
|
|
53
|
+
- name: Keysight Technologies
|
|
54
|
+
platform: custom_json
|
|
55
|
+
slug: keysight
|
|
56
|
+
source_of_record: discover
|
|
57
|
+
last_verified: 2026-08-20
|
|
58
|
+
notes: '2026-08-20: reopened — the old row pointed at jobs.keysight.com; the iCIMS
|
|
59
|
+
careers-home site at careers.keysight.com answers /api/jobs with 606 postings
|
|
60
|
+
and full bodies.'
|
|
61
|
+
custom:
|
|
62
|
+
url: https://careers.keysight.com/api/jobs?limit=100
|
|
63
|
+
jobs_path: jobs
|
|
64
|
+
fields:
|
|
65
|
+
title: data.title
|
|
66
|
+
id: data.slug
|
|
67
|
+
location: data.full_location
|
|
68
|
+
description: data.description
|
|
69
|
+
employment_type: data.employment_type
|
|
70
|
+
category: data.category
|
|
71
|
+
department: data.department
|
|
72
|
+
url_template: https://careers.keysight.com/jobs/{id}
|
|
73
|
+
page_param: page
|
|
74
|
+
page_size: 100
|
|
75
|
+
page_start: 1
|
|
76
|
+
page_step: 1
|
|
77
|
+
max_pages: 10
|
|
78
|
+
- name: Keywords Studios
|
|
79
|
+
platform: workable
|
|
80
|
+
slug: keywords-intl1
|
|
81
|
+
source_of_record: openjobs
|
|
82
|
+
last_verified: 2026-08-17
|
|
83
|
+
notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
|
|
84
|
+
paused_until resumed it.'
|
|
85
|
+
- name: Kiewit
|
|
86
|
+
platform: custom_json
|
|
87
|
+
slug: kiewit
|
|
88
|
+
source_of_record: discover
|
|
89
|
+
last_verified: 2026-08-20
|
|
90
|
+
notes: SuccessFactors RMK at kiewitcareers; /rss.xml carries all 829 postings, nine
|
|
91
|
+
of them intern or student terms.
|
|
92
|
+
custom:
|
|
93
|
+
url: https://kiewitcareers.kiewit.com/rss.xml
|
|
94
|
+
format: rss
|
|
95
|
+
fields:
|
|
96
|
+
title: title
|
|
97
|
+
id: g:id
|
|
98
|
+
url: link
|
|
99
|
+
location: g:location
|
|
100
|
+
description: description
|
|
101
|
+
category: g:job_function
|
|
102
|
+
- name: Kimley-Horn
|
|
103
|
+
platform: icims
|
|
104
|
+
slug: kimley-horn
|
|
105
|
+
source_of_record: discover
|
|
106
|
+
enabled: false
|
|
107
|
+
notes: '2026-08-20: re-probed with the careers-home route that opened AMD, Garmin
|
|
108
|
+
and Panasonic; this employer publishes no careers.<domain> site, and /api/jobs
|
|
109
|
+
on its icims.com host is 404.'
|
|
110
|
+
- name: Kion Group
|
|
111
|
+
platform: workday
|
|
112
|
+
slug: kiongroup
|
|
113
|
+
source_of_record: discover
|
|
114
|
+
last_verified: &id003 2026-08-16
|
|
115
|
+
workday_tenant: kiongroup
|
|
116
|
+
workday_site: kiongroup
|
|
117
|
+
workday_dc: wd3
|
|
118
|
+
notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
|
|
119
|
+
verified by a scratch sync — the board answered with 22 posting(s), 4 kept after
|
|
120
|
+
the CS-internship screens'
|
|
121
|
+
- name: Kion Group
|
|
122
|
+
platform: workday
|
|
123
|
+
slug: kiongroup
|
|
124
|
+
source_of_record: discover
|
|
125
|
+
last_verified: *id003
|
|
126
|
+
workday_tenant: kiongroup
|
|
127
|
+
workday_site: kion_scs
|
|
128
|
+
workday_dc: wd3
|
|
129
|
+
notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
|
|
130
|
+
verified by a scratch sync — the board answered with 22 posting(s), 4 kept after
|
|
131
|
+
the CS-internship screens'
|
|
132
|
+
- name: Kirin
|
|
133
|
+
platform: ashby
|
|
134
|
+
slug: kirin
|
|
135
|
+
source_of_record: discover
|
|
136
|
+
last_verified: *id001
|
|
137
|
+
name_gate_exempt: true
|
|
138
|
+
notes: '2026-08-14: board token taken from this employer''s own application URL
|
|
139
|
+
in a feed posting, not from slug guessing; ashby publishes no board name, so the
|
|
140
|
+
name gate cannot confirm it and provenance is the evidence (39 job(s))'
|
|
141
|
+
- name: KKR
|
|
142
|
+
platform: greenhouse
|
|
143
|
+
slug: staged
|
|
144
|
+
source_of_record: discover
|
|
145
|
+
last_verified: 2026-08-20
|
|
146
|
+
notes: '2026-08-20: the token reads like a staging board, but greenhouse names it
|
|
147
|
+
Student Careers at KKR and it carries nine real 2027 internships, so the caption
|
|
148
|
+
is the evidence, not the slug.'
|
|
149
|
+
- name: KLA
|
|
150
|
+
platform: workday
|
|
151
|
+
slug: kla
|
|
152
|
+
source_of_record: discover
|
|
153
|
+
last_verified: *id002
|
|
154
|
+
workday_tenant: kla
|
|
155
|
+
workday_site: AnnArbor
|
|
156
|
+
workday_dc: wd1
|
|
157
|
+
notes: '2026-08-14: verified by a real sync — this board returned postings, which
|
|
158
|
+
is the only verification a Workday tenant can have without an offline probe'
|
|
159
|
+
- name: Klaviyo
|
|
160
|
+
platform: greenhouse
|
|
161
|
+
slug: klaviyo
|
|
162
|
+
source_of_record: openjobs
|
|
163
|
+
last_verified: 2026-08-16
|
|
164
|
+
notes: '2026-08-16: ats_link recorded in the OpenJobs dataset, then verified by
|
|
165
|
+
a live probe that matched the company name on the returned board'
|
|
166
|
+
- name: Klue
|
|
167
|
+
platform: ashby
|
|
168
|
+
slug: klue
|
|
169
|
+
source_of_record: discover
|
|
170
|
+
last_verified: 2026-08-17
|
|
171
|
+
name_gate_exempt: true
|
|
172
|
+
notes: '2026-08-17: found by browser-assisted discovery from the employer''s own
|
|
173
|
+
careers page and the board answered with postings, but ashby publishes no board
|
|
174
|
+
name, so provenance is the evidence rather than a name match'
|
|
175
|
+
- name: Kodiak Robotics
|
|
176
|
+
platform: greenhouse
|
|
177
|
+
slug: kodiak
|
|
178
|
+
source_of_record: discover
|
|
179
|
+
last_verified: 2026-09-01
|
|
180
|
+
notes: '2026-09-01: verified 72 postings including six Winter 2027 internships.'
|
|
181
|
+
- name: Kognitos
|
|
182
|
+
platform: ashby
|
|
183
|
+
slug: kognitos
|
|
184
|
+
source_of_record: discover
|
|
185
|
+
last_verified: *id001
|
|
186
|
+
name_gate_exempt: true
|
|
187
|
+
notes: '2026-08-14: board token taken from this employer''s own application URL
|
|
188
|
+
in a feed posting, not from slug guessing; ashby publishes no board name, so the
|
|
189
|
+
name gate cannot confirm it and provenance is the evidence (6 job(s))'
|
|
190
|
+
- name: KOHO
|
|
191
|
+
platform: ashby
|
|
192
|
+
slug: koho
|
|
193
|
+
source_of_record: discover
|
|
194
|
+
last_verified: 2026-08-17
|
|
195
|
+
name_gate_exempt: true
|
|
196
|
+
notes: '2026-08-17: found by browser-assisted discovery from the employer''s own
|
|
197
|
+
careers page and the board answered with postings, but ashby publishes no board
|
|
198
|
+
name, so provenance is the evidence rather than a name match'
|
|
199
|
+
- name: KONE
|
|
200
|
+
platform: workday
|
|
201
|
+
slug: kone
|
|
202
|
+
source_of_record: discover
|
|
203
|
+
last_verified: *id003
|
|
204
|
+
workday_tenant: kone
|
|
205
|
+
workday_site: careers
|
|
206
|
+
workday_dc: wd3
|
|
207
|
+
notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
|
|
208
|
+
verified by a scratch sync — the board answered with 120 posting(s), 1 kept after
|
|
209
|
+
the CS-internship screens'
|
|
210
|
+
- name: kos.ai
|
|
211
|
+
platform: ashby
|
|
212
|
+
slug: kos.ai
|
|
213
|
+
source_of_record: discover
|
|
214
|
+
last_verified: *id001
|
|
215
|
+
name_gate_exempt: true
|
|
216
|
+
notes: '2026-08-14: board token taken from this employer''s own application URL
|
|
217
|
+
in a feed posting, not from slug guessing; ashby publishes no board name, so the
|
|
218
|
+
name gate cannot confirm it and provenance is the evidence (5 job(s))'
|
|
219
|
+
- name: KOSTAL Group
|
|
220
|
+
platform: smartrecruiters
|
|
221
|
+
slug: kostalgroup
|
|
222
|
+
source_of_record: discover
|
|
223
|
+
last_verified: 2026-08-18
|
|
224
|
+
notes: '2026-08-18: seen in feed postings but absent from the registry; discover
|
|
225
|
+
matched smartrecruiters/kostalgroup with 118 job(s) and the board named itself,
|
|
226
|
+
so it is polled directly instead of secondhand'
|
|
227
|
+
- name: KPMG
|
|
228
|
+
platform: custom_json
|
|
229
|
+
slug: kpmg
|
|
230
|
+
source_of_record: discover
|
|
231
|
+
last_verified: 2026-08-18
|
|
232
|
+
notes: 'The earlier park named a wrong filter, not a dead endpoint: tags1=Intern/Co-op
|
|
233
|
+
is the facet the site itself uses.'
|
|
234
|
+
custom:
|
|
235
|
+
url: https://careers.kpmg.ca/api/jobs?lang=en-US&limit=25&page=1&tags1=Intern%2FCo-op
|
|
236
|
+
jobs_path: jobs
|
|
237
|
+
fields:
|
|
238
|
+
title: data.title
|
|
239
|
+
id: data.slug
|
|
240
|
+
location: data.full_location
|
|
241
|
+
description: data.description
|
|
242
|
+
url: data.apply_url
|
|
243
|
+
category: data.category
|
|
244
|
+
employment_type: data.employment_type
|
|
245
|
+
page_param: page
|
|
246
|
+
page_size: 25
|
|
247
|
+
page_start: 1
|
|
248
|
+
page_step: 1
|
|
249
|
+
max_pages: 20
|
|
250
|
+
- name: Krafton
|
|
251
|
+
platform: greenhouse
|
|
252
|
+
slug: krafton
|
|
253
|
+
source_of_record: discover
|
|
254
|
+
last_verified: 2026-08-20
|
|
255
|
+
notes: Its careers page answers 403, but the native greenhouse board answers with
|
|
256
|
+
77 postings.
|
|
257
|
+
- name: KRAFTON Montréal Studio
|
|
258
|
+
platform: greenhouse
|
|
259
|
+
slug: studiokraftonboard
|
|
260
|
+
source_of_record: openjobs
|
|
261
|
+
last_verified: 2026-08-11
|
|
262
|
+
- name: Kraken
|
|
263
|
+
platform: ashby
|
|
264
|
+
slug: kraken.com
|
|
265
|
+
source_of_record: discover
|
|
266
|
+
last_verified: 2026-08-21
|
|
267
|
+
notes: '2026-08-21: supplied URL is the employer’s Ashby board and returned live
|
|
268
|
+
postings.'
|
|
269
|
+
- name: Kyndryl
|
|
270
|
+
platform: workday
|
|
271
|
+
slug: kyndryl
|
|
272
|
+
source_of_record: discover
|
|
273
|
+
last_verified: 2026-08-17
|
|
274
|
+
workday_tenant: kyndryl
|
|
275
|
+
workday_site: KyndrylEarlyCareers
|
|
276
|
+
workday_dc: wd5
|
|
277
|
+
notes: '2026-08-17: verified by scratch sync. This is the employer''s own early-careers
|
|
278
|
+
site, which carried 1 posting that day; adopted for the September intake'
|
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
- name: L3Harris
|
|
2
|
+
platform: custom_json
|
|
3
|
+
slug: l3harris
|
|
4
|
+
source_of_record: discover
|
|
5
|
+
last_verified: 2026-08-20
|
|
6
|
+
notes: TalentBrew, server-rendered like BlackRock; its p parameter paginates and
|
|
7
|
+
page two shares no ids with page one.
|
|
8
|
+
custom:
|
|
9
|
+
url: https://careers.l3harris.com/en/search-jobs
|
|
10
|
+
format: html
|
|
11
|
+
row_selector: '#search-results-list li'
|
|
12
|
+
fields:
|
|
13
|
+
title: h2
|
|
14
|
+
id: a::attr(data-job-id)
|
|
15
|
+
url: a::attr(href)
|
|
16
|
+
location: .job-location
|
|
17
|
+
category: .job-category
|
|
18
|
+
page_param: p
|
|
19
|
+
page_size: 1
|
|
20
|
+
page_start: 1
|
|
21
|
+
page_step: 1
|
|
22
|
+
max_pages: 12
|
|
23
|
+
- name: Lam Research
|
|
24
|
+
platform: custom_json
|
|
25
|
+
slug: lamresearch
|
|
26
|
+
source_of_record: discover
|
|
27
|
+
last_verified: 2026-08-20
|
|
28
|
+
notes: '2026-08-20: Eightfold tenant read from the careers page; filter_paygrade
|
|
29
|
+
is the publisher''s own intern facet, the same shape as the Eaton row.'
|
|
30
|
+
custom:
|
|
31
|
+
url: https://lamresearch.eightfold.ai/api/pcsx/search?domain=lamresearch.com&query=&sort_by=relevance&filter_paygrade=intern%2Fapprentice
|
|
32
|
+
jobs_path: data.positions
|
|
33
|
+
fields:
|
|
34
|
+
title: name
|
|
35
|
+
id: id
|
|
36
|
+
location: standardizedLocations
|
|
37
|
+
department: department
|
|
38
|
+
url_template: https://lamresearch.eightfold.ai/careers/job/{id}
|
|
39
|
+
page_param: start
|
|
40
|
+
page_size: 10
|
|
41
|
+
max_pages: 20
|
|
42
|
+
- name: Lambda
|
|
43
|
+
platform: ashby
|
|
44
|
+
slug: lambda
|
|
45
|
+
source_of_record: openjobs
|
|
46
|
+
last_verified: &id001 2026-08-11
|
|
47
|
+
notes: '2026-08-11: enabled on slug evidence - ashby publishes no board name, but
|
|
48
|
+
the slug folds to the caption and the board returned 67 job(s)'
|
|
49
|
+
- name: LangChain
|
|
50
|
+
platform: ashby
|
|
51
|
+
slug: langchain
|
|
52
|
+
source_of_record: openjobs
|
|
53
|
+
last_verified: *id001
|
|
54
|
+
notes: '2026-08-11: enabled on slug evidence - ashby publishes no board name, but
|
|
55
|
+
the slug folds to the caption and the board returned 101 job(s)'
|
|
56
|
+
- name: Larian Studios
|
|
57
|
+
platform: lever
|
|
58
|
+
slug: larian
|
|
59
|
+
source_of_record: openjobs
|
|
60
|
+
last_verified: &id003 2026-08-04
|
|
61
|
+
- name: Later
|
|
62
|
+
platform: greenhouse
|
|
63
|
+
slug: later
|
|
64
|
+
source_of_record: discover
|
|
65
|
+
last_verified: &id004 2026-08-14
|
|
66
|
+
- name: Lattice Semiconductor
|
|
67
|
+
platform: workday
|
|
68
|
+
slug: latticesemi
|
|
69
|
+
source_of_record: discover
|
|
70
|
+
last_verified: 2026-08-20
|
|
71
|
+
workday_tenant: latticesemi
|
|
72
|
+
workday_site: latticesemiconductorscareers
|
|
73
|
+
workday_dc: wd5
|
|
74
|
+
notes: '2026-08-20: coordinates read from the owner-supplied careers URL, not guessed.'
|
|
75
|
+
- name: LaunchDarkly
|
|
76
|
+
platform: greenhouse
|
|
77
|
+
slug: launchdarkly
|
|
78
|
+
source_of_record: openjobs
|
|
79
|
+
last_verified: 2026-08-16
|
|
80
|
+
notes: '2026-08-16: ats_link recorded in the OpenJobs dataset, then verified by
|
|
81
|
+
a live probe that matched the company name on the returned board'
|
|
82
|
+
- name: Lawrence Livermore National Laboratory (LLNL)
|
|
83
|
+
platform: smartrecruiters
|
|
84
|
+
slug: llnl
|
|
85
|
+
source_of_record: discover
|
|
86
|
+
last_verified: &id005 2026-08-14
|
|
87
|
+
- name: LAXIR
|
|
88
|
+
platform: smartrecruiters
|
|
89
|
+
slug: laxir1
|
|
90
|
+
source_of_record: discover
|
|
91
|
+
last_verified: &id002 2026-08-16
|
|
92
|
+
notes: '2026-08-16: seen in feed postings but absent from the registry; discover
|
|
93
|
+
matched smartrecruiters/laxir1 with 10 job(s) and the board named itself, so it
|
|
94
|
+
is polled directly instead of secondhand'
|
|
95
|
+
- name: Lazard
|
|
96
|
+
platform: oracle_cloud
|
|
97
|
+
slug: icbpjb
|
|
98
|
+
source_of_record: discover
|
|
99
|
+
last_verified: 2026-08-20
|
|
100
|
+
oracle_host: icbpjb.fa.ocs.oraclecloud.com
|
|
101
|
+
oracle_site: LazardStudentCareers
|
|
102
|
+
oracle_keyword: ''
|
|
103
|
+
notes: '2026-08-20: a student-only Oracle site, so the English keyword is pinned
|
|
104
|
+
off and the whole 94-row board is walked.'
|
|
105
|
+
- name: LBC Studios
|
|
106
|
+
platform: bamboohr
|
|
107
|
+
slug: lbcstudiosca
|
|
108
|
+
source_of_record: openjobs
|
|
109
|
+
enabled: false
|
|
110
|
+
notes: '2026-08-08: bamboohr publishes no board name, so a 200 with jobs is not
|
|
111
|
+
evidence of the right company; needs a human to open the board once'
|
|
112
|
+
- name: Lead Venture
|
|
113
|
+
platform: jobvite
|
|
114
|
+
slug: leadventure
|
|
115
|
+
source_of_record: openjobs
|
|
116
|
+
last_verified: 2026-08-21
|
|
117
|
+
notes: '2026-08-21: the Jobvite API answers 401, but jobs.jobvite.com/leadventure/jobs
|
|
118
|
+
server-renders all 16 postings, which is the contract this row polls'
|
|
119
|
+
- name: Leidos
|
|
120
|
+
platform: workday
|
|
121
|
+
slug: leidos
|
|
122
|
+
source_of_record: discover
|
|
123
|
+
last_verified: &id006 2026-08-14
|
|
124
|
+
workday_tenant: leidos
|
|
125
|
+
workday_site: External
|
|
126
|
+
workday_dc: wd5
|
|
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: Leland
|
|
130
|
+
platform: ashby
|
|
131
|
+
slug: leland
|
|
132
|
+
source_of_record: discover
|
|
133
|
+
last_verified: *id002
|
|
134
|
+
name_gate_exempt: true
|
|
135
|
+
notes: '2026-08-16: token from this employer''s own apply URL, not slug guessing;
|
|
136
|
+
ashby publishes no board name, so provenance is the evidence (187 job(s))'
|
|
137
|
+
- name: Liberty University
|
|
138
|
+
platform: workday
|
|
139
|
+
slug: liberty
|
|
140
|
+
source_of_record: discover
|
|
141
|
+
last_verified: 2026-08-16
|
|
142
|
+
workday_tenant: liberty
|
|
143
|
+
workday_site: lu_job_board_staff
|
|
144
|
+
workday_dc: wd5
|
|
145
|
+
notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
|
|
146
|
+
verified by a scratch sync (84 posting(s), 0 kept)'
|
|
147
|
+
- name: Lightcast
|
|
148
|
+
platform: lever
|
|
149
|
+
slug: economicmodeling
|
|
150
|
+
source_of_record: openjobs
|
|
151
|
+
last_verified: *id003
|
|
152
|
+
- name: Lightspeed
|
|
153
|
+
platform: custom_json
|
|
154
|
+
slug: lightspeedhq
|
|
155
|
+
source_of_record: discover
|
|
156
|
+
last_verified: 2026-08-18
|
|
157
|
+
notes: The greenhouse board is gone and ashby/lightspeed is a different company,
|
|
158
|
+
so the real board is the server-rendered listing on lightspeedhq.com/careers/openings.
|
|
159
|
+
custom:
|
|
160
|
+
url: https://www.lightspeedhq.com/careers/openings/
|
|
161
|
+
format: html
|
|
162
|
+
row_selector: li.job
|
|
163
|
+
fields:
|
|
164
|
+
title: span.job-title
|
|
165
|
+
location: span.job-office
|
|
166
|
+
department: span.job-dept
|
|
167
|
+
id: a::slugid(href)
|
|
168
|
+
url: a::attr(href)
|
|
169
|
+
- name: Lightspeed (FR)
|
|
170
|
+
platform: greenhouse
|
|
171
|
+
slug: lightspeedhqfr
|
|
172
|
+
source_of_record: discover
|
|
173
|
+
enabled: false
|
|
174
|
+
notes: '2026-08-08: probed — board does not respond; re-resolve with discover --url
|
|
175
|
+
Re-probed 2026-08-14 and still dead.'
|
|
176
|
+
- name: Lila Sciences
|
|
177
|
+
platform: greenhouse
|
|
178
|
+
slug: lilasciences
|
|
179
|
+
source_of_record: discover
|
|
180
|
+
last_verified: *id004
|
|
181
|
+
- name: Lilt
|
|
182
|
+
platform: ashby
|
|
183
|
+
slug: lilt
|
|
184
|
+
source_of_record: openjobs
|
|
185
|
+
enabled: false
|
|
186
|
+
notes: '2026-08-08: ashby publishes no board name, so a 200 with jobs is not evidence
|
|
187
|
+
of the right company; needs a human to open the board once'
|
|
188
|
+
- name: Limetax
|
|
189
|
+
platform: ashby
|
|
190
|
+
slug: limetax
|
|
191
|
+
source_of_record: discover
|
|
192
|
+
last_verified: 2026-08-14
|
|
193
|
+
name_gate_exempt: true
|
|
194
|
+
notes: '2026-08-14: board token taken from this employer''s own application URL
|
|
195
|
+
in a feed posting, not from slug guessing; ashby publishes no board name, so the
|
|
196
|
+
name gate cannot confirm it and provenance is the evidence (11 job(s))'
|
|
197
|
+
- name: Linear
|
|
198
|
+
platform: ashby
|
|
199
|
+
slug: linear
|
|
200
|
+
source_of_record: openjobs
|
|
201
|
+
last_verified: 2026-08-16
|
|
202
|
+
name_gate_exempt: true
|
|
203
|
+
notes: '2026-08-16: ats_link recorded in the OpenJobs dataset and the board answered
|
|
204
|
+
with postings, but this platform publishes no board name, so provenance is the
|
|
205
|
+
evidence rather than a name match.'
|
|
206
|
+
- name: LinkedIn
|
|
207
|
+
platform: smartrecruiters
|
|
208
|
+
slug: linkedin3
|
|
209
|
+
source_of_record: openjobs
|
|
210
|
+
last_verified: *id005
|
|
211
|
+
- name: Liquid Development
|
|
212
|
+
platform: workable
|
|
213
|
+
slug: liquid-development
|
|
214
|
+
source_of_record: openjobs
|
|
215
|
+
last_verified: 2026-08-17
|
|
216
|
+
notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
|
|
217
|
+
paused_until resumed it.'
|
|
218
|
+
- name: Litmus
|
|
219
|
+
platform: greenhouse
|
|
220
|
+
slug: litmus46
|
|
221
|
+
source_of_record: openjobs
|
|
222
|
+
enabled: false
|
|
223
|
+
notes: '2026-08-08: probed — board does not respond; re-resolve with discover --url
|
|
224
|
+
Re-probed 2026-08-14 and still dead.'
|
|
225
|
+
- name: Loblaw
|
|
226
|
+
platform: custom_json
|
|
227
|
+
slug: loblaw
|
|
228
|
+
source_of_record: discover
|
|
229
|
+
last_verified: 2026-08-19
|
|
230
|
+
enabled: false
|
|
231
|
+
notes: 296 pages of retail whose pagination is a path rather than a parameter, and
|
|
232
|
+
no category facet is honoured, so the volume is not worth the two CS roles.
|
|
233
|
+
custom:
|
|
234
|
+
url: https://careers.loblaw.ca/jobs
|
|
235
|
+
format: html
|
|
236
|
+
authoritative: false
|
|
237
|
+
row_selector: .results-list__item
|
|
238
|
+
fields:
|
|
239
|
+
title: .results-list__item-title--link
|
|
240
|
+
id: .results-list__item-title--link::attr(href)
|
|
241
|
+
url: .results-list__item-title--link::attr(href)
|
|
242
|
+
location: .results-list__item-street--label
|
|
243
|
+
- name: Lockheed Martin
|
|
244
|
+
platform: custom_json
|
|
245
|
+
slug: lockheedmartin
|
|
246
|
+
source_of_record: discover
|
|
247
|
+
last_verified: 2026-08-20
|
|
248
|
+
notes: '2026-08-20: Eightfold fixes the page at 10, so the whole 1,252-position
|
|
249
|
+
board would cost 126 requests a refresh. Filtered to the owner''s query=internship
|
|
250
|
+
instead, which stops on a short page and so costs one request while Lockheed has
|
|
251
|
+
no interns posted.'
|
|
252
|
+
custom:
|
|
253
|
+
url: https://lockheedmartin.eightfold.ai/api/pcsx/search?domain=lockheedmartin.com&query=internship&sort_by=relevance
|
|
254
|
+
jobs_path: data.positions
|
|
255
|
+
fields:
|
|
256
|
+
title: name
|
|
257
|
+
id: id
|
|
258
|
+
location: standardizedLocations
|
|
259
|
+
department: department
|
|
260
|
+
url_template: https://lockheedmartin.eightfold.ai/careers/job/{id}
|
|
261
|
+
page_param: start
|
|
262
|
+
page_size: 10
|
|
263
|
+
max_pages: 30
|
|
264
|
+
- name: Logitech
|
|
265
|
+
platform: workday
|
|
266
|
+
slug: logitech
|
|
267
|
+
source_of_record: discover
|
|
268
|
+
last_verified: *id006
|
|
269
|
+
workday_tenant: logitech
|
|
270
|
+
workday_site: logitech
|
|
271
|
+
workday_dc: wd5
|
|
272
|
+
notes: '2026-08-14: verified by a real sync — this board returned postings, which
|
|
273
|
+
is the only verification a Workday tenant can have without an offline probe'
|
|
274
|
+
- name: Lombard Odier
|
|
275
|
+
platform: workday
|
|
276
|
+
slug: lombardodier
|
|
277
|
+
source_of_record: discover
|
|
278
|
+
last_verified: *id006
|
|
279
|
+
workday_tenant: lombardodier
|
|
280
|
+
workday_site: lombard_odier_careers
|
|
281
|
+
workday_dc: wd3
|
|
282
|
+
notes: '2026-08-14: verified by a real sync — this board returned postings, which
|
|
283
|
+
is the only verification a Workday tenant can have without an offline probe'
|
|
284
|
+
- name: London stock Exchange
|
|
285
|
+
platform: workday
|
|
286
|
+
slug: lseg
|
|
287
|
+
source_of_record: openjobs
|
|
288
|
+
last_verified: *id006
|
|
289
|
+
recheck_after: 2026-10-01
|
|
290
|
+
workday_tenant: lseg
|
|
291
|
+
workday_site: Careers
|
|
292
|
+
workday_dc: wd3
|
|
293
|
+
notes: '2026-08-14: verified by a real sync — this board returned postings, which
|
|
294
|
+
is the only verification a Workday tenant can have without an offline probe'
|
|
295
|
+
- name: Los Alamos National Laboratory
|
|
296
|
+
platform: custom_json
|
|
297
|
+
slug: lanl
|
|
298
|
+
source_of_record: discover
|
|
299
|
+
last_verified: 2026-08-20
|
|
300
|
+
notes: '2026-08-20: the search page is client-side; /jobs-site.xml lists all 505
|
|
301
|
+
postings, with the slug ahead of a uuid.'
|
|
302
|
+
custom:
|
|
303
|
+
url: https://lanl.jobs/jobs-site.xml
|
|
304
|
+
format: sitemap
|
|
305
|
+
authoritative: false
|
|
306
|
+
row_filter: /jobdetails/
|
|
307
|
+
fields:
|
|
308
|
+
title: path2_title
|
|
309
|
+
id: path1
|
|
310
|
+
url: loc
|
|
311
|
+
- name: Louisiana Blue
|
|
312
|
+
platform: workday
|
|
313
|
+
slug: bcbsla
|
|
314
|
+
source_of_record: manual
|
|
315
|
+
last_verified: 2026-08-13
|
|
316
|
+
workday_tenant: bcbsla
|
|
317
|
+
workday_site: Generation_Blue
|
|
318
|
+
workday_dc: wd1
|
|
319
|
+
workday_facet: workerSubType:c705db17b0571036e207c48eba5796e4
|
|
320
|
+
notes: '2026-08-13: official Workday endpoint verified; its Intern facet has eight
|
|
321
|
+
listings.'
|
|
322
|
+
- name: Louisiana State University (LSU)
|
|
323
|
+
platform: workday
|
|
324
|
+
slug: lsu
|
|
325
|
+
source_of_record: discover
|
|
326
|
+
last_verified: 2026-08-16
|
|
327
|
+
workday_tenant: lsu
|
|
328
|
+
workday_site: lsuwaiver
|
|
329
|
+
workday_dc: wd1
|
|
330
|
+
notes: '2026-08-16: coordinates taken from this employer''s own apply URL, then
|
|
331
|
+
verified by a scratch sync (1 posting(s), 0 kept)'
|
|
332
|
+
- name: Loyalty Juggernaut
|
|
333
|
+
platform: bamboohr
|
|
334
|
+
slug: lji
|
|
335
|
+
source_of_record: openjobs
|
|
336
|
+
enabled: false
|
|
337
|
+
notes: '2026-08-08: bamboohr publishes no board name, so a 200 with jobs is not
|
|
338
|
+
evidence of the right company; needs a human to open the board once'
|
|
339
|
+
- name: LPL Financial Holdings
|
|
340
|
+
platform: workday
|
|
341
|
+
slug: lplfinancial
|
|
342
|
+
source_of_record: discover
|
|
343
|
+
last_verified: *id006
|
|
344
|
+
workday_tenant: lplfinancial
|
|
345
|
+
workday_site: university
|
|
346
|
+
workday_dc: wd1
|
|
347
|
+
notes: '2026-08-14: verified by a real sync — this board returned postings, which
|
|
348
|
+
is the only verification a Workday tenant can have without an offline probe'
|
|
349
|
+
- name: Lucid Motors
|
|
350
|
+
platform: greenhouse
|
|
351
|
+
slug: lucidmotors
|
|
352
|
+
source_of_record: discover
|
|
353
|
+
last_verified: *id004
|
|
354
|
+
- name: Lucidya
|
|
355
|
+
platform: workable
|
|
356
|
+
slug: lucidya
|
|
357
|
+
source_of_record: discover
|
|
358
|
+
last_verified: 2026-08-16
|
|
359
|
+
notes: '2026-08-16: adopted from this employer''s own apply URL, then paused to
|
|
360
|
+
match the rest of the workable platform, which is parked until 2026-08-18 after
|
|
361
|
+
two 429s in one day.'
|
|
362
|
+
- name: Lucky VR
|
|
363
|
+
platform: breezy
|
|
364
|
+
slug: lucky-vr
|
|
365
|
+
source_of_record: openjobs
|
|
366
|
+
enabled: false
|
|
367
|
+
notes: '2026-08-08: breezy publishes no board name, so a 200 with jobs is not evidence
|
|
368
|
+
of the right company; needs a human to open the board once'
|
|
369
|
+
- name: Ludia
|
|
370
|
+
platform: bamboohr
|
|
371
|
+
slug: ludia
|
|
372
|
+
source_of_record: discover
|
|
373
|
+
last_verified: 2026-08-21
|
|
374
|
+
notes: '2026-08-21: bamboohr publishes no board name; its postings carry Ludia in
|
|
375
|
+
their own bilingual titles'
|
|
376
|
+
- name: Lumeto
|
|
377
|
+
platform: bamboohr
|
|
378
|
+
slug: lumeto
|
|
379
|
+
source_of_record: openjobs
|
|
380
|
+
last_verified: *id001
|
|
381
|
+
notes: '2026-08-11: enabled on slug evidence - bamboohr publishes no board name,
|
|
382
|
+
but the slug folds to the caption and the board returned 1 job(s)'
|
|
383
|
+
- name: Luminance
|
|
384
|
+
platform: workable
|
|
385
|
+
slug: luminance-1
|
|
386
|
+
source_of_record: discover
|
|
387
|
+
last_verified: 2026-08-17
|
|
388
|
+
notes: '2026-08-14: paused after two 429s in one day, the second after 7 requests;
|
|
389
|
+
paused_until resumed it.'
|
|
390
|
+
- name: Lyft
|
|
391
|
+
platform: greenhouse
|
|
392
|
+
slug: lyft
|
|
393
|
+
source_of_record: discover
|
|
394
|
+
last_verified: *id004
|
|
395
|
+
- name: Léger
|
|
396
|
+
platform: smartrecruiters
|
|
397
|
+
slug: leger2
|
|
398
|
+
source_of_record: discover
|
|
399
|
+
last_verified: *id002
|
|
400
|
+
notes: '2026-08-16: seen in feed postings but absent from the registry; discover
|
|
401
|
+
matched smartrecruiters/leger2 with 10 job(s) and the board named itself, so it
|
|
402
|
+
is polled directly instead of secondhand'
|