JobHunter AI is a full-stack project that helps users upload their resume, extract structured information (name, skills, experience, education), and then chat with an AI agent that finds relevant job opportunities using real-time search.
It works like a mini “AI career copilot” powered by LangChain + Gemini on the backend and a polished React + Tailwind UI on the frontend.
-
Accepts PDF and TXT files
-
Converts file → Base64 → sends to backend
-
Backend extracts:
- Name
- Skills
- Experience
- Education
- Clean UI rendering of parsed resume
- Shows top skills, latest experience, education
- User can reset and re-upload
-
AI assistant that uses parsed resume context
-
You can ask:
- “Find me remote React jobs in Canada”
- “Rewrite my CV summary”
- “Suggest roles for my skillset”
- Auto-scroll chat
- Loading animations
- Clean components
- Works on mobile & desktop
- React (Vite)
- TailwindCSS
- Lucide Icons
- Fetch API
- FileReader API (for Base64)
- Node.js / Express
- LangChain
- Gemini AI
- Job search APIs or web search tools( Tavily)
src/
App.jsx
components/
Header
FileUpload
ParsedDataView
ChatMessage
utils/
fileToBase64.js
Create a .env file in the frontend:
VITE_API_BASE=http://localhost:4000
If not provided, the app defaults to http://localhost:4000.
npm install
npm run devThen open:
http://localhost:5173
POST /parse-resume
{
"fileBase64": "<Base64 string>"
}{
"parsedData": {
"name": "John Doe",
"skills": ["React", "Node.js"],
"experience": [
{ "title": "Frontend Dev", "company": "ABC", "duration": "2022-2024" }
],
"education": [
{ "degree": "BSc Computer Science", "institution": "XYZ University" }
]
},
"sessionId": "session_12345"
}POST /chat
{
"message": "Find me remote React jobs",
"sessionId": "session_12345"
}{
"text": "Here are remote React roles...",
"sources": [{ "uri": "https://example.com/job1", "title": "React Developer" }]
}- User uploads resume
- File converted to Base64 in frontend
- Backend parses and returns structured data
- Profile view shows extracted info
- Session starts
- User can chat with AI job assistant
- AI fetches real job listings & responds
- User applies/reset/upload new resume anytime
Build for production:
npm run buildPreview production build:
npm run previewFeel free to open issues, suggest improvements, or refactor UI components. PRs are always welcome.
MIT - Use freely for personal or commercial projects.