Software Requirements Specification (SRS): https://github.com/per5ect/JobFinder-Backend/blob/main/SRS%20JobFinder.pdf
Software Design Document (SDD): https://github.com/per5ect/JobFinder-Backend/blob/main/SDD%20Jobfinder.pdf
Figma design: https://www.figma.com/design/CLQlBV5p9wejuXqliZ6CZE/JobFinder?node-id=0-1&t=nKr3H12D26vQ6Lv6-1
JobFinder Backend is the server-side component for the JobFinder web application, built with Java Spring Boot.
It provides RESTful APIs for job search, user authentication, and document management, integrating with Apache PDFBox for parsing PDFs, Gemini API for advanced document processing, and Cloudinary API for image and file storage.
- 🔒 User authentication and authorization
- 💼 Job posting and search APIs
- 📝 Resume/document upload and parsing (PDF support via Apache PDFBox)
- 🤖 Gemini API integration for document analysis
- ☁️ Cloudinary API for file and image uploads
- 📄 CRUD operations for jobs and users
- 📊 Robust error handling and logging
- Java Spring Boot
- Apache PDFBox (PDF parser)
- Gemini API (document processing)
- Cloudinary API (cloud file storage)
- Maven
- DB PstgreSQL (database)
- Open application in your browser.
- Use the search bar to find jobs by keyword or location.
- Apply filters to narrow down results.
- Click on job listings to view detailed information.
- Analyzing a resume
- Obtaining suitable vacancies after analysis
- Creation of vacancies by the firm
- Administering the application by admin






Directory structure:
└── per5ect-jobfinder-backend/
├── mvnw
├── mvnw.cmd
├── pom.xml
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jobfinder/
│ │ │ └── backend/
│ │ │ └── jobfinderbackend/
│ │ │ ├── JobFinderBackendApplication.java
│ │ │ ├── config/
│ │ │ │ ├── AdminConfiguration.java
│ │ │ │ ├── ApplicationConfiguration.java
│ │ │ │ ├── CloudinaryConfiguration.java
│ │ │ │ ├── EmailConfiguration.java
│ │ │ │ ├── JWTAuthenticationFilter.java
│ │ │ │ ├── RoleSeederConfiguration.java
│ │ │ │ └── SecurityConfiguration.java
│ │ │ ├── controllers/
│ │ │ │ ├── AdminController.java
│ │ │ │ ├── CompanyAuthenticationController.java
│ │ │ │ ├── CompanyController.java
│ │ │ │ ├── PublicController.java
│ │ │ │ ├── UserAuthenticationController.java
│ │ │ │ └── UserController.java
│ │ │ ├── dto/
│ │ │ │ ├── CompanyDetailsDTO.java
│ │ │ │ ├── CreateTechnologyDTO.java
│ │ │ │ ├── CreateVacancyDTO.java
│ │ │ │ ├── LoginCompanyDTO.java
│ │ │ │ ├── LoginResponseDTO.java
│ │ │ │ ├── LoginUserDTO.java
│ │ │ │ ├── RegisterCompanyDTO.java
│ │ │ │ ├── RegisterUserDTO.java
│ │ │ │ ├── ResponsesToVacancyDTO.java
│ │ │ │ ├── ResumeAnalysisResponseDTO.java
│ │ │ │ ├── TechnologyDTO.java
│ │ │ │ ├── UserApplicationsDTO.java
│ │ │ │ ├── UserCoverLetterDTO.java
│ │ │ │ ├── UserDetailsDTO.java
│ │ │ │ ├── VacancyDetailsDTO.java
│ │ │ │ ├── VacancyFilterCriteriaDTO.java
│ │ │ │ ├── VerifyCompanyDTO.java
│ │ │ │ └── VerifyUserDTO.java
│ │ │ ├── models/
│ │ │ │ ├── ApplicationStatusEnum.java
│ │ │ │ ├── Company.java
│ │ │ │ ├── Resume.java
│ │ │ │ ├── Role.java
│ │ │ │ ├── RoleEnum.java
│ │ │ │ ├── Technology.java
│ │ │ │ ├── User.java
│ │ │ │ ├── UserFavoriteVacancy.java
│ │ │ │ ├── Vacancy.java
│ │ │ │ └── VacancyApplications.java
│ │ │ ├── repository/
│ │ │ │ ├── CompanyRepository.java
│ │ │ │ ├── ResumeRepository.java
│ │ │ │ ├── RoleRepository.java
│ │ │ │ ├── TechnologyRepository.java
│ │ │ │ ├── UserFavoriteVacancyRepository.java
│ │ │ │ ├── UserRepository.java
│ │ │ │ ├── VacancyApplicationsRepository.java
│ │ │ │ └── VacancyRepository.java
│ │ │ ├── services/
│ │ │ │ ├── AdminService.java
│ │ │ │ ├── CompanyAuthenticationService.java
│ │ │ │ ├── CompanyService.java
│ │ │ │ ├── EmailService.java
│ │ │ │ ├── JWTService.java
│ │ │ │ ├── ResumeAnalysisService.java
│ │ │ │ ├── ResumeService.java
│ │ │ │ ├── TechnologyService.java
│ │ │ │ ├── UserAuthenticationService.java
│ │ │ │ ├── UserService.java
│ │ │ │ ├── VacancyApplicationsService.java
│ │ │ │ ├── VacancyFilterService.java
│ │ │ │ ├── VacancyMatchingService.java
│ │ │ │ └── VacancyService.java
│ │ │ └── utils/
│ │ │ ├── GeminiClient.java
│ │ │ └── ResumeParser.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
│ └── java/
│ └── com/
│ └── jobfinder/
│ └── backend/
│ └── jobfinderbackend/
│ └── JobFinderBackendApplicationTests.java
└── .mvn/
└── wrapper/
└── maven-wrapper.properties