Skip to content

Commit d0da927

Browse files
committed
[verified] Update Fall 2026 recruitment timeline
1 parent 8b4a334 commit d0da927

4 files changed

Lines changed: 48 additions & 16 deletions

File tree

17 KB
Loading

‎scripts/validate-seo-build.mjs‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,12 @@ for (const page of pages) {
154154
assert.match(mainHtml, /There is no live Model Context Protocol endpoint or manifest/i);
155155
assert.match(mainHtml, /Same-URL Accept: text\/markdown content negotiation is not provided/i);
156156
}
157+
if (page.path === "/signup/") {
158+
assert.match(mainHtml, /Updated Fall 2026 recruitment timeline/);
159+
assert.match(mainHtml, /September 9/);
160+
assert.match(mainHtml, /VLSB 2030/);
161+
assert.doesNotMatch(mainHtml, /September 7/);
162+
}
157163
}
158164

159165
const robots = await fs.readFile(path.join(distDirectory, "robots.txt"), "utf8");

‎src/components/RecruitmentBanner.tsx‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useEffect, useLayoutEffect, useState } from "react";
22
import { ArrowRight, Dna, X } from "lucide-react";
33
import { Link } from "react-router-dom";
44

5-
const dismissalKey = "compbio-fall-2026-recruitment-dismissed";
5+
const dismissalKey = "compbio-fall-2026-recruitment-update-2026-09-03-dismissed";
66
const coffeeChatLink =
77
"https://docs.google.com/document/d/1ZGq3KV4MprEdPDUu8v7QO9AuGSpB2eEmsyVCCK9nLDU/edit?usp=sharing";
88
const useBrowserLayoutEffect =
@@ -51,9 +51,9 @@ const RecruitmentBanner = () => {
5151
<Dna className="h-4 w-4 shrink-0 text-label" aria-hidden="true" />
5252
<p className="min-w-0 text-[13px] leading-5 text-foreground">
5353
<strong className="font-bold text-heading">
54-
We are currently recruiting for Fall 2026.
54+
Fall 2026 recruitment timeline updated.
5555
</strong>{" "}
56-
Sign up and schedule a coffee chat.
56+
Apply by September 11 at 5 PM.
5757
</p>
5858
</div>
5959

‎src/pages/SignUp.tsx‎

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { publicAssetPath } from "@/lib/publicAsset";
77

88
const INTEREST_FORM = "https://forms.gle/EQmWP1JWzDzrFji79";
99
const NEWSLETTER_FORM = "https://forms.gle/qCxn93mfunF3Dtep7";
10-
const RECRUITMENT_POST = "https://www.instagram.com/p/DcUXakNy7cj/";
10+
const INSTAGRAM_PROFILE = "https://www.instagram.com/ucb_compbio/";
1111
const COFFEE_CHAT_LINK =
1212
"https://docs.google.com/document/d/1ZGq3KV4MprEdPDUu8v7QO9AuGSpB2eEmsyVCCK9nLDU/edit?usp=sharing";
1313

@@ -32,6 +32,17 @@ const forms = [
3232
},
3333
];
3434

