The report
Every field of AtsReport and the parsed record, read from the engine's type declarations.
What check() returns. The report is a pure function of the resume, the policy and the options
(now included). Read from the engine's own type declarations (engine 0.11.0).
AtsReport
What check returns: the readiness score and the rules behind it, the fields an ATS would store, the job match when a posting was given, and advice that is never scored. A pure function of the resume, the policy and the options (now included); engine names what produced it.
Prop
Type
AtsRuleResult
One rule as it applied to this resume: whether it passed, what was found, and what to do.
Prop
Type
AtsCategoryScore
Per-category rollup of the deterministic rules. lost is the sum of the score impacts the category actually cost, possible the worst case it could have cost, so score is the percentage of that category the resume kept. Exposing the rollup is deliberately safe: it is an aggregate of numbers the full report already returns per rule, and it tells an anonymous caller where the problem is without handing over the rule-by-rule answer key.
Prop
Type
AtsRequirement
One requirement of the posting, judged against the resume, the way a per-qualification screener grades it (Workday HiredScore, Ashby): met or not, with the resume's own words as evidence. unverifiable: not something a resume settles — the right to work, a clearance — unless it says so; such a question is asked in the application, and often filters there.
Prop
Type
AtsKeywordGroups
Posting terms by kind: hard holds named skills and every other word, soft the policy's soft skills (keywordMatch.softSkills).
Prop
Type
AtsAdvice
Something worth knowing that is not scored: about the file (its name, size, a password, tracked changes or comments left in), about details that can invite age bias where the region pack says so, and about a target ATS the caller named. Never part of the readiness score, the categories, the failed checks or the fixes. The text comes from the policy (advice).
Prop
Type
AtsParsedResume
What a parser recovers from the document — the fields a recruiter actually searches on. Returned to the caller as well as scored, because showing the candidate the rows we recovered is more useful than any number: an empty employer or a missing date range is a column the hiring team's filter cannot match, and seeing it is what makes that concrete.
Prop
Type
AtsParsedRole
One row of work history, in the shape an applicant tracking system stores it.
Prop
Type
AtsParsedEducation
One row of education: the school, the credential as written, and its ISCED level.
Prop
Type
AtsParsedCertification
One certification or licence, as an ATS files it: "AWS Certified Solutions Architect – Associate, Amazon Web Services, 2023". date is when it was earned, expires when it lapses; either is null when the resume does not say.
Prop
Type
AtsParsedLanguage
One language the candidate speaks. language as written ("Deutsch", "English"), level the words that state the level as written ("native", "verhandlungssicher, C1"; empty when none), and cefr that level on the CEFR scale, or null when no level word the policy knows was given.
Prop
Type
AtsParsedDate
A date as a resume states it: the month (1–12) is null when only the year is written.
Prop
Type