draftme / filters /content_length.py
dokster's picture
Upload 105 files
7d2fea2 verified
Raw
History Blame Contribute Delete
731 Bytes
from filters.base import Filter
from models.config import AppSettings
from models.cv import CVData
from models.filters import FilterResult
class ContentLengthFilter(Filter):
name = "content_length"
priority = 0
def run(self, html: str, cv_data: CVData, jd_text: str, settings: AppSettings | None = None) -> FilterResult:
length = len(html)
passed = 500 <= length <= 50_000
feedback = "" if passed else f"HTML length must be between 500 and 50000 characters; got {length}."
score = min(length / 500, 1.0) if length < 500 else min(50_000 / max(length, 1), 1.0)
return FilterResult(filter_name=self.name, passed=passed, score=score, feedback=feedback, detail={"length": length})