acarey5 commited on
Commit
facfc8a
Β·
1 Parent(s): 70f34e2
NSBE 2026 Baltimore Company_ Schools - Companies.csv CHANGED
@@ -1,35 +1,35 @@
1
- Company List ,Pre-Conference interview or registartion links ,Column 4,Direct links to company Career/job openings page ,"Creator Donise Griffin: me on linkedln :)
2
  https://www.linkedin.com/in/donise-griffin/","idea from lasts years 2025 list follow @mohamedhaithvm
3
  https://www.linkedin.com/in/mohamed-ahmed-429302228/"
4
  3M,,,openings page ,,
5
  "ABB, Inc",2026 Annual NSBE Convention | ABB,, openings page ,"Download the Mobile App for 2026
6
  NSBE Annual Convention!",iOS:
7
- Abbott,https://www.jobs.abbott/us/en/event/690bb1ceaf6b261cdd97d267/National-Society-of-Black-Engineers-Conference-2026,, openings page ,,Android:
8
  Accenture,,, openings page ,FairControls is the AI intelligence hub for events.,
9
  AECOM,,, openings page ,Before the career fair you can:,
10
  Air products,,, openings page ,πŸ€– Instantly understand every company attending,
11
  Airbus,,, openings page ,AI summaries + suggested questions to ask recruiters.,
12
  Amazon,,,openings page ,,
13
  Apple ,,, openings page ,,
14
- Arcadis ,https://arcadis.eightfold.ai/events/candidate?plannedEventId=Oa34M69ekv&domain=arcadis.com,, openings page ,,
15
  Arconic,,, openings page ,,
16
  Arup US Inc.,,, openings page ,,
17
  Astrazeneca Phaaceuticals LP,,, openings page ,,
18
  Barnes Group,,, openings page ,,
19
- Bechtel,https://bechtel.recsolu.com/app/collect/event/oSDe4PqZi3dHMdvevlBHjw,, openings page ,,
20
  "Bentley Systems, Inc.", ,, openings page ,,
21
  Black Blockchain labs,,,openings page ,,
22
  Blue Origin,,, openings page ,,
23
- BNY Mellon,https://eofe.fa.us2.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/job/74341/?utm_medium=jobshare&utm_source=External+Job+Share,, openings page ,,
24
- Bohler Engineering,https://bohler.recsolu.com/app/collect/event/J5TOHMJAPIRuH2YeEciT6w,,openings page,,
25
- Bristol-Myers Squibb,https://app.eightfold.ai/events/candidate?plannedEventId=GRj3OxoJ,, openings page ,,
26
- Burns & Mcdonnell,https://burnsmcd.recsolu.com/app/collect/event/iF1_1Zs9E3lBPYpjJ1nbjw,, openings page ,,
27
- "Cadence Design Systems, Inc.",https://cadence.yello.co/app/collect/event/7cdPwuX2_SeybbUJ3LmK-g?utm_source=hsamplify&utm_medium=linkedin&utm_term=8e24b117-2b45-4061-a1a6-82a6ba199b83,, openings page ,,
28
  "Capital One, Inc.",,, openings page ,,
29
  "Cargill, Incorporated",,, openings page ,,
30
- Caterpillar Inc.,https://caterpillar.yello.co/app/collect/event/egBb1GTxd55C3z7aKjbaJw,, openings page ,,
31
- Cheveron ,https://chevron.wd5.myworkdayjobs.com/University/event/a377a322e71f1001ad4c7bfcbf060001/register,, openings page ,,
32
- Clorox,https://wd1.myworkdaysite.com/recruiting/clorox/Clorox/page/e10acc474cc31001f01c95bbe6f10000,, openings page ,,
33
  ConocoPhillips,,, openings page ,,
34
  Constellation Energy,,, openings page ,,
35
  "Cook Medical Holdings, Inc.",,, openings page ,,
@@ -44,7 +44,7 @@ DPR Construction,,, openings page ,,
44
  Draper,,, openings page ,,
45
  Duracell,,, openings page ,,
46
  Eaton Corporation,Find Eaton at NSBE,, openings page ,,
47
- "Edwards Lifesciences, LLC",https://flows.beamery.com/httpswwwedwardscomcareershome/edwards-nsbe-2026?utm_source=linkedin&utm_medium=video&utm_content=voe,, openings page ,,
48
  Ernst & Young LLP,,, openings page ,,
49
  "ESRI (Environmental Systems Research Institute, Inc.)",,, openings page ,,
