Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/MadsLorentzen/ai-job-search
/ functions
Functions
539 in github.com/MadsLorentzen/ai-job-search
⨍
Functions
539
◇
Types & classes
102
↳
Endpoints
8
↓ 26 callers
Function
run_guards
(root: Path)
tests/test_security_guards.py:16
↓ 24 callers
Function
entry
(**over)
tests/test_rank_state.py:26
↓ 24 callers
Function
parse_sheet
Parse a single worksheet into a list of company entries and detected categories.
tools/convert_salary_excel.py:128
↓ 24 callers
Method
run_tool
(self, *args, expect=0)
tests/test_rank_state.py:50
↓ 24 callers
Method
write_state
(self, seen)
tests/test_rank_state.py:47
↓ 19 callers
Function
allowed
(text, agent, path)
tools/robots_check.py:99
↓ 19 callers
Function
match_score
Compute a match score between 0 and 100 for ranking results.
salary_lookup.py:253
↓ 18 callers
Function
_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:30
↓ 17 callers
Method
read_state
(self)
tests/test_rank_state.py:59
↓ 14 callers
Function
search_company
Search for a company by name. Returns matching entries sorted by relevance.
salary_lookup.py:263
↓ 13 callers
Method
results
(self, payload)
tests/test_rank_state.py:203
↓ 13 callers
Function
section
Body of one markdown section, up to the next heading of any depth.
tests/test_tracker_status_vocab.py:49
↓ 10 callers
Function
_entry
(company, city="")
tests/test_salary_lookup.py:192
↓ 10 callers
Function
_make_data
(*entries)
tests/test_salary_lookup.py:188
↓ 10 callers
Method
assert_invalid_data
(self, data, expected_message)
tests/test_salary_lookup.py:211
↓ 9 callers
Function
run_linter
(root: Path)
tests/test_lint_skills.py:14
↓ 8 callers
Function
git
(root: Path, *args: str)
tests/test_upstream_triage.py:15
↓ 8 callers
Function
unreleased_problems
Return a human-readable problem per structural defect in [Unreleased].
tests/test_changelog_structure.py:38
↓ 7 callers
Function
_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
↓ 7 callers
Function
format_entry
Format a single company entry for display.
salary_lookup.py:292
↓ 7 callers
Method
run_triage
(self, *args)
tests/test_upstream_triage.py:57
↓ 7 callers
Function
section
The body of one markdown section, up to the next heading of any depth.
tests/test_apply_records_application.py:44
↓ 7 callers
Method
write
(self, rel: str, text: str)
tests/test_upstream_triage.py:44
↓ 7 callers
Method
write_settings_with_hooks
(self, hooks)
tests/test_security_guards.py:118
↓ 6 callers
Method
commit
(self, msg: str)
tests/test_upstream_triage.py:49
↓ 6 callers
Function
detect_column_type
Detect whether a column header refers to count or index data.
tools/convert_salary_excel.py:119
↓ 6 callers
Function
is_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 callers
Method
set_upstream_to_head
(self)
tests/test_upstream_triage.py:54
↓ 6 callers
Function
verify_pdf
(pdf_path, expected_pages=None, min_chars=1, required_text=(), dump_text=None)
tools/verify_pdf.py:90
↓ 6 callers
Method
write_gitignore
(self, rules)
tests/test_security_guards.py:53
↓ 6 callers
Method
write_manifest
(self, data, path=None)
tests/test_security_guards.py:56
↓ 5 callers
Function
git
(*args: str)
tools/upstream_triage.py:39
↓ 5 callers
Function
normalize
Normalize string for robust fuzzy matching.
salary_lookup.py:164
↓ 5 callers
Function
parse_numeric_cell
Parse numeric Excel values, including localized string cells.
tools/convert_salary_excel.py:57
↓ 5 callers
Method
run_checker
(self, *args)
tests/test_check_upstream_updates.py:63
↓ 4 callers
Function
_interview_research_step
()
tests/test_company_research_cache.py:44
↓ 4 callers
Method
add_remote
(self, name: str, url: str)
tests/test_check_upstream_updates.py:52
↓ 4 callers
Function
anglicize
Convert Danish/Nordic characters to anglicized equivalents.
salary_lookup.py:173
↓ 4 callers
Method
assert_no_unbraced_bracket_items
(self, path)
tests/test_latex_guidance.py:53
↓ 4 callers
Function
collect_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 callers
Function
extract_core_words
Extract meaningful words from a company name, ignoring noise.
salary_lookup.py:181
↓ 4 callers
Method
materialize_remote_ref
(self, name: str)
tests/test_check_upstream_updates.py:55
↓ 4 callers
Method
run_checker
(self)
tests/test_check_framework_version.py:56
↓ 4 callers
Function
section
The slice of text from the start marker up to the end marker.
tests/test_reset_command.py:88
↓ 4 callers
Method
write_settings
(self, allow)
tests/test_security_guards.py:50
↓ 4 callers
Method
write_settings
(self, data)
tests/test_lint_skills.py:62
↓ 3 callers
Function
_apply_research_step
apply.md's '### 1. Research the Company' subsection, isolated from the other numbered subsections under Step 3.
tests/test_company_research_cache.py:33
↓ 3 callers
Method
_run_validate
(self, payload)
tests/test_salary_lookup.py:322
↓ 3 callers
Function
_sections
Split a markdown spec into {heading: body} on a given '\\n<marker> ' prefix.
tests/test_company_research_cache.py:23
↓ 3 callers
Function
derive_contract_fields
()
tests/test_scrape_contract.py:37
↓ 3 callers
Function
extract_text_layer
Extract ATS-readable text. Returns (text, pages, extractor_name).
tools/verify_pdf.py:80
↓ 3 callers
Function
header_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:85
↓ 3 callers
Function
load_state
Return (document, seen-map). The map is mutated in place by callers.
tools/rank_state.py:61
↓ 3 callers
Function
parse_page_count
(pdfinfo_output)
tools/verify_pdf.py:43
↓ 3 callers
Function
run_tool
(command)
tools/verify_pdf.py:20
↓ 3 callers
Method
setUp
(self)
tests/test_check_upstream_updates.py:89
↓ 3 callers
Function
validate_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
↓ 3 callers
Method
write_skill
(self, frontmatter: str)
tests/test_lint_skills.py:120
↓ 2 callers
Method
_local_refs
(self)
tests/test_readme_assets.py:18
↓ 2 callers
Method
_run_main
Run main() against `payload` with the given argv. Returns (exit_code_or_None, stdout). main() returns normally on a successful render,
tests/test_salary_lookup.py:370
↓ 2 callers
Function
_sections
Split a command spec into {heading: body} by '## ' headers.
tests/test_setup_command.py:22
↓ 2 callers
Method
_substep_for
(self, filename: str)
tests/test_setup_command.py:47
↓ 2 callers
Method
assert_escapes_documented
(self, path)
tests/test_latex_guidance.py:83
↓ 2 callers
Method
assert_pdftotext_commands_pin_utf8
(self, path)
tests/test_latex_guidance.py:118
↓ 2 callers
Method
assert_warns
(self, body: str, where: str)
tests/test_onboarding_privacy.py:33
↓ 2 callers
Function
derive_stored_fields
()
tests/test_scrape_contract.py:84
↓ 2 callers
Function
fail_data_error
Exit with a user-facing salary data setup error.
salary_lookup.py:46
↓ 2 callers
Function
match_score_optimized
Compute a match score between 0 and 100 using precalculated query values.
salary_lookup.py:190
↓ 2 callers
Function
norm
(text)
tools/rank_state.py:99
↓ 2 callers
Function
normalize_text
(text)
tools/verify_pdf.py:50
↓ 2 callers
Function
parse_iso
Rule 6's defensive-parse rule: anything that is not YYYY-MM-DD is treated exactly like an absent value - never compared, never guessed at.
tools/rank_state.py:88
↓ 2 callers
Function
read_raw_data
Load and JSON-parse salary_data.json; exit with a helpful message if missing/invalid.
salary_lookup.py:140
↓ 2 callers
Function
rel
(path: Path)
tools/lint_skills.py:31
↓ 2 callers
Function
run_git
(args: list[str])
tools/check_framework_version.py:25
↓ 2 callers
Function
run_git
(args: list[str])
tools/check_upstream_updates.py:39
↓ 2 callers
Function
save_state
Atomic replace: a half-written seen_jobs.json loses the scrape history.
tools/rank_state.py:75
↓ 2 callers
Function
section
Return the body of a markdown section up to the next heading.
tests/test_latex_guidance.py:40
↓ 2 callers
Function
section
Body of a markdown section up to the next heading of the same level.
tests/test_onboarding_privacy.py:22
↓ 1 callers
Function
_cell_texts
(row)
tools/convert_salary_excel.py:148
↓ 1 callers
Function
_extract_pdftotext
(pdf_path)
tools/verify_pdf.py:72
↓ 1 callers
Function
_extract_pypdf
Return (text, pages) or None if pypdf is unavailable, raises, or yields no text.
tools/verify_pdf.py:54
↓ 1 callers
Function
_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 callers
Function
_groups
user-agent -> [(is_allow, pattern)], tolerating blank lines inside a record.
tools/robots_check.py:66
↓ 1 callers
Function
_hook_commands
Yield "<Event>:<command>" for every command a hook event would run. Fails closed: any shape this does not recognise yields a marker that cannot
tools/security_guards.py:139
↓ 1 callers
Function
_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 callers
Function
_print_crossref
(ref: str)
tools/upstream_triage.py:218
↓ 1 callers
Method
_step2_result_fields
The field names Step 2's scoring-agent JSON contract declares. Extracted from the fenced ```json block in Step 2 rather than hardcode
tests/test_rank_command.py:542
↓ 1 callers
Function
_steps
Split the skill spec into {heading: body} by '###' step headers. Splitting this way lets a fork's extra steps sit between the ones under test
tests/test_scrape_provenance.py:18
↓ 1 callers
Function
_substeps
Split a step body into {'### N. ...' heading: body}.
tests/test_setup_command.py:32
↓ 1 callers
Function
band
(score: int)
tools/rank_state.py:243
↓ 1 callers
Function
build_parser
()
tools/verify_pdf.py:131
↓ 1 callers
Function
check_command
(path: Path)
tools/lint_skills.py:73
↓ 1 callers
Function
check_gitignore
()
tools/security_guards.py:215
↓ 1 callers
Function
check_package_manifests
()
tools/security_guards.py:242
↓ 1 callers
Function
check_permissions
()
tools/security_guards.py:163
↓ 1 callers
Function
check_settings
()
tools/lint_skills.py:80
↓ 1 callers
Function
check_skill
(path: Path)
tools/lint_skills.py:35
↓ 1 callers
Function
commit_cell
(short: str, sha: str, slug: str | None)
tools/upstream_triage.py:107
↓ 1 callers
Method
derive
The Subfolder naming rule, executed exactly as documented: lowercase, underscores for spaces, drop every character that is not a lette
tests/test_apply_records_application.py:447
↓ 1 callers
Function
entry_location_verdict
location_verdict, falling back to a legacy verdict stored under `location` (Step 4: "an entry ranked before this rename may carry a legacy PASS/FA
tools/rank_state.py:118
next →
1–100 of 539, ranked by callers