feat: externalize filter configuration and add global structured logging and job reprocessing functionality

This commit is contained in:
2026-08-14 15:27:50 -07:00
parent 890469fed8
commit 5510e3ac82
17 changed files with 257 additions and 80 deletions
+8 -4
View File
@@ -1,6 +1,10 @@
package filter
import "context"
import (
"context"
"github.com/hireme/hireme/internal/db"
)
type FilterResult struct {
Keep bool
@@ -10,7 +14,7 @@ type FilterResult struct {
type JobFilter interface {
Name() string
Process(ctx context.Context, title, rawContent string) (FilterResult, error)
Process(ctx context.Context, job *db.RawJob) (FilterResult, error)
}
type FilterPipeline struct {
@@ -21,10 +25,10 @@ func NewPipeline(filters ...JobFilter) *FilterPipeline {
return &FilterPipeline{filters: filters}
}
func (p *FilterPipeline) Execute(ctx context.Context, title, rawContent string) (bool, float64, string) {
func (p *FilterPipeline) Execute(ctx context.Context, job *db.RawJob) (bool, float64, string) {
var totalScore float64
for _, f := range p.filters {
res, err := f.Process(ctx, title, rawContent)
res, err := f.Process(ctx, job)
if err != nil {
return false, 0, err.Error()
}