50
  Estee lauder Companies ,,,openings page ,,
@@ -56,25 +56,25 @@ Ford Motor Company,"Ford Events 2 | Instagram, Facebook | Linktree
56
 
57
  Ford Pre-Registration Link",, openings page ,,
58
  Freeport-McMoRan Inc,,, openings page ,,
59
- GE Aerospace,https://careers.geaerospace.com/global/en/event/697cccfc19232421f311f22f/GE-Aerospace-NSBE-2026-National-Convention-and-Career-Fair,, openings page ,,
60
- GE Healthcare,https://careers.gehealthcare.com/global/en/event/6970f96419232421f311e00c/National-Society-of-Black-Engineers-NSBE-Convention-2026,, openings page ,,
61
- GE Vernova,https://olivia.paradox.ai/co/GEVernova32/Event/2026NSBEAnnualConvention,, openings page ,,
62
  "General Dynamics, Inc.",,, openings page ,,
63
  General Motors,,, openings page ,,
64
  GHD,,, openings page ,,
65
  Gilbane Building Company,,, openings page ,,
66
  Givelify,,, openings page ,,
67
- Goldman Sachs,https://higher.gs.com/campus?DIVISION=Engineering%20Division&EXPERIENCE_LEVEL=Summer%20Analyst&LOCATION=New%20York%7CDallas%7CSalt%20Lake%20City&page=1&sort=POSTED_DATE,, openings page ,,
68
  Granite Construction,,, openings page ,,
69
  Hensel Phelps,,, openings page ,,
70
- Honeywell,https://app.brazenconnect.com/a/honeywell/e/zq7jm?utm_source=event%20page&utm_medium=flyer&utm_campaign=honeywell%20nsbe%202026,,openings page,,
71
  Intel Corporation,,,openings page ,,
72
  IQT,,,openings page ,,
73
  Jabil Inc.,,, openings page ,,
74
- Jacobs,https://jacobs.avature.net/eventlisting/EventDetail?eventId=29715,, openings page ,,
75
  John Deere,,, openings page ,,
76
  Johnson & Johnson Family of Companies,,, openings page ,,
77
- Kiewit,https://olivia.paradox.ai/co/Kiewit27/Event/2026NSBEAnnualConvention,, openings page ,,
78
  KLA,,, openings page ,,
79
  L'Oreal,,,openings page ,,
80
  Lam Research Corporation,,, openings page ,,
@@ -85,12 +85,12 @@ Los Angeles Department of Water and Power,,, openings page ,,
85
  Marvell Technology,,, openings page ,,
86
  MathWorks,,,openings page ,,
87
  McCarthy Building Companies,,, openings page ,,
88
- "Merck & Co., Inc.",https://jobs.merck.com/us/en/event/68ac56791218cc52521fd372/2026-NSBE-Annual-Convention,, openings page ,,
89
  Michigan Department of Transportation,,,openings page ,,
90
  Micron,,,openings page ,,
91
  "Microsoft, Inc.",,, openings page ,,
92
  Morgan Stanley ,,,openings page ,,
93
- Mortenson Construction,https://mortenson.recsolu.com/app/collect/event/6669UqBJAL4x9TwP_MyomA,, openings page ,,
94
  "Nintendo of America, Inc.",,, openings page ,,
95
  Nucor Corporation,,, openings page ,,
96
  NVIDIA,,, openings page ,,
@@ -115,14 +115,14 @@ SSOE Group,,,openings page ,,
115
  Swinerton,,,openings page ,,
116
  Target Corporation ,,,openings page ,,
117
  TE Connectivity,,, openings page ,,
118
- Teledyne Technologies,https://teledyne.yello.co/app/collect/event/xZobTUiCcDSAQkNmciQr3Q,, openings page ,,
119
- "Terracon Consultants, Inc.",https://sjobs.brassring.com/TGnewUI/Search/home/HomeWithPreLoad?PageType=JobDetails&partnerid=25664&siteid=5383&jobid=5211397#jobDetails=5211397_5383,, openings page ,,
120
  Texas Department of Transportation,,,openings page ,,
121
  Texas Instruments,,, openings page ,,
122
- The Clorox Company,https://wd1.myworkdaysite.com/recruiting/clorox/Clorox/page/e10acc474cc31001f01c95bbe6f10000,, openings page ,,
123
  The Whiting-Turner Contracting Company,,, openings page ,,
124
  Toyota,,, openings page ,,
