How hemanth-kumar-n-arya/naukri-job-apply-ai works
Naukri Auto-Apply automates job discovery, screening, and applications using a manually authenticated browser session and facts from the applicant’s profile. Its primary workflow searches and filters Naukri listings, applies to eligible jobs, handles screening questions, verifies outcomes, and logs results; a separate LinkedIn path supports Easy Apply. Login capture and resume refresh are distinct utilities. The README also describes a mobile dashboard and scheduler, but neither appears in the supplied file tree, so they are omitted. Main-script excerpts are partial; uncertain internal wiring is not shown.
Main entry points: linkedin_apply.py LinkedIn Easy Apply · profile.py Profile loader · naukri_apply.py Screening chat · naukri_refresh_resume.py Resume refresh
Components 20
Job applications
- Naukri search
naukri_apply.py - Job filtering
naukri_apply.py - Naukri application
naukri_apply.py - Screening chat
naukri_apply.py - Application log
applications_log.csv - LinkedIn Easy Apply
linkedin_apply.py
Applicant data and answers
- Profile loader
common/profile.py - Learned answers
common/learned_answers.py - Human prompts
common/human_input.py - LLM fallback
common/llm.py
Session and resume
- Resume refresh
naukri_refresh_resume.py - Login capture
login_capture.py - Naukri session
session_naukri.json - LinkedIn session
session_linkedin.json - Resume file
External services
- Gemini client
common/gemini.py - Groq client
common/groq_llm.py - Naukri
Other components
- Applicant
Connections 27
- Applicant → Login capture: logs in manually
- Login capture → Naukri session: saves session
- Login capture → LinkedIn session: saves session
- Applicant → Naukri search: starts run
- Applicant → LinkedIn Easy Apply: starts run
- Profile loader → Naukri search: provides roles
- Profile loader → Job filtering: provides criteria
- Naukri search → Naukri: searches listings
- Naukri search → Job filtering: checks listings
- Naukri application → Naukri: applies
- Naukri application → Screening chat: handles questions
- Screening chat → LLM fallback: requests draft
- LLM fallback → Gemini client: tries first
- LLM fallback → Groq client: quota fallback
- Screening chat → Human prompts: requests missing facts
- Screening chat → Learned answers: answer reuse
- Profile loader → LinkedIn Easy Apply: provides answers
- LinkedIn Easy Apply → Gemini client: drafts answers
- LinkedIn Easy Apply → LinkedIn: searches and applies
- Naukri application → Application log: logs outcomes
- LinkedIn Easy Apply → Application log: logs outcomes
- Naukri session → Naukri application: restores session
- LinkedIn session → LinkedIn Easy Apply: restores session
- Naukri session → Resume refresh: restores session
- Profile loader → Resume refresh: provides filename
- Resume refresh → Resume file: uploads resume
- Resume refresh → Naukri: updates profile