diff --git a/apps/applicant-tracking/src/components/ApplicantInfoPage/index.tsx b/apps/applicant-tracking/src/components/ApplicantInfoPage/index.tsx
new file mode 100644
index 0000000..5c5a320
--- /dev/null
+++ b/apps/applicant-tracking/src/components/ApplicantInfoPage/index.tsx
@@ -0,0 +1,65 @@
+import React from "react";
+
+type ApplicationStatus =
+ | "Pending Review"
+ | "Scheduling Interview"
+ | "Interview Scheduled"
+ | "Interview Complete"
+ | "Decision Made";
+
+type Decision = "Accepted" | "Waitlisted" | "Rejected";
+
+type Application = {
+ status: ApplicationStatus;
+ firstName: string;
+ lastName: string;
+ netid: string;
+ term: string;
+ interviewTime?: Date;
+ interviewMeetingLink?: string;
+ noShowCount?: number;
+ decision?: Decision;
+ decisionReason?: string;
+ notes?: string;
+};
+
+type Props = {
+ application: Application;
+};
+
+export default function ApplicantInfoPage({ application }: Props) {
+ return (
+
+
+ Applicant Tracking >> Applicants >> {application.firstName} {application.lastName}
+
+
+
+ Applicant: ({application.firstName} {application.lastName})
+
+
+
+
+
+
+ );
+}
+
+function LabeledField({ label, value }: { label: string; value: string }) {
+ return (
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/apps/applicant-tracking/src/components/SearchBar/index.tsx b/apps/applicant-tracking/src/components/SearchBar/index.tsx
new file mode 100644
index 0000000..bc44469
--- /dev/null
+++ b/apps/applicant-tracking/src/components/SearchBar/index.tsx
@@ -0,0 +1,34 @@
+import React from 'react';
+
+const SearchBar = ({ value, onChange }) => {
+ return (
+
+
+
+ );
+};
+
+const styles = {
+ container: {
+ display: 'flex',
+ alignItems: 'center',
+ padding: '0.5rem',
+ },
+ input: {
+ width: '250px',
+ height: '36px',
+ padding: '0 12px',
+ border: '1px solid #ccc',
+ borderRadius: '6px',
+ fontSize: '14px',
+ outline: 'none',
+ },
+};
+
+export default SearchBar;
\ No newline at end of file