125
- "Trane Technologies, Inc.",https://careers.tranetechnologies.com/global/en/event/697bbe1219232421f311f0c9/NSBE-2026-Career-Fair-with-Trane-Technologies-Booth-1681B,, openings page ,,
126
  "Trimble, Inc.",,, openings page ,,
127
  Turner Construction,,, openings page ,,
128
  UL standards and enterprise,,,openings page ,,
@@ -132,8 +132,8 @@ Universal Destinations & Experiences,,, openings page ,,
132
  United States Postal Service (USPS),,, openings page ,,
133
  USAA,,, openings page ,,
134
  Vetex pharmaceuticals,,,openings page ,,
135
- Wabtec Corporation,https://careers.wabtec.com/events,, openings page ,,
136
  Walter P. Moore,,, openings page ,,
137
- Wells Fargo,https://talent.wellsfargojobs.com/flows/nsbe-annual-convention-2026-lyofuh0jm,, openings page ,,
138
  "WSP USA, Inc",,, openings page ,,
139
- Worley,RSVP,,openings page ,,
 
1
+ ο»ΏCompany List ,Pre-Conference interview or registartion links ,Column 4,Direct links to company Career/job openings page ,"Creator Donise Griffin: me on linkedln :)
2
  https://www.linkedin.com/in/donise-griffin/","idea from lasts years 2025 list follow @mohamedhaithvm
3
  https://www.linkedin.com/in/mohamed-ahmed-429302228/"
4
  3M,,,openings page ,,
5
  "ABB, Inc",2026 Annual NSBE Convention | ABB,, openings page ,"Download the Mobile App for 2026
6
  NSBE Annual Convention!",iOS:
7
+ Abbott,https://www.jobs.abbott/us/en/event/690bb1ceaf6b261cdd97d267/National-Society-of-Black-Engineers-Conference-2026,,https://www.jobs.abbott/us/en/event/690bb1ceaf6b261cdd97d267/National-Society-of-Black-Engineers-Conference-2026,,Android:
8
  Accenture,,, openings page ,FairControls is the AI intelligence hub for events.,
9
  AECOM,,, openings page ,Before the career fair you can:,
10
  Air products,,, openings page ,πŸ€– Instantly understand every company attending,
11
  Airbus,,, openings page ,AI summaries + suggested questions to ask recruiters.,
12
  Amazon,,,openings page ,,
13
  Apple ,,, openings page ,,
14
+ Arcadis ,https://arcadis.eightfold.ai/events/candidate?plannedEventId=Oa34M69ekv&domain=arcadis.com,,https://arcadis.eightfold.ai/events/candidate?plannedEventId=Oa34M69ekv&domain=arcadis.com,,
15
  Arconic,,, openings page ,,
16
  Arup US Inc.,,, openings page ,,
17
  Astrazeneca Phaaceuticals LP,,, openings page ,,
18
  Barnes Group,,, openings page ,,
19
+ Bechtel,https://bechtel.recsolu.com/app/collect/event/oSDe4PqZi3dHMdvevlBHjw,,https://bechtel.recsolu.com/app/collect/event/oSDe4PqZi3dHMdvevlBHjw,,
20
  "Bentley Systems, Inc.", ,, openings page ,,
21
  Black Blockchain labs,,,openings page ,,
22
  Blue Origin,,, openings page ,,
23
+ BNY Mellon,https://eofe.fa.us2.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/job/74341/?utm_medium=jobshare&utm_source=External+Job+Share,,https://eofe.fa.us2.oraclecloud.com/hcmUI/CandidateExperience/en/sites/CX_1001/job/74341/?utm_medium=jobshare&utm_source=External+Job+Share,,
24
+ Bohler Engineering,https://bohler.recsolu.com/app/collect/event/J5TOHMJAPIRuH2YeEciT6w,,https://bohler.recsolu.com/app/collect/event/J5TOHMJAPIRuH2YeEciT6w,,
25
+ Bristol-Myers Squibb,https://app.eightfold.ai/events/candidate?plannedEventId=GRj3OxoJ,,https://app.eightfold.ai/events/candidate?plannedEventId=GRj3OxoJ,,
26
+ Burns & Mcdonnell,https://burnsmcd.recsolu.com/app/collect/event/iF1_1Zs9E3lBPYpjJ1nbjw,,https://burnsmcd.recsolu.com/app/collect/event/iF1_1Zs9E3lBPYpjJ1nbjw,,
27
+ "Cadence Design Systems, Inc.",https://cadence.yello.co/app/collect/event/7cdPwuX2_SeybbUJ3LmK-g?utm_source=hsamplify&utm_medium=linkedin&utm_term=8e24b117-2b45-4061-a1a6-82a6ba199b83,,https://cadence.yello.co/app/collect/event/7cdPwuX2_SeybbUJ3LmK-g?utm_source=hsamplify&utm_medium=linkedin&utm_term=8e24b117-2b45-4061-a1a6-82a6ba199b83,,
28
  "Capital One, Inc.",,, openings page ,,
