Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/AdminController.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/AdminController.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/AdminController.java	(revision befb98800bd9171fa5ce8a5f29287e549f0ff5aa)
@@ -2,4 +2,5 @@
 
 import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterAdminDetailsDTO;
 import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
 import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.AdminService;
@@ -20,12 +21,12 @@
     @PostMapping("/change-access/{recruiter_id}")
     public ResponseEntity<?> changeAccess(@PathVariable("recruiter_id") Long recruiterId, @RequestBody boolean access) {
-        RecruiterDetailsDTO recruiterDetailsDTO = adminService.changeAccess(recruiterId, access);
-        return new ResponseEntity<>(recruiterDetailsDTO, HttpStatus.OK);
+        RecruiterAdminDetailsDTO recruiterAdminDetailsDTO = adminService.changeAccess(recruiterId, access);
+        return new ResponseEntity<>(recruiterAdminDetailsDTO, HttpStatus.OK);
     }
 
     @GetMapping("/recruiters")
     public ResponseEntity<?> findAllRecruiters() {
-        List<RecruiterDetailsDTO> recruiterDetailsDTOList = adminService.findAllRecruiters();
-        return new ResponseEntity<>(recruiterDetailsDTOList, HttpStatus.OK);
+        List<RecruiterAdminDetailsDTO> recruiterAdminDetailsDTOList = adminService.findAllRecruiters();
+        return new ResponseEntity<>(recruiterAdminDetailsDTOList, HttpStatus.OK);
     }
 }
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/JobSeekerController.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/JobSeekerController.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/JobSeekerController.java	(revision befb98800bd9171fa5ce8a5f29287e549f0ff5aa)
@@ -3,7 +3,14 @@
 
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.JobSeekerEditDetailsDTO;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterEditDetailsDTO;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.JobSeekerService;
+import org.springframework.core.io.Resource;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 @RestController
@@ -12,3 +19,33 @@
 @CrossOrigin(origins = "*")
 public class JobSeekerController {
+    private final JobSeekerService jobSeekerService;
+
+    @GetMapping("/{id}/edit-info")
+    public ResponseEntity<?> getJobSeekerEditDetailsById(@PathVariable("id") Long id) {
+        JobSeekerEditDetailsDTO jobSeekerEditDetailsDTO = jobSeekerService.getJobSeekerEditDetailsById(id);
+        return new ResponseEntity<>(jobSeekerEditDetailsDTO, HttpStatus.OK);
+    }
+
+    @PostMapping("/{id}/edit-info")
+    public ResponseEntity<?> editRecruiterDetailsById(@PathVariable("id") Long id, @RequestBody JobSeekerEditDetailsDTO jobSeekerEditDetailsDTO) {
+        JobSeekerEditDetailsDTO jobSeekerEditDetailsDTOresp = jobSeekerService.editJobSeekerDetailsById(id, jobSeekerEditDetailsDTO);
+        return new ResponseEntity<>(jobSeekerEditDetailsDTOresp, HttpStatus.OK);
+    }
+
+    @PostMapping("/submit-profile-pic")
+    public ResponseEntity<?> submitJobSeekerProfilePic(
+            @RequestParam("jobSeekerId") Long jobSeekerId,
+            @RequestParam("profilePicFile") MultipartFile profilePicFile) {
+        jobSeekerService.submitProfilePic(jobSeekerId, profilePicFile);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @GetMapping("/{id}/download-profile-pic")
+    public ResponseEntity<?> downloadJobSeekerProfilePic(@PathVariable("id") Long id) {
+        Resource resource = jobSeekerService.loadProfilePicAsResource(id);
+        return ResponseEntity.ok()
+                .contentType(MediaType.IMAGE_JPEG)
+                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
+                .body(resource);
+    }
 }
Index: jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/RecruiterController.java
===================================================================
--- jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/RecruiterController.java	(revision b2488107b82c95e4bdfdfd18b76b44f023786601)
+++ jobvista-backend/src/main/java/mk/ukim/finki/predmeti/internettehnologii/jobvistabackend/controllers/RecruiterController.java	(revision befb98800bd9171fa5ce8a5f29287e549f0ff5aa)
@@ -3,8 +3,13 @@
 import lombok.AllArgsConstructor;
 import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterDetailsDTO;
+import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.models.users.DTO.RecruiterEditDetailsDTO;
 import mk.ukim.finki.predmeti.internettehnologii.jobvistabackend.service.intef.RecruiterService;
+import org.springframework.core.io.Resource;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 @RestController
@@ -16,8 +21,37 @@
     private final RecruiterService recruiterService;
 
-    @GetMapping("/info/{id}")
+    @GetMapping("/{id}/info")
     public ResponseEntity<?> getRecruiterDetailsById(@PathVariable("id") Long id) {
         RecruiterDetailsDTO recruiterDetailsDTO = recruiterService.getRecruiterDetailsById(id);
         return new ResponseEntity<>(recruiterDetailsDTO, HttpStatus.OK);
     }
+
+    @GetMapping("/{id}/edit-info")
+    public ResponseEntity<?> getRecruiterEditDetailsById(@PathVariable("id") Long id) {
+        RecruiterEditDetailsDTO recruiterEditDetailsDTO = recruiterService.getRecruiterEditDetailsById(id);
+        return new ResponseEntity<>(recruiterEditDetailsDTO, HttpStatus.OK);
+    }
+
+    @PostMapping("/{id}/edit-info")
+    public ResponseEntity<?> editRecruiterDetailsById(@PathVariable("id") Long id, @RequestBody RecruiterEditDetailsDTO recruiterEditDetailsDTO) {
+        RecruiterEditDetailsDTO recruiterEditDetailsDTOresp = recruiterService.editRecruiterDetailsById(id, recruiterEditDetailsDTO);
+        return new ResponseEntity<>(recruiterEditDetailsDTOresp, HttpStatus.OK);
+    }
+
+    @PostMapping("/submit-logo")
+    public ResponseEntity<?> submitRecruiterLogo(
+            @RequestParam("recruiterId") Long recruiterId,
+            @RequestParam("logoFile") MultipartFile logoFile) {
+        recruiterService.submitLogo(recruiterId, logoFile);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+    @GetMapping("/{id}/download-logo")
+    public ResponseEntity<?> downloadRecruiterLogo(@PathVariable("id") Long id) {
+        Resource resource = recruiterService.loadLogoAsResource(id);
+        return ResponseEntity.ok()
+                .contentType(MediaType.IMAGE_JPEG)
+                .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
+                .body(resource);
+    }
 }