35+
const recruitmentEvents = [
36+
{ date: "August 26", title: "Applications and coffee chats open" },
37+
{ date: "August 27", title: "Calapalooza and tabling" },
38+
{ date: "September 2", title: "Info session #1", details: "8–10 PM · Hildebrand B56" },
39+
{ date: "September 3", title: "Meet the PMs and officers", details: "6–8 PM · the Glade" },
40+
{ date: "September 8", title: "Applicant social", details: "6–8 PM · location TBD" },
41+
{ date: "September 9", title: "Info session #2", details: "8–10 PM · VLSB 2030" },
42+
{ date: "September 11", title: "Application due", details: "5 PM" },
43+
{ date: "September 12–13", title: "Interviews" },
44+
];
45+
3546
const socials = [
3647
{
3748
name: "Instagram",
@@ -66,36 +77,51 @@ const SignUp = () => (
6677
<article className="overflow-hidden rounded border border-border bg-card lg:col-span-2">
6778
<div className="grid lg:grid-cols-[minmax(280px,0.72fr)_1.28fr]">
6879
<a
69-
href={RECRUITMENT_POST}
80+
href={INSTAGRAM_PROFILE}
7081
target="_blank"
7182
rel="noopener noreferrer"
72-
aria-label="View the Fall 2026 recruitment timeline on Instagram (opens in a new tab)"
73-
className="group relative block overflow-hidden bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring"
83+
aria-label="View current Fall 2026 recruitment updates on Instagram (opens in a new tab)"
84+
className="group relative block aspect-[4/5] self-start overflow-hidden bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring"
7485
>
7586
<img
7687
src={publicAssetPath("/recruitment/fa26/recruitment-timeline.webp")}
77-
alt="Fall 2026 recruitment timeline: applications open August 26, Calapalooza August 27, info sessions September 2 and 7, officers event September 3, applicant social September 8, applications due September 11 at 5 PM, and interviews September 12–13."
88+
alt="Updated Fall 2026 recruitment timeline graphic"
7889
width="1080"
7990
height="1350"
8091
loading="eager"
8192
decoding="async"
82-
className="h-full max-h-[42rem] w-full object-cover object-top transition-transform duration-300 group-hover:scale-[1.015]"
93+
className="h-full w-full object-contain object-top transition-opacity duration-300 group-hover:opacity-95"
8394
/>
8495
<span className="absolute inset-x-4 bottom-4 flex items-center justify-between gap-3 rounded bg-background/95 px-4 py-3 text-sm font-bold text-heading shadow-sm backdrop-blur-sm">
85-
View the original post
96+
View current updates
8697
<ExternalLink className="h-4 w-4 shrink-0 text-link" aria-hidden="true" />
8798
</span>
8899
</a>
89100

90101
<div className="flex flex-col justify-center p-6 md:p-8 lg:p-10">
91102
<p className="eyebrow">Fall 2026 recruitment</p>
92-
<h2 className="mt-3 text-3xl font-bold text-heading">Fall 2026 recruitment is open</h2>
103+
<h2 className="mt-3 text-3xl font-bold text-heading">Updated Fall 2026 recruitment timeline</h2>
93104
<p className="mt-4 max-w-[52ch] text-sm leading-relaxed text-muted-foreground">
94-
Applications and coffee chats are open now. Meet us at Calapalooza, join an info
95-
session, and get to know our project managers and officers before applications
96-
close September 11 at 5 PM.
105+
Applications and coffee chats are open. Join us at an upcoming event before
106+
applications close September 11 at 5 PM.
97107
</p>
98108

109+
<dl className="mt-6 grid gap-x-6 gap-y-4 sm:grid-cols-2">
110+
{recruitmentEvents.map((event) => (
111+
<div key={`${event.date}-${event.title}`}>
112+
<dt className="text-[11px] font-bold uppercase tracking-[0.14em] text-label">
113+
{event.date}
114+
</dt>
115+
<dd className="mt-1 text-sm font-bold text-heading">{event.title}</dd>
116+
{event.details ? (
117+
<dd className="mt-0.5 text-xs leading-relaxed text-muted-foreground">
118+
{event.details}
119+
</dd>
120+
) : null}
121+
</div>
122+
))}
123+
</dl>
124+
99125
<div className="mt-7 flex flex-wrap gap-3">
100126
<EnhancedButton asChild variant="gold" size="lg">
101127
<a href={INTEREST_FORM} target="_blank" rel="noopener noreferrer">
@@ -112,8 +138,8 @@ const SignUp = () => (
112138
</a>
113139
</EnhancedButton>
114140
<EnhancedButton asChild variant="outline" size="lg">
115-
<a href={RECRUITMENT_POST} target="_blank" rel="noopener noreferrer">
116-
View timeline on Instagram
141+
<a href={INSTAGRAM_PROFILE} target="_blank" rel="noopener noreferrer">
142+
View updates on Instagram
117143
<ExternalLink />
118144
<span className="sr-only"> (opens in a new tab)</span>
119145
</a>

0 commit comments

Comments
 (0)