1Business context
HireHub is a job portal plus applicant-tracking system. Candidates apply through a multi-step form with a résumé upload and screening questions; recruiters shortlist and schedule interviews.
Candidates filter jobs and apply through a 4-step form (contact, résumé upload, screening questions, review); recruiters sign in to shortlist, reject with a reason, view résumés and schedule interviews that update the candidate's status.
2Users & roles
- 👤 Candidate — searches, saves and applies for jobs
- 👤 Recruiter (recruiter@hirehub.dev / Hire@123) — reviews, shortlists, rejects and schedules
3Modules & screens
| Screen | Route | What it does |
|---|---|---|
| Find jobs | /apps/jobs | Search, location, experience, salary and remote filters |
| Job detail | /apps/jobs/j/[id] | Description, save and easy apply |
| Application | /apps/jobs/apply/[id] | Contact, résumé, screening questions, review |
| My applications | /apps/jobs/applications | Application statuses |
| Recruiter | /apps/jobs/recruiter | Recruiter login and job list |
| Applicants | /apps/jobs/recruiter/j/[id] | Shortlist, reject, schedule interview |
4Main end-to-end journey
Apply and get an interview
- Search QA remote jobs and open j1
- Easy apply with details, resume.pdf and screening answers
- Submit
- Log in as recruiter@hirehub.dev / Hire@123
- Shortlist APP-501 and schedule a weekday video interview
Expected: Application APP-501 created and status becomes Interview scheduled
5Business rules & validations
- Combined filtersBeginner
job-search, job-location, job-experience, job-salary and remote-only narrow job-count.
- Optional URL validationIntermediate
applicant-linkedin can be blank, but a non-linkedin.com/in URL shows error-applicant-linkedin.
- Upload rulesIntermediate
resume-file rejects .txt/.jpg and >2 MB; the next step is blocked until a valid file is chosen.
- Screening answersBeginner
q-experience, q-authorized-yes/no and q-notice are all required; review-* shows them.
- Two-role workflowAdvanced
Apply as candidate → recruiter shortlists and schedules → application-status shows “Interview scheduled”.
- Conditional actionsIntermediate
Only Applied rows show shortlist-*, only Shortlisted rows show schedule-*; Rejected rows show neither.
- Modal validationIntermediate
confirm-interview without day/time/mode shows schedule-error; weekends are disabled.
- Save jobsBeginner
save-job-<id> toggles aria-pressed (bookmark icon).
6Test data & credentials
- URL
- /apps/jobs
- Recruiter
- recruiter@hirehub.dev
- Password
- Hire@123
- Résumé
- PDF/DOCX ≤ 2 MB
7Glossary
- ATS
- Applicant tracking system — the recruiter side
- Screening questions
- Experience, work authorisation and notice period
- Interview scheduled
- Final status after shortlisting and scheduling
8Watch-outs for automation
- ⚠️Résumé: PDF/DOCX up to 2 MB
- ⚠️LinkedIn URL is optional but validated
- ⚠️Actions depend on status — Rejected rows show neither shortlist nor schedule
9Suggested test strategy
1 · Smoke
3
P1 positive and end-to-end cases — run on every build.
2 · Regression
16
All cases, incl. 6 negative and 2 edge — run before release.
3 · End-to-end
3
Full user journeys — run nightly.
Start with these smoke cases
- HIREHUB-01 — Apply to a job
- HIREHUB-02 — Recruiter schedules interview
- HIREHUB-E2E-01 — Apply and get an interview