29
  "Cargill, Incorporated",,, openings page ,,
30
+ Caterpillar Inc.,https://caterpillar.yello.co/app/collect/event/egBb1GTxd55C3z7aKjbaJw,,https://caterpillar.yello.co/app/collect/event/egBb1GTxd55C3z7aKjbaJw,,
31
+ Cheveron ,https://chevron.wd5.myworkdayjobs.com/University/event/a377a322e71f1001ad4c7bfcbf060001/register,,https://chevron.wd5.myworkdayjobs.com/University/event/a377a322e71f1001ad4c7bfcbf060001/register,,
32
+ Clorox,https://wd1.myworkdaysite.com/recruiting/clorox/Clorox/page/e10acc474cc31001f01c95bbe6f10000,,https://wd1.myworkdaysite.com/recruiting/clorox/Clorox/page/e10acc474cc31001f01c95bbe6f10000,,
33
  ConocoPhillips,,, openings page ,,
34
  Constellation Energy,,, openings page ,,
35
  "Cook Medical Holdings, Inc.",,, openings page ,,
 
44
  Draper,,, openings page ,,
45
  Duracell,,, openings page ,,
46
  Eaton Corporation,Find Eaton at NSBE,, openings page ,,
47
+ "Edwards Lifesciences, LLC",https://flows.beamery.com/httpswwwedwardscomcareershome/edwards-nsbe-2026?utm_source=linkedin&utm_medium=video&utm_content=voe,,https://flows.beamery.com/httpswwwedwardscomcareershome/edwards-nsbe-2026?utm_source=linkedin&utm_medium=video&utm_content=voe,,
48
  Ernst & Young LLP,,, openings page ,,
49
  "ESRI (Environmental Systems Research Institute, Inc.)",,, openings page ,,
50
  Estee lauder Companies ,,,openings page ,,
 
56
 
57
  Ford Pre-Registration Link",, openings page ,,
58
  Freeport-McMoRan Inc,,, openings page ,,
59
+ GE Aerospace,https://careers.geaerospace.com/global/en/event/697cccfc19232421f311f22f/GE-Aerospace-NSBE-2026-National-Convention-and-Career-Fair,,https://careers.geaerospace.com/global/en/event/697cccfc19232421f311f22f/GE-Aerospace-NSBE-2026-National-Convention-and-Career-Fair,,
60
+ GE Healthcare,https://careers.gehealthcare.com/global/en/event/6970f96419232421f311e00c/National-Society-of-Black-Engineers-NSBE-Convention-2026,,https://careers.gehealthcare.com/global/en/event/6970f96419232421f311e00c/National-Society-of-Black-Engineers-NSBE-Convention-2026,,
61
+ GE Vernova,https://olivia.paradox.ai/co/GEVernova32/Event/2026NSBEAnnualConvention,,https://olivia.paradox.ai/co/GEVernova32/Event/2026NSBEAnnualConvention,,
62
  "General Dynamics, Inc.",,, openings page ,,
63
  General Motors,,, openings page ,,
64
  GHD,,, openings page ,,
65
  Gilbane Building Company,,, openings page ,,
66
  Givelify,,, openings page ,,
67
+ Goldman Sachs,https://higher.gs.com/campus?DIVISION=Engineering%20Division&EXPERIENCE_LEVEL=Summer%20Analyst&LOCATION=New%20York%7CDallas%7CSalt%20Lake%20City&page=1&sort=POSTED_DATE,,https://higher.gs.com/campus?DIVISION=Engineering%20Division&EXPERIENCE_LEVEL=Summer%20Analyst&LOCATION=New%20York%7CDallas%7CSalt%20Lake%20City&page=1&sort=POSTED_DATE,,
68
  Granite Construction,,, openings page ,,
69
  Hensel Phelps,,, openings page ,,
