Recruitr is a Spring Boot application designed to manage organizations, candidates, jobs, and vendor/client assignments. It provides REST APIs and a Swagger UI for easy interaction.
- Java 21 or higher
- MySQL server or Kubernetes cluster
kubectl apply -f deployment/You can run the Spring Boot application using your preferred IDE (IntelliJ, Eclipse, VS Code, etc.) or via command line:
./mvnw spring-boot:runchmod +x init-db.sh
./init-db-data.shinit-db-data.batCREATE INDEX idx_client_vendor ON vendor_client(client_id, vendor_id);
- Swagger UI: http://localhost:8080/swagger-ui/index.html
- OpenAPI docs: http://localhost:8080/v3/api-docs
Used for system-level access and initial setup:
- Username:
raman - Password:
admin
To change the default admin credentials, update
application.properties:
app.admin.username={user}
app.admin.password={pass}Note: If you change these values, make sure to also update the data initialization scripts accordingly.
| Organization | Username | Password |
|---|---|---|
| TalentBridge Staffing Solutions | hr@talentbridge.com | talentbridge@123 |
| NextHire Consulting | admin@nexthire.com | nexthire@123 |
| Global Edge Staffing | admin@globaledge.com | globaledge@123 |
| Microsoft Corporation | admin@microsoft.com | microsoft@123 |
| Blinkit Technologies Pvt. Ltd. | admin@blinkit.com | blinkit@123 |
-
Vendors and Clients:
- Implemented as a bidirectional relationship to simplify navigation between organizations and their vendors/clients.
-
Candidates and Jobs:
- Connected to the Organization table to easily track which organization owns which candidate or job.
-
Job Assignments:
- Implemented as a separate unidirectional entity connected to Candidates and Jobs.
- Avoids redundant references to the organization because it can be inferred via the candidate or job.
This design keeps the schema clean, avoids unnecessary joins, and maintains clear ownership hierarchies.
- Actuator: http://localhost:8080/actuator - Open Endpoint
- OpenAPI docs: http://localhost:8080/actuator/job-fill-rate - OrgAdmin Role
- Use the Swagger UI to explore all available APIs.
- Populate initial data before testing APIs to ensure that organizations, candidates, and jobs exist.
- Candidate and Job IDs used in scripts are predefined, ensure scripts are run in order to maintain correct associations.
