MCPcopy Create free account

hub / github.com/MadsLorentzen/ai-job-search / functions

Functions269 in github.com/MadsLorentzen/ai-job-search

↓ 18 callersFunctionallowed
(text, agent, path)
tools/robots_check.py:99
↓ 18 callersFunctionmatch_score
Compute a match score between 0 and 100 for ranking results.
salary_lookup.py:253
↓ 18 callersFunctionrun_guards
(root: Path)
tests/test_security_guards.py:16
↓ 17 callersFunctionparse_sheet
Parse a single worksheet into a list of company entries and detected categories.
tools/convert_salary_excel.py:111
↓ 14 callersFunctionsearch_company
Search for a company by name. Returns matching entries sorted by relevance.
salary_lookup.py:263
↓ 10 callersFunction_entry
(company, city="")
tests/test_salary_lookup.py:158
↓ 10 callersFunction_make_data
(*entries)
tests/test_salary_lookup.py:154
↓ 10 callersMethodassert_invalid_data
(self, data, expected_message)
tests/test_salary_lookup.py:177
↓ 7 callersFunction_sections
Split a command spec into {heading: body} by '##' headers. Splitting this way lets a fork's extra sections (e.g. this fork's '## Blocker logg
tests/test_rank_command.py:25
↓ 6 callersFunctiondetect_column_type
Detect whether a column header refers to count or index data.
tools/convert_salary_excel.py:102
↓ 6 callersFunctionis_robots_body
Does this actually look like a robots.txt? A misconfigured host can answer /robots.txt with 200 and an HTML error page. That body parses to z
tools/robots_check.py:47
↓ 6 callersFunctionverify_pdf
(pdf_path, expected_pages=None, min_chars=1, required_text=())
tools/verify_pdf.py:46
↓ 6 callersMethodwrite_gitignore
(self, rules)
tests/test_security_guards.py:53
↓ 6 callersMethodwrite_manifest
(self, data, path=None)
tests/test_security_guards.py:56
↓ 5 callersFunction_sections
Split a skill spec into {heading: body} by '##' headers. Splitting this way lets a fork's extra sections sit between the ones under test with
tests/test_upskill_skill.py:24
↓ 5 callersFunctionformat_entry
Format a single company entry for display.
salary_lookup.py:292
↓ 5 callersMethodrun_checker
(self, *args)
tests/test_check_upstream_updates.py:63
↓ 5 callersFunctionrun_linter
(root: Path)
tests/test_lint_skills.py:14
↓ 4 callersMethodadd_remote
(self, name: str, url: str)
tests/test_check_upstream_updates.py:52
↓ 4 callersFunctionanglicize
Convert Danish/Nordic characters to anglicized equivalents.
salary_lookup.py:173
↓ 4 callersFunctioncollect_validation_issues
Return (errors, warnings) for the salary data shape. errors -> hard problems that make lookups crash or emit wrong output (thes
salary_lookup.py:54
↓ 4 callersFunctionextract_core_words
Extract meaningful words from a company name, ignoring noise.
salary_lookup.py:181
↓ 4 callersMethodmaterialize_remote_ref
(self, name: str)
tests/test_check_upstream_updates.py:55
↓ 4 callersFunctionnormalize
Normalize string for robust fuzzy matching.
salary_lookup.py:164
↓ 4 callersMethodwrite_settings
(self, allow)
tests/test_security_guards.py:50
↓ 4 callersMethodwrite_settings
(self, data)
tests/test_lint_skills.py:54
↓ 3 callersMethod_run_validate
(self, payload)
tests/test_salary_lookup.py:288
↓ 3 callersFunctionheader_matches
Return True when a header contains a meaningful pattern match. Patterns match whole tokens; any pattern also listed in ``COMPOUND_PATTERNS``
tools/convert_salary_excel.py:76
↓ 3 callersFunctionparse_page_count
(pdfinfo_output)
tools/verify_pdf.py:35
↓ 3 callersFunctionrun_tool
(command)
tools/verify_pdf.py:15
↓ 3 callersFunctionsection
The body of one markdown section, up to the next heading of any depth.
tests/test_apply_records_application.py:42
↓ 3 callersMethodsetUp
(self)
tests/test_check_upstream_updates.py:89
↓ 3 callersFunctionvalidate_data
Validate the salary data shape before lookups use it. Preserves historical behavior: exits(1) on the first hard error with the same user-faci
salary_lookup.py:128
↓ 2 callersMethod_local_refs
(self)
tests/test_readme_assets.py:18
↓ 2 callersFunctionfail_data_error
Exit with a user-facing salary data setup error.
salary_lookup.py:46
↓ 2 callersFunctionmatch_score_optimized
Compute a match score between 0 and 100 using precalculated query values.
salary_lookup.py:190
↓ 2 callersFunctionread_raw_data
Load and JSON-parse salary_data.json; exit with a helpful message if missing/invalid.
salary_lookup.py:140
↓ 2 callersFunctionrel
(path: Path)
tools/lint_skills.py:31
↓ 2 callersFunctionrun_git
(args: list[str])
tools/check_framework_version.py:25
↓ 2 callersFunctionrun_git
(args: list[str])
tools/check_upstream_updates.py:39
↓ 1 callersFunction_fetch
curl, not urllib: some hosts (jobup.ch) hang urllib indefinitely while answering curl in under a second, and --max-time is a hard ceiling.
tools/robots_check.py:30
↓ 1 callersFunction_groups
user-agent -> [(is_allow, pattern)], tolerating blank lines inside a record.
tools/robots_check.py:66
↓ 1 callersFunction_match
RFC 9309 wildcard match; returns match length or -1. The pattern is percent-decoded to match the already-decoded path. Without this, "Disallo
tools/robots_check.py:86
↓ 1 callersFunctionbuild_parser
()
tools/verify_pdf.py:71
↓ 1 callersFunctioncheck_command
(path: Path)
tools/lint_skills.py:73
↓ 1 callersFunctioncheck_gitignore
()
tools/security_guards.py:129
↓ 1 callersFunctioncheck_package_manifests
()
tools/security_guards.py:156
↓ 1 callersFunctioncheck_permissions
()
tools/security_guards.py:97
↓ 1 callersFunctioncheck_settings
()
tools/lint_skills.py:80
↓ 1 callersFunctioncheck_skill
(path: Path)
tools/lint_skills.py:35
↓ 1 callersFunctiongate
(url)
tools/robots_check.py:109
↓ 1 callersFunctionget_base_commit
()
tools/check_framework_version.py:29
↓ 1 callersFunctionget_framework_version_from_text
(text: str)
tools/check_upstream_updates.py:47
↓ 1 callersFunctionget_remote_url
(remote_name: str)
tools/check_upstream_updates.py:43
↓ 1 callersFunctionhas_non_trivial_changes
(file_path: Path, base_commit: str)
tools/check_framework_version.py:73
↓ 1 callersMethoditer_rows
(self, min_row=1, max_row=None, values_only=False)
tests/test_convert_salary_excel.py:18
↓ 1 callersFunctionload_data
Load, parse, and validate salary_data.json for lookups.
salary_lookup.py:159
↓ 1 callersFunctionmain
()
salary_lookup.py:377
↓ 1 callersFunctionmain
()
tools/check_framework_version.py:110
↓ 1 callersFunctionmain
(argv=None)
tools/verify_pdf.py:92
↓ 1 callersFunctionmain
()
tools/check_upstream_updates.py:67
↓ 1 callersFunctionmain
()
tools/lint_skills.py:98
↓ 1 callersFunctionmain
()
tools/security_guards.py:189
↓ 1 callersFunctionmain
()
tools/convert_salary_excel.py:263
↓ 1 callersFunctionnormalize_text
(text)
tools/verify_pdf.py:42
↓ 1 callersFunctionparse_frontmatter
(path: Path)
tools/check_framework_version.py:55
↓ 1 callersFunctionparse_numeric_cell
Parse numeric Excel values, including localized string cells.
tools/convert_salary_excel.py:57
↓ 1 callersFunctionparse_semver
(version_str: str)
tools/check_upstream_updates.py:60
↓ 1 callersFunctionprint_validation_report
Print an actionable validation report. Returns the process exit code.
salary_lookup.py:355
↓ 1 callersFunctionstrip_type_patterns
Remove count/index words from a header to derive a category name.
tools/convert_salary_excel.py:94
Method__getitem__
(self, row_number)
tests/test_convert_salary_excel.py:26
Method__init__
(self, rows)
tests/test_convert_salary_excel.py:15
MethodsetUp
(self)
tests/test_verify_pdf.py:20
MethodsetUp
(self)
tests/test_apply_records_application.py:54
MethodsetUp
(self)
tests/test_check_upstream_updates.py:33
MethodsetUp
(self)
tests/test_check_upstream_updates.py:73
MethodsetUp
(self)
tests/test_check_upstream_updates.py:120
MethodsetUp
(self)
tests/test_check_upstream_updates.py:140
MethodsetUp
(self)
tests/test_security_guards.py:32
MethodsetUp
(self)
tests/test_salary_lookup.py:367
MethodsetUp
(self)
tests/test_lint_skills.py:23
Methodspy
(url, ua)
tests/test_robots_check.py:200
MethodtearDown
(self)
tests/test_verify_pdf.py:25
Methodtest_a_dash_leading_argument_fails_closed
(self)
tests/test_robots_check.py:181
Methodtest_a_genuinely_empty_robots_is_still_allow_all
RFC 9309: an empty file permits everything. Do not over-correct.
tests/test_robots_check.py:133
Methodtest_a_real_policy_is_recognised
(self)
tests/test_robots_check.py:138
Methodtest_aa_variant_matches_aa
(self)
tests/test_salary_lookup.py:131
Methodtest_accepts_expected_pages_and_text
(self, mock_run_tool)
tests/test_verify_pdf.py:29
Methodtest_agent_match_is_case_insensitive
(self)
tests/test_robots_check.py:81
Methodtest_all_local_image_references_resolve
(self)
tests/test_readme_assets.py:27
Methodtest_allowed_path_on_same_site_still_allowed
(self)
tests/test_robots_check.py:37
Methodtest_allowlisted_negations_pass
(self)
tests/test_security_guards.py:157
Methodtest_anglicize_replaces_danish_chars
(self)
tests/test_salary_lookup.py:335
Methodtest_anglicized_city_matches_danish_city
(self)
tests/test_salary_lookup.py:443
Methodtest_anglicized_match_score
(self)
tests/test_salary_lookup.py:355
Methodtest_api_block_and_sibling_path
(self)
tests/test_robots_check.py:55
Methodtest_benign_scripts_pass
(self)
tests/test_security_guards.py:203
Methodtest_blank_lines_inside_record_do_not_end_it
FAIL-OPEN REGRESSION: /cs/ is disallowed despite the blank lines.
tests/test_robots_check.py:33
Methodtest_categories_must_be_object_when_provided
(self)
tests/test_salary_lookup.py:239
Methodtest_city_filter_case_insensitive
(self)
tests/test_salary_lookup.py:438
next →1–100 of 269, ranked by callers