70
+ Honeywell,https://app.brazenconnect.com/a/honeywell/e/zq7jm?utm_source=event%20page&utm_medium=flyer&utm_campaign=honeywell%20nsbe%202026,,https://app.brazenconnect.com/a/honeywell/e/zq7jm?utm_source=event%20page&utm_medium=flyer&utm_campaign=honeywell%20nsbe%202026,,
71
  Intel Corporation,,,openings page ,,
72
  IQT,,,openings page ,,
73
  Jabil Inc.,,, openings page ,,
74
+ Jacobs,https://jacobs.avature.net/eventlisting/EventDetail?eventId=29715,,https://jacobs.avature.net/eventlisting/EventDetail?eventId=29715,,
75
  John Deere,,, openings page ,,
76
  Johnson & Johnson Family of Companies,,, openings page ,,
77
+ Kiewit,https://olivia.paradox.ai/co/Kiewit27/Event/2026NSBEAnnualConvention,,https://olivia.paradox.ai/co/Kiewit27/Event/2026NSBEAnnualConvention,,
78
  KLA,,, openings page ,,
79
  L'Oreal,,,openings page ,,
80
  Lam Research Corporation,,, openings page ,,
 
85
  Marvell Technology,,, openings page ,,
86
  MathWorks,,,openings page ,,
87
  McCarthy Building Companies,,, openings page ,,
88
+ "Merck & Co., Inc.",https://jobs.merck.com/us/en/event/68ac56791218cc52521fd372/2026-NSBE-Annual-Convention,,https://jobs.merck.com/us/en/event/68ac56791218cc52521fd372/2026-NSBE-Annual-Convention,,
89
  Michigan Department of Transportation,,,openings page ,,
90
  Micron,,,openings page ,,
91
  "Microsoft, Inc.",,, openings page ,,
92
  Morgan Stanley ,,,openings page ,,
93
+ Mortenson Construction,https://mortenson.recsolu.com/app/collect/event/6669UqBJAL4x9TwP_MyomA,,https://mortenson.recsolu.com/app/collect/event/6669UqBJAL4x9TwP_MyomA,,
94
  "Nintendo of America, Inc.",,, openings page ,,
95
  Nucor Corporation,,, openings page ,,
96
  NVIDIA,,, openings page ,,
 
115
  Swinerton,,,openings page ,,
116
  Target Corporation ,,,openings page ,,
117
  TE Connectivity,,, openings page ,,
118
+ Teledyne Technologies,https://teledyne.yello.co/app/collect/event/xZobTUiCcDSAQkNmciQr3Q,,https://teledyne.yello.co/app/collect/event/xZobTUiCcDSAQkNmciQr3Q,,
119
+ "Terracon Consultants, Inc.",https://sjobs.brassring.com/TGnewUI/Search/home/HomeWithPreLoad?PageType=JobDetails&partnerid=25664&siteid=5383&jobid=5211397#jobDetails=5211397_5383,,https://sjobs.brassring.com/TGnewUI/Search/home/HomeWithPreLoad?PageType=JobDetails&partnerid=25664&siteid=5383&jobid=5211397#jobDetails=5211397_5383,,
120
  Texas Department of Transportation,,,openings page ,,
121
  Texas Instruments,,, openings page ,,
122
+ The Clorox Company,https://wd1.myworkdaysite.com/recruiting/clorox/Clorox/page/e10acc474cc31001f01c95bbe6f10000,,https://wd1.myworkdaysite.com/recruiting/clorox/Clorox/page/e10acc474cc31001f01c95bbe6f10000,,
123
  The Whiting-Turner Contracting Company,,, openings page ,,
124
  Toyota,,, openings page ,,
125
+ "Trane Technologies, Inc.",https://careers.tranetechnologies.com/global/en/event/697bbe1219232421f311f0c9/NSBE-2026-Career-Fair-with-Trane-Technologies-Booth-1681B,,https://careers.tranetechnologies.com/global/en/event/697bbe1219232421f311f0c9/NSBE-2026-Career-Fair-with-Trane-Technologies-Booth-1681B,,
126
  "Trimble, Inc.",,, openings page ,,
127
  Turner Construction,,, openings page ,,
128
  UL standards and enterprise,,,openings page ,,
 
132
  United States Postal Service (USPS),,, openings page ,,
133
  USAA,,, openings page ,,
134
  Vetex pharmaceuticals,,,openings page ,,
135
+ Wabtec Corporation,https://careers.wabtec.com/events,,https://careers.wabtec.com/events,,
136
  Walter P. Moore,,, openings page ,,
137
+ Wells Fargo,https://talent.wellsfargojobs.com/flows/nsbe-annual-convention-2026-lyofuh0jm,,https://talent.wellsfargojobs.com/flows/nsbe-annual-convention-2026-lyofuh0jm,,
138
  "WSP USA, Inc",,, openings page ,,
139
+ Worley,RSVP,,openings page ,,
src/jobs/company_loader.py CHANGED
@@ -34,7 +34,7 @@ def _read_companies(csv_path: Path, source: str) -> List[CompanyRecord]:
34
  with csv_path.open("r", encoding="utf-8-sig", newline="") as handle:
35
  reader = csv.DictReader(handle)
36
  if not reader.fieldnames:
37
- print(f"[company_loader] ERROR: CSV has no header row β€” {csv_path}")
38
  return companies
39
 
40
  raw_cols = [str(f) for f in reader.fieldnames]
@@ -68,7 +68,7 @@ def _read_companies(csv_path: Path, source: str) -> List[CompanyRecord]:
68
  skipped_no_url += 1
69
  if skipped_no_url <= 5:
70
  d_val = row.get(opening_page_key, "<missing>") if opening_page_key else "<no col4>"
71
- print(f"[company_loader] No URL for '{company}' β€” col4={d_val!r}")
72
 
73
  companies.append(
74
  CompanyRecord(
@@ -80,7 +80,7 @@ def _read_companies(csv_path: Path, source: str) -> List[CompanyRecord]:
80
  )
81
 
82
  print(
83
- f"[company_loader] Parsed {total_rows} data rows β†’ "
84
  f"{len(companies)} records kept "
85
  f"(skipped {skipped_no_name} no-name, {skipped_no_url} no-url)"
86
  )
@@ -109,7 +109,7 @@ def load_companies(default_csv: str, uploaded_csv: Optional[str] = None) -> List
109
  # --- Try uploaded CSV first ---
110
  uploaded_path = Path(uploaded_csv) if uploaded_csv else None
111
  if uploaded_path:
112
- print(f"[company_loader] Checking uploaded path: {uploaded_path} β€” exists={uploaded_path.exists()}")
113
  if uploaded_path.exists():
114
  companies = _read_companies(uploaded_path, source="upload")
115
  if companies:
@@ -121,7 +121,7 @@ def load_companies(default_csv: str, uploaded_csv: Optional[str] = None) -> List
121
 
122
  # --- Fall back to built-in CSV ---
123
  default_path = Path(default_csv)
124
- print(f"[company_loader] Checking default path: {default_path} β€” exists={default_path.exists()}")
125
  if not default_path.exists():
126
  raise FileNotFoundError(
127
  f"Default company CSV not found: {default_csv}. "
 
34
  with csv_path.open("r", encoding="utf-8-sig", newline="") as handle:
35
  reader = csv.DictReader(handle)
36
  if not reader.fieldnames:
37
+ print(f"[company_loader] ERROR: CSV has no header row - {csv_path}")
38
  return companies
39
 
40
  raw_cols = [str(f) for f in reader.fieldnames]
 
68
  skipped_no_url += 1
69
  if skipped_no_url <= 5:
70
  d_val = row.get(opening_page_key, "<missing>") if opening_page_key else "<no col4>"
71
+ print(f"[company_loader] No URL for '{company}' - col4={d_val!r}")
72
 
73
  companies.append(
74
  CompanyRecord(
 
80
  )
81
 
82
  print(
83
+ f"[company_loader] Parsed {total_rows} data rows -> "
84
  f"{len(companies)} records kept "
85
  f"(skipped {skipped_no_name} no-name, {skipped_no_url} no-url)"
86
  )
 
109
  # --- Try uploaded CSV first ---
110
  uploaded_path = Path(uploaded_csv) if uploaded_csv else None
111
  if uploaded_path:
112
+ print(f"[company_loader] Checking uploaded path: {uploaded_path} - exists={uploaded_path.exists()}")
113
  if uploaded_path.exists():
114
  companies = _read_companies(uploaded_path, source="upload")
115
  if companies:
 
121
 
122
  # --- Fall back to built-in CSV ---
123
  default_path = Path(default_csv)
124
+ print(f"[company_loader] Checking default path: {default_path} - exists={default_path.exists()}")
125
  if not default_path.exists():
126
  raise FileNotFoundError(
127
  f"Default company CSV not found: {default_csv}. "