27 lines
937 B
Go
27 lines
937 B
Go
package openai
|
|
|
|
import "github.com/jobs-scraper/internal/domain"
|
|
|
|
// JobAnalysisService defines the interface for job analysis services
|
|
type JobAnalysisService interface {
|
|
// AnalyzeJobDescription analyzes a job description against a CV
|
|
AnalyzeJobDescription(cv string, jobDesc domain.JobDescription) (*JobAnalysisResult, error)
|
|
}
|
|
|
|
// CVService defines the interface for CV-related services
|
|
type CVService interface {
|
|
// GenerateCV creates a tailored CV based on a job description
|
|
GenerateCV(originalCV string, jobDesc domain.JobDescription) (string, error)
|
|
|
|
// GenerateCoverLetter creates a cover letter based on CV and job description
|
|
GenerateCoverLetter(cv string, jobDesc domain.JobDescription, companyName string) (string, error)
|
|
}
|
|
|
|
// AIService combines all AI-related services
|
|
type AIService interface {
|
|
JobAnalysisService
|
|
CVService
|
|
}
|
|
|
|
// Ensure OpenAIService implements AIService
|
|
var _ AIService = (*OpenAIService)(nil)
|