AI-Powered Resume Screening with Spring Boot
Controller Layer
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
import [Link];
import [Link];
@RestController
@RequestMapping("/api/resume")
public class ResumeController {
@Autowired
private ResumeScreeningService resumeScreeningService;
@PostMapping("/analyze")
public ResumeResponse analyzeResume(@RequestParam("file") MultipartFile file,
@RequestBody ResumeRequest request) throws IOException {
String extractedText = [Link](file);
String aiAnalysis = [Link](extractedText,
[Link]());
return new ResumeResponse(aiAnalysis);
}
}
Service Layer
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@Service
public class ResumeScreeningService {
private final OpenAiService openAiService;
private final Tika tika;
public ResumeScreeningService(@Value("${[Link]}") String apiKey) {
[Link] = new OpenAiService(apiKey);
[Link] = new Tika();
}
public String extractTextFromResume(MultipartFile file) throws IOException {
return [Link]([Link]());
}
public String analyzeResume(String resumeText, String jobDescription) {
String prompt = "Compare the following resume with this job description: " +
jobDescription + "\n Resume: " + resumeText;
CompletionRequest request = [Link]()
.model("gpt-3.5-turbo")
.prompt(prompt)
.maxTokens(150)
.temperature(0.7)
.build();
CompletionResult result = [Link](request);
return [Link]().get(0).getText().trim();
}
}
DTO Layer
package [Link];
public class ResumeRequest {
private String jobDescription;
public String getJobDescription() {
return jobDescription;
}
public void setJobDescription(String jobDescription) {
[Link] = jobDescription;
}
}
public class ResumeResponse {
private String analysis;
public ResumeResponse(String analysis) {
[Link] = analysis;
}
public String getAnalysis() {
return analysis;
}
public void setAnalysis(String analysis) {
[Link] = analysis;
}
}
Configuration Layer
package [Link];
import [Link];
import [Link];
import [Link];
@Configuration
public class AppConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}