https://github.com/MadsLorentzen/ai-job-search
· scanned 2026-07-23 19:43 UTC (4 days, 17 hours ago)
15 raw signals (0 security + 15 graph)
Last scanned 4 days, 17 hours ago · v7 · last Δ +0.2 (diff) · 15 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 331 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
fail_data_error |
software | healthy | salary_lookup.py:46 |
collect_validation_issues |
software | healthy | salary_lookup.py:54 |
validate_data |
software | healthy | salary_lookup.py:128 |
read_raw_data |
software | healthy | salary_lookup.py:140 |
load_data |
software | healthy | salary_lookup.py:159 |
normalize |
software | healthy | salary_lookup.py:164 |
anglicize |
software | healthy | salary_lookup.py:173 |
extract_core_words |
software | healthy | salary_lookup.py:181 |
match_score_optimized |
software | healthy | salary_lookup.py:190 |
match_score |
software | healthy | salary_lookup.py:253 |
search_company |
software | healthy | salary_lookup.py:263 |
format_entry |
software | healthy | salary_lookup.py:292 |
print_validation_report |
software | healthy | salary_lookup.py:355 |
main |
software | healthy | salary_lookup.py:377 |
__init__ |
software | healthy | tests/test_convert_salary_excel.py:15 |
iter_rows |
software | healthy | tests/test_convert_salary_excel.py:18 |
__getitem__ |
software | healthy | tests/test_convert_salary_excel.py:26 |
test_index_headers_are_not_misclassified_as_count |
software | healthy | tests/test_convert_salary_excel.py:31 |
test_single_letter_n_only_matches_as_a_token |
software | healthy | tests/test_convert_salary_excel.py:36 |
test_count_headers_still_match_common_labels |
software | healthy | tests/test_convert_salary_excel.py:40 |
test_count_inside_word_does_not_make_count_header |
software | healthy | tests/test_convert_salary_excel.py:45 |
test_danish_compound_headers_still_match |
software | healthy | tests/test_convert_salary_excel.py:49 |
test_compound_patterns_match_as_substring_but_others_do_not |
software | healthy | tests/test_convert_salary_excel.py:52 |
test_parse_sheet_preserves_category_name_with_letter_n |
software | healthy | tests/test_convert_salary_excel.py:60 |
test_parse_sheet_groups_accounting_count_index_pair |
software | healthy | tests/test_convert_salary_excel.py:70 |
test_parse_sheet_normalizes_paired_category_name_with_under… |
software | healthy | tests/test_convert_salary_excel.py:80 |
test_parse_sheet_detects_company_column_with_token_header |
software | healthy | tests/test_convert_salary_excel.py:90 |
test_parse_sheet_detects_city_column_with_token_header |
software | healthy | tests/test_convert_salary_excel.py:107 |
test_skips_free_text_column |
software | healthy | tests/test_convert_salary_excel.py:123 |
test_skips_numeric_identifier_column |
software | healthy | tests/test_convert_salary_excel.py:135 |
test_keeps_numeric_salary_column |
software | healthy | tests/test_convert_salary_excel.py:147 |
test_parse_sheet_pairs_interleaved_count_index_columns_by_n… |
software | healthy | tests/test_convert_salary_excel.py:160 |
test_standalone_count_column_is_stored_as_count_not_index |
software | healthy | tests/test_convert_salary_excel.py:172 |
test_parse_sheet_non_adjacent_columns_no_cross_match |
software | healthy | tests/test_convert_salary_excel.py:188 |
run_linter |
software | healthy | tests/test_lint_skills.py:14 |
setUp |
software | healthy | tests/test_lint_skills.py:23 |
write_settings |
software | healthy | tests/test_lint_skills.py:54 |
test_valid_settings_pass |
software | healthy | tests/test_lint_skills.py:59 |
test_invalid_json_fails_cleanly |
software | healthy | tests/test_lint_skills.py:65 |
test_non_object_root_fails_cleanly |
software | healthy | tests/test_lint_skills.py:74 |
test_non_object_permissions_fails_cleanly |
software | healthy | tests/test_lint_skills.py:85 |
test_non_list_allow_fails_cleanly |
software | healthy | tests/test_lint_skills.py:96 |
test_command_file_exists_with_lint_compliant_header |
software | healthy | tests/test_notion_sync_command.py:26 |
test_command_file_is_substantive |
software | healthy | tests/test_notion_sync_command.py:34 |
test_personal_sync_state_is_gitignored |
software | healthy | tests/test_notion_sync_command.py:39 |
test_privacy_rule_documents_never_sync |
software | healthy | tests/test_notion_sync_command.py:46 |
test_lint_skills_passes |
software | healthy | tests/test_notion_sync_command.py:58 |
test_parses_pdfinfo_page_count |
software | healthy | tests/test_verify_pdf.py:11 |
test_rejects_output_without_page_count |
software | healthy | tests/test_verify_pdf.py:14 |
setUp |
software | healthy | tests/test_verify_pdf.py:20 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
salary_lookup.py |
software | healthy | salary_lookup.py |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
LICENSE |
software | healthy | LICENSE |
SECURITY.md |
software | healthy | SECURITY.md |
AGENTS.md |
software | healthy | AGENTS.md |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
SETUP.md |
software | healthy | SETUP.md |
__init__.py |
software | healthy | tests/__init__.py |
test_convert_salary_excel.py |
software | healthy | tests/test_convert_salary_excel.py |
test_lint_skills.py |
software | healthy | tests/test_lint_skills.py |
test_notion_sync_command.py |
software | healthy | tests/test_notion_sync_command.py |
test_verify_pdf.py |
software | healthy | tests/test_verify_pdf.py |
test_html_report_command.py |
software | healthy | tests/test_html_report_command.py |
test_security_guards.py |
software | healthy | tests/test_security_guards.py |
test_readme_assets.py |
software | healthy | tests/test_readme_assets.py |
test_outcome_followup.py |
software | healthy | tests/test_outcome_followup.py |
test_salary_lookup.py |
software | healthy | tests/test_salary_lookup.py |
README.md |
software | healthy | templates/README.md |
settings.json |
software | healthy | .claude/settings.json |
add-portal.md |
software | healthy | .claude/commands/add-portal.md |
html-report.md |
software | healthy | .claude/commands/html-report.md |
setup.md |
software | healthy | .claude/commands/setup.md |
interview.md |
software | healthy | .claude/commands/interview.md |
apply.md |
software | healthy | .claude/commands/apply.md |
notion-sync.md |
software | healthy | .claude/commands/notion-sync.md |
reset.md |
software | healthy | .claude/commands/reset.md |
gmail-sync.md |
software | healthy | .claude/commands/gmail-sync.md |
add-template.md |
software | healthy | .claude/commands/add-template.md |
rank.md |
software | healthy | .claude/commands/rank.md |
outcome.md |
software | healthy | .claude/commands/outcome.md |
expand.md |
software | healthy | .claude/commands/expand.md |
gemini-research-expert.md |
software | healthy | .claude/agents/gemini-research-expert.md |
SKILL.md |
software | healthy | .claude/skills/upskill/SKILL.md |
search-queries.md |
software | healthy | .claude/skills/job-scraper/search-queries.md |
SKILL.md |
software | healthy | .claude/skills/job-scraper/SKILL.md |
04-job-evaluation.md |
software | healthy | .claude/skills/job-application-assistant/04-job-evaluation.… |
01-candidate-profile.md |
software | healthy | .claude/skills/job-application-assistant/01-candidate-profi… |
03-writing-style.md |
software | healthy | .claude/skills/job-application-assistant/03-writing-style.md |
07-interview-prep.md |
software | healthy | .claude/skills/job-application-assistant/07-interview-prep.… |
06-cover-letter-templates.md |
software | healthy | .claude/skills/job-application-assistant/06-cover-letter-te… |
02-behavioral-profile.md |
software | healthy | .claude/skills/job-application-assistant/02-behavioral-prof… |
SKILL.md |
software | healthy | .claude/skills/job-application-assistant/SKILL.md |
05-cv-templates.md |
software | healthy | .claude/skills/job-application-assistant/05-cv-templates.md |
check_framework_version.py |
software | healthy | tools/check_framework_version.py |
security_guards.py |
software | healthy | tools/security_guards.py |
lint_skills.py |
software | healthy | tools/lint_skills.py |
verify_pdf.py |
software | healthy | tools/verify_pdf.py |
check_upstream_updates.py |
software | healthy | tools/check_upstream_updates.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
FakeWorksheet |
software | healthy | tests/test_convert_salary_excel.py:12 |
DetectColumnTypeTests |
software | healthy | tests/test_convert_salary_excel.py:30 |
LinterRepoFixture |
software | healthy | tests/test_lint_skills.py:22 |
SettingsShapeTests |
software | healthy | tests/test_lint_skills.py:58 |
NotionSyncCommandSpec |
software | healthy | tests/test_notion_sync_command.py:25 |
ParsePageCountTests |
software | healthy | tests/test_verify_pdf.py:10 |
VerifyPdfTests |
software | healthy | tests/test_verify_pdf.py:19 |
RunToolTests |
software | healthy | tests/test_verify_pdf.py:68 |
HtmlReportCommandFileTests |
software | healthy | tests/test_html_report_command.py:25 |
HtmlReportGitignoreTests |
software | healthy | tests/test_html_report_command.py:45 |
HtmlReportLintIntegrationTests |
software | healthy | tests/test_html_report_command.py:61 |
GuardRepoFixture |
software | healthy | tests/test_security_guards.py:24 |
CleanTreeTests |
software | healthy | tests/test_security_guards.py:60 |
PermissionGuardTests |
software | healthy | tests/test_security_guards.py:67 |
GitignoreGuardTests |
software | healthy | tests/test_security_guards.py:110 |
GitignoreNegationTests |
software | healthy | tests/test_security_guards.py:128 |
ManifestGuardTests |
software | healthy | tests/test_security_guards.py:151 |
RealRepoTests |
software | healthy | tests/test_security_guards.py:210 |
ReadmeImageReferences |
software | healthy | tests/test_readme_assets.py:17 |
OutcomeFollowupBranchSpec |
software | healthy | tests/test_outcome_followup.py:26 |
FormatEntryTests |
software | healthy | tests/test_salary_lookup.py:27 |
TestMatchScoreExactMatch |
software | healthy | tests/test_salary_lookup.py:95 |
TestMatchScoreSubstring |
software | healthy | tests/test_salary_lookup.py:106 |
TestMatchScoreShortQuery |
software | healthy | tests/test_salary_lookup.py:116 |
TestMatchScoreAnglicize |
software | healthy | tests/test_salary_lookup.py:126 |
TestMatchScoreNoOverlap |
software | healthy | tests/test_salary_lookup.py:139 |
SearchCompanyTests |
software | healthy | tests/test_salary_lookup.py:162 |
ValidateDataTests |
software | healthy | tests/test_salary_lookup.py:176 |
ValidateDataShapeTests |
software | healthy | tests/test_salary_lookup.py:246 |
ValidateFlagTests |
software | healthy | tests/test_salary_lookup.py:285 |
UtilityTests |
software | healthy | tests/test_salary_lookup.py:328 |
MatchScoreTests |
software | healthy | tests/test_salary_lookup.py:346 |
SearchCompanyRefactoredTests |
software | healthy | tests/test_salary_lookup.py:366 |
TestSearchCompanyBasicMatch |
software | healthy | tests/test_salary_lookup.py:390 |
TestSearchCompanyCityFilter |
software | healthy | tests/test_salary_lookup.py:415 |
TestSearchCompanyScoreThreshold |
software | healthy | tests/test_salary_lookup.py:449 |
VerificationError |
software | healthy | tools/verify_pdf.py:11 |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
templates |
software | healthy | templates |
.claude |
software | healthy | .claude |
commands |
software | healthy | .claude/commands |
agents |
software | healthy | .claude/agents |
skills |
software | healthy | .claude/skills |
upskill |
software | healthy | .claude/skills/upskill |
job-scraper |
software | healthy | .claude/skills/job-scraper |
job-application-assistant |
software | healthy | .claude/skills/job-application-assistant |
tools |
software | healthy | tools |
documents |
software | healthy | documents |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
lint |
cicd | healthy | .github/workflows/ci.yml |
security-guards |
cicd | healthy | .github/workflows/ci.yml |
python-tests |
cicd | healthy | .github/workflows/ci.yml |
dependency-review |
cicd | healthy | .github/workflows/ci.yml |
latex-smoke |
cicd | healthy | .github/workflows/ci.yml |
cli-checks |
cicd | healthy | .github/workflows/ci.yml |
placeholder-integrity |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-c9tfont6 |
software | healthy | /tmp/repobility-clone-c9tfont6 |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | .claude/skills/upskill/SKILL.md |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::README.md |
security | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/d492d6cb-825a-447a-b2d8-2fb086195140/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/d492d6cb-825a-447a-b2d8-2fb086195140/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.