To assess your ability to build a simple, interactive Next.js and a React.js application using modern web development best practices.
You will develop a Job Board Application where users can:
- View a list of job postings
- Filter jobs by category
- View details of a specific job
- Apply for a job using a simple form
-
Project Setup
- Initialize a Next.js project
- Use TypeScript for type safety.
- Use Tailwind CSS for styling.
- Utilize ESLint & Prettier for code formatting and best practices.
-
Features to Implement
-
[2.1] Job Listing Page (/)
- Fetch job listings from an external job API (e.g. JSearch API, Remotive API, or Adzuna API).
- Display job title, company, location, and category.
- Implement a search bar to filter jobs by title.
- Implement category-based filtering using buttons or a dropdown.
-
[2.2] Job Details Page (/job/[id])
- Show detailed information about the job when a user clicks on a job listing.
- Include job title, description, company details, and an “Apply Now” button.
-
[2.3] Apply for Job (/apply/[id])
- Create a simple form with the following fields:
- Name (Required)
- Email (Required, Valid Format)
- Phone Number (Optional)
- Resume Upload (PDF only, max 5MB)
- Validate form inputs and show appropriate error messages.
- Store submitted application data in local state or a JSON file (do not store in a database).
- Display a confirmation message after successful submission.
- Create a simple form with the following fields:
-
-
Technical Requirements
- Use React Hooks (useState, useEffect, useContext if needed).
- Implement Next.js Routing (getStaticProps / getServerSideProps for data fetching).
- Use Context API or a global state management library (Zustand, Recoil, or Redux Toolkit).
- Follow Mobile-First Design principles.
-
Bonus Points (Optional Enhancements)
- Implement Dark Mode toggle.
- Use Framer Motion for subtle animations.
- Deploy the app on Vercel.
- A GitHub repository with a README explaining how to run the project.
- A deployed link (if using Vercel or Netlify).
- Code should be clean, readable, and well-commented.
- Code Quality – Proper structure, reusability, and readability.
- Functionality – All core features should work as expected.
- UI/UX – Clean design, responsiveness, and user experience.
- Best Practices – Efficient state management, API handling, and accessibility.
- Bonus Implementations – Any additional features implemented beyond the requirements.
legacy
https://remotive.com/api/remote-jobs
Currently using JSearch API
-> / → All Jobs → View Job → /job/:jobId → Job Details → Apply → /apply/:jobId → Submit Form
- Dev: store in JSON
- Prod: dummy submission