A sleek, standalone Next.js job search app โ find, track, and apply to jobs faster.
๐ Live Demo ยท ๐ Report a Bug ยท โจ Request a Feature
</div> ---๐ About
Job Scout is a standalone job-search dashboard built with Next.js. It queries the Adzuna jobs API through its own server-side route, keeping your API credentials safely on the backend and never exposed to the browser. It works independently โ no dependency on any external automation workflows.
Beyond search, Job Scout ships with a personal dashboard that connects to your Google Drive as a resume vault, so you can manage, favourite, and track jobs alongside your resumes in one place.
โจ Features
- ๐ Job Search โ Search live listings via the Adzuna API, defaulting to India-based results
- โก Fast Apply โ Jump straight to the original job listing in a new tab
- ๐ Resume Vault โ Connect Google Drive and upload PDF/DOC/DOCX resumes
- โญ Favourites & Seen Jobs โ Track what you've viewed and saved, stored locally in your browser
- ๐ Secure by Design โ API keys and credentials live server-side only, never shipped to the client
- โ๏ธ Zero Database โ No backend database required; state lives in the browser and Google Drive
- ๐ One-Click Deploy โ Ready to ship to Vercel as a standalone project
๐ ๏ธ Tech Stack
| Layer | Technology |
|---|---|
| Framework | Next.js |
| Language | TypeScript |
| Job Data | Adzuna API |
| Storage | Google Drive (resumes) + Browser storage (favourites/seen jobs) |
| Auth | Google OAuth 2.0 |
| Hosting | Vercel |
๐ Getting Started
1. Clone & Install
git clone https://github.com/DHAMI-HARSH/job_hunt.git
cd job_hunt
npm install
2. Configure Environment Variables
Create jobs-listing/.env.local from .env.example and add your Adzuna credentials:
ADZUNA_APP_ID=your_app_id
ADZUNA_APP_KEY=your_app_key
ADZUNA_COUNTRY=in
ADZUNA_LOCATION=India
๐ These credentials are only read server-side by
app/api/jobs/route.tsand are never exposed to the browser.
3. (Optional) Enable the Resume Vault
To use the dashboard's Google Drive resume vault, set up Google OAuth credentials and register this redirect URI in your Google Cloud OAuth settings:
http://localhost:3000/api/drive/callback
Then visit /dashboard, connect Google Drive, and upload a resume (PDF, DOC, or DOCX). The dashboard will list matching files from Drive with an Open link.
4. Run Locally
npm run dev
Visit http://localhost:3000 ๐
- Search keywords are sent to Adzuna via
/api/jobs, defaulting to India as the location - Fast Apply opens the original listing in a new tab
- Use
/dashboardfor your Drive resume vault, favourites, and seen jobs
โ๏ธ Deploy to Vercel
This folder deploys as its own Vercel project.
- In Vercel, set the project's Root Directory to
jobs-listingif importing the parent repository - Add the following environment variables in your Vercel project settings:
ADZUNA_APP_ID
ADZUNA_APP_KEY
ADZUNA_COUNTRY=in
ADZUNA_LOCATION=India
GOOGLE_OAUTH_CLIENT_ID
GOOGLE_OAUTH_CLIENT_SECRET
GOOGLE_DRIVE_FOLDER_ID # optional
- After deployment, add your production callback URL to Google Cloud OAuth:
https://YOUR-VERCEL-DOMAIN/api/drive/callback
โ ๏ธ Never commit
.env,.env.local, or any API keys to the repository.
๐๏ธ Architecture Notes
- No database โ favourites, seen jobs, and the saved job cache live entirely in the user's browser
- Resume storage โ resume files live in Google Drive, not on the app's servers
- Server-isolated secrets โ all third-party API credentials are read only in server-side routes
๐ License
This project is open source and available for personal and educational use.
<div align="center"> Built by [**Harsh Dhami**](https://github.com/DHAMI-HARSH) </div>