Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/MadsLorentzen/ai-job-search
/ types & classes
Types & classes
85 in github.com/MadsLorentzen/ai-job-search
⨍
Functions
414
◇
Types & classes
85
↳
Endpoints
6
↓ 19 callers
Class
FakeWorksheet
tests/test_convert_salary_excel.py:13
↓ 3 callers
Class
VerificationError
Raised when a generated PDF does not satisfy its checks.
tools/verify_pdf.py:11
Class
AlreadyAppliedTests
tests/test_upstream_triage.py:115
Class
ApplyArchivesThePosting
Step 6b must also write the posting text it is holding to the archive.
tests/test_apply_records_application.py:253
Class
ApplyRecordsApplication
/apply Step 6b writes the row that six other commands read.
tests/test_apply_records_application.py:53
Class
ArchiveNameIsOnePathComponent
`<company>_<role>` must derive a single path component. `Novo Nordisk A/S` used to derive `novo_nordisk_a/s_<role>/`: every command that *der
tests/test_apply_records_application.py:388
Class
CheckerRepoFixture
tests/test_check_framework_version.py:29
Class
CleanTreeTests
tests/test_security_guards.py:60
Class
CompoundCategoryPairingTests
tests/test_convert_salary_excel.py:313
Class
DeadlineSurvivesEveryWrite
#319: the deadline is carried through the whole pipeline and never dropped. The header migration must be header-line-only (inserting it mid-colum
tests/test_apply_records_application.py:313
Class
DetectColumnTypeTests
tests/test_convert_salary_excel.py:31
Class
DirectCloneFallbackTests
tests/test_check_upstream_updates.py:88
Class
DraftedMeansDraftedToEveryReader
`drafted` is non-final, so readers that mean *submitted* must say so. Each of these defines its set by exclusion from the final statuses, so
tests/test_apply_records_application.py:189
Class
ForkWithoutUpstreamRemoteTests
tests/test_check_upstream_updates.py:72
Class
FormatEntryTests
tests/test_salary_lookup.py:27
Class
FrameworkVersionGateTests
tests/test_check_framework_version.py:69
Class
GitignoreGuardTests
tests/test_security_guards.py:227
Class
GitignoreNegationTests
tests/test_security_guards.py:301
Class
GitignorePatternBehaviorTests
Pin the match semantics of the shipped .gitignore for upskill reports. The upskill skill resolves `upskill/` relative to its own directory (the
tests/test_security_guards.py:263
Class
GuardRepoFixture
Builds a minimal repo tree the guards pass on, then breaks one thing per test. The guard script resolves the repo root from its own location, so
tests/test_security_guards.py:24
Class
HookGuardTests
A hook in .claude/settings.json runs with no prompt when its event fires. The shape used here is the one the Shai-Hulud worm planted in its Augus
tests/test_security_guards.py:110
Class
HtmlReportCommandFileTests
Structural checks on the command file itself.
tests/test_html_report_command.py:26
Class
HtmlReportGitignoreTests
reports/ must be gitignored — it holds personal generated output.
tests/test_html_report_command.py:94
Class
HtmlReportLintIntegrationTests
lint_skills.py must pass after the command is added.
tests/test_html_report_command.py:147
Class
HtmlReportTrackerFieldTests
The dashboard is a consumer of every tracker column: the Step 1 field enumeration and the Step 3 table columns must stay in phase with the can
tests/test_html_report_command.py:46
Class
LinterRepoFixture
tests/test_lint_skills.py:22
Class
ManifestGuardTests
tests/test_security_guards.py:324
Class
MatchScoreTests
tests/test_salary_lookup.py:346
Class
MissingUpstreamRefTests
tests/test_upstream_triage.py:155
Class
NotionSyncCommandSpec
tests/test_notion_sync_command.py:25
Class
OutcomeFollowupBranchSpec
tests/test_outcome_followup.py:26
Class
ParseNumericCellLocaleTests
tests/test_convert_salary_excel.py:294
Class
ParsePageCountTests
tests/test_verify_pdf.py:10
Class
PermissionGuardTests
tests/test_security_guards.py:67
Class
RankCommandSpec
tests/test_rank_command.py:43
Class
ReaderCases
Spot-checks across readers that prove the vocabulary block is reachable from each command that makes decisions based on tracker status. Forma
tests/test_tracker_status_vocab.py:285
Class
ReadersBucketMap
Each reader that classifies tracker values must handle both spellings and must not include archive-only values in tracker buckets.
tests/test_tracker_status_vocab.py:161
Class
ReadmeImageReferences
tests/test_readme_assets.py:17
Class
RealRepoTests
tests/test_security_guards.py:383
Class
RelevanceFilterTests
tests/test_upstream_triage.py:72
Class
RunToolTests
tests/test_verify_pdf.py:68
Class
ScrapeProvenanceSpec
tests/test_scrape_provenance.py:31
Class
ScrapeSearchOutputContractTests
Every portal CLI's search output must carry the Step 2 contract fields.
tests/test_scrape_contract.py:53
Class
SearchCompanyRefactoredTests
tests/test_salary_lookup.py:366
Class
SearchCompanyTests
tests/test_salary_lookup.py:162
Class
SettingsShapeTests
tests/test_lint_skills.py:66
Class
SkillAndCommandCheckTests
check_skill()/check_command() are the linter's main job and were previously untested - only check_settings() had coverage, so deleting e.g. th
tests/test_lint_skills.py:114
Class
TestAgentSelection
tests/test_robots_check.py:82
Class
TestArgumentHardening
A URL can never be read by curl as an option. gate() rebuilds the target as scheme://host/robots.txt, so the gate path was never exposed; thi
tests/test_robots_check.py:215
Class
TestAtsExtractionEncoding
F34: every documented extraction command must pin the encoding.
tests/test_latex_guidance.py:115
Class
TestBulletBracketTrap
F9: no document or template doc may teach `\\item [text]`.
tests/test_latex_guidance.py:50
Class
TestCli
tests/test_robots_check.py:101
Class
TestCvSentinelsAreDataLocated
tests/test_placeholder_integrity.py:44
Class
TestForkWarningsAtTheDecisionPoint
tests/test_onboarding_privacy.py:32
Class
TestGmailQueryOperators
tests/test_gmail_sync_command.py:20
Class
TestMatchScoreAnglicize
tests/test_salary_lookup.py:126
Class
TestMatchScoreExactMatch
tests/test_salary_lookup.py:95
Class
TestMatchScoreNoOverlap
tests/test_salary_lookup.py:139
Class
TestMatchScoreShortQuery
tests/test_salary_lookup.py:116
Class
TestMatchScoreSubstring
tests/test_salary_lookup.py:106
Class
TestPathRules
tests/test_robots_check.py:32
Class
TestPercentEncodedRules
Rule patterns are percent-decoded to match the decoded request path. FAIL-OPEN REGRESSION: without this, a site that percent-encodes its own
tests/test_robots_check.py:196
Class
TestProfileSentinelIsDataLocated
tests/test_placeholder_integrity.py:77
Class
TestRecencyFallback
Step 1b.3 says to scope to the last 14 days via the portal's recency flag - but not every portal has one (jobdanmark offers no date filter or
tests/test_scrape_provenance.py:81
Class
TestResetCoversEveryDocumentsSubfolder
tests/test_reset_command.py:40
Class
TestSearchCompanyBasicMatch
tests/test_salary_lookup.py:390
Class
TestSearchCompanyCityFilter
tests/test_salary_lookup.py:415
Class
TestSearchCompanyScoreThreshold
tests/test_salary_lookup.py:449
Class
TestSetupChecksOriginBeforeWriting
tests/test_onboarding_privacy.py:61
Class
TestSoftTwoHundred
A 200 whose body is not a robots.txt used to grant permission. Found by adversarial review, not inspection. A misconfigured host answering /r
tests/test_robots_check.py:113
Class
TestSpecialCharacterGuidance
F31: both template guides must document the LaTeX escapes.
tests/test_latex_guidance.py:80
Class
TriageRepoFixture
Builds a real git history: a shared base, then an `upstream/master` ref that runs ahead, so the triage script can be exercised fully offline.
tests/test_upstream_triage.py:21
Class
UpToDateTests
tests/test_upstream_triage.py:64
Class
UpskillSkillSpec
tests/test_upskill_skill.py:38
Class
UpstreamCheckerRepoFixture
tests/test_check_upstream_updates.py:32
Class
UpstreamRefMissingFileTests
Simulates upstream renaming/deleting one framework file while the fork still has its own copy: git show then fails, and the checker used to sw
tests/test_check_upstream_updates.py:135
Class
UpstreamRemotePresentTests
tests/test_check_upstream_updates.py:119
Class
UtilityTests
tests/test_salary_lookup.py:328
Class
ValidateDataShapeTests
Category-shape and duplicate-name checks (reuses assert_invalid_data).
tests/test_salary_lookup.py:246
Class
ValidateDataTests
tests/test_salary_lookup.py:176
Class
ValidateFlagTests
End-to-end checks for the --validate pre-flight flow.
tests/test_salary_lookup.py:285
Class
VerifyPdfTests
tests/test_verify_pdf.py:19
Class
VocabularyBlockExists
The canonical definition must live in /outcome and nowhere else.
tests/test_tracker_status_vocab.py:58
Class
WontPortTests
tests/test_upstream_triage.py:140
Class
WorkflowGuardTests
The workflow must no-op on the upstream template, so a template clone never opens an issue by surprise. GitHub Actions can't run offline, so we
tests/test_upstream_triage.py:163