.gitignore
.python-version
CLAUDE.md
CONTEXT.md
README.md
pyproject.toml
.github/workflows/publish.yml
docs/cron-setup.md
docs/latex.md
docs/usage.md
docs/adr/0001-claude-cli-as-llm-backend.md
docs/adr/0002-seen-state-durable-via-syncthing.md
docs/adr/0003-dedup-alias-on-tuple-match.md
docs/adr/0004-layout-as-user-editable-python-module.md
docs/adr/0005-parser-threads-as-pure-producers.md
docs/adr/0006-seen-result-three-variant.md
docs/adr/0007-orchestrator-queue-topology.md
docs/adr/0010-failures-as-syncthing-files.md
docs/adr/0011-user-settings-and-paths-anchored-to-data-dir.md
docs/adr/0012-parser-location-resolution-policy.md
docs/adr/0013-external-redirect-skip-or-log.md
docs/adr/0014-classify-batching-and-worker-model.md
docs/adr/0015-claude-cli-pinned-model-and-tag-wrapped-output.md
docs/adr/0016-hardcoded-prompts-with-externalized-user-info-single-language.md
docs/adr/0017-no-dedup-discover-early-stop.md
docs/adr/0018-log-convention-components-by-layer.md
docs/adr/0019-prefilter-pure-title-only-blacklist.md
docs/adr/0020-match-tier-retired-judge-picks-top-n.md
docs/adr/0021-daily-results-file-replaces-trio.md
docs/adr/0022-structured-extracts-as-pool-members.md
docs/adr/0023-quota-sleep-and-retry.md
docs/adr/0024-cron-once-per-day-no-migration.md
docs/adr/0025-freshness-gate-drops-stale-listings.md
docs/adr/0026-triage-profile-reused-as-v2-authoring-context.md
docs/adr/0027-distribution-via-pypi-and-cron-upgrade.md
docs/adr/0028-search-terms-in-user-info-not-config.md
docs/agents/domain.md
docs/agents/issue-tracker.md
docs/agents/triage-labels.md
pycastle/.gitignore
src/application_pipeline/__init__.py
src/application_pipeline/__main__.py
src/application_pipeline/_context.py
src/application_pipeline/compile_cv_cmd.py
src/application_pipeline/failure_report.py
src/application_pipeline/freshness_gate.py
src/application_pipeline/init_cmd.py
src/application_pipeline/orchestrator.py
src/application_pipeline/parser_log.py
src/application_pipeline/prefilter_gate.py
src/application_pipeline/prompts.py
src/application_pipeline/renderer.py
src/application_pipeline/run_metrics.py
src/application_pipeline/status_display.py
src/application_pipeline/user_settings.py
src/application_pipeline.egg-info/PKG-INFO
src/application_pipeline.egg-info/SOURCES.txt
src/application_pipeline.egg-info/dependency_links.txt
src/application_pipeline.egg-info/entry_points.txt
src/application_pipeline.egg-info/requires.txt
src/application_pipeline.egg-info/top_level.txt
src/application_pipeline/config/__init__.py
src/application_pipeline/config/loader.py
src/application_pipeline/config/types.py
src/application_pipeline/dedup/__init__.py
src/application_pipeline/dedup/errors.py
src/application_pipeline/dedup/store.py
src/application_pipeline/extracts/__init__.py
src/application_pipeline/extracts/errors.py
src/application_pipeline/extracts/store.py
src/application_pipeline/http/__init__.py
src/application_pipeline/http/errors.py
src/application_pipeline/latex/__init__.py
src/application_pipeline/latex/cv_template.tex
src/application_pipeline/latex/moderncv.cls
src/application_pipeline/latex/moderncvcolorblue.sty
src/application_pipeline/latex/moderncvstylecasual.sty
src/application_pipeline/latex/tweaklist.sty
src/application_pipeline/layout/__init__.py
src/application_pipeline/layout/loader.py
src/application_pipeline/layout/types.py
src/application_pipeline/llm/__init__.py
src/application_pipeline/llm/agent_output.py
src/application_pipeline/llm/claude.py
src/application_pipeline/llm/claude_cli.py
src/application_pipeline/llm/quota.py
src/application_pipeline/llm/types.py
src/application_pipeline/parsers/__init__.py
src/application_pipeline/parsers/_text.py
src/application_pipeline/parsers/bundesagentur_api.py
src/application_pipeline/parsers/errors.py
src/application_pipeline/parsers/http.py
src/application_pipeline/parsers/jobs_beim_staat_html.py
src/application_pipeline/parsers/location.py
src/application_pipeline/parsers/protocol.py
src/application_pipeline/parsers/registry.py
src/application_pipeline/parsers/stellen_hamburg_api.py
src/application_pipeline/parsers/types.py
src/application_pipeline/results/__init__.py
src/application_pipeline/results/errors.py
src/application_pipeline/results/manager.py
src/application_pipeline/search_terms/__init__.py
src/application_pipeline/search_terms/loader.py
src/application_pipeline/search_terms/types.py
src/application_pipeline/templates/__init__.py
src/application_pipeline/templates/config.py
src/application_pipeline/templates/layout.py
src/application_pipeline/templates/prompts/__init__.py
src/application_pipeline/templates/prompts/classify_relevance.md
src/application_pipeline/templates/prompts/judge_match.md
src/application_pipeline/templates/prompts/judge_top_n.md
src/application_pipeline/templates/setup/cron-install.sh
src/application_pipeline/templates/setup/cron-uninstall.sh
src/application_pipeline/templates/setup/cron.sh
src/application_pipeline/templates/user-info/contact.tex
src/application_pipeline/templates/user-info/content_pool.tex
src/application_pipeline/templates/user-info/domain-fit.md
src/application_pipeline/templates/user-info/identity.tex
src/application_pipeline/templates/user-info/match-criteria.md
src/application_pipeline/templates/user-info/profile.png
src/application_pipeline/templates/user-info/search-terms.md
src/application_pipeline/templates/user-info/self-description.md
src/application_pipeline/templates/user-info/signature.png
src/application_pipeline/text/__init__.py
src/application_pipeline/text/normalize.py
tests/__init__.py
tests/conftest.py
tests/fake_status_display.py
tests/test_agent_output.py
tests/test_claude_cli_invoker.py
tests/test_claude_extractor.py
tests/test_cli_dispatch.py
tests/test_compile_cv_cmd.py
tests/test_component_log.py
tests/test_config_loader.py
tests/test_dedup_store.py
tests/test_extract_store.py
tests/test_failure_report.py
tests/test_freshness_gate.py
tests/test_init_cmd.py
tests/test_latex_templates.py
tests/test_layout_loader.py
tests/test_llm_extractor.py
tests/test_log_artifacts.py
tests/test_main_dotenv.py
tests/test_main_failure.py
tests/test_normalize.py
tests/test_orchestrator.py
tests/test_parser_http_class.py
tests/test_parser_log.py
tests/test_parsers.py
tests/test_prefilter_gate.py
tests/test_prompt_loader.py
tests/test_publish_yml.py
tests/test_renderer.py
tests/test_results_manager.py
tests/test_run_metrics.py
tests/test_search_terms_loader.py
tests/test_setuptools_scm_config.py
tests/test_status_display.py
tests/test_stellen_hamburg_parser.py
tests/test_user_settings.py
tests/parsers/__init__.py
tests/parsers/test_bundesagentur_api.py
tests/parsers/test_jobs_beim_staat_html.py
tests/parsers/test_stellen_hamburg_api.py
tests/parsers/fixtures/bundesagentur/detail.json
tests/parsers/fixtures/bundesagentur/search.json
tests/parsers/fixtures/jobs_beim_staat/detail.html
tests/parsers/fixtures/jobs_beim_staat/iframe_target.html
tests/parsers/fixtures/jobs_beim_staat/list.html
tests/parsers/fixtures/jobs_beim_staat/wrapper.html
tests/parsers/fixtures/stellen_hamburg/detail.html
tests/parsers/fixtures/stellen_hamburg/detail_list_wrapped.html
tests/parsers/fixtures/stellen_hamburg/detail_no_job_posting.html
tests/parsers/fixtures/stellen_hamburg/search.json
tests/parsers/smoke/__init__.py
tests/parsers/smoke/test_bundesagentur_api_smoke.py
tests/parsers/smoke/test_jobs_beim_staat_html_smoke.py
tests/parsers/smoke/test_stellen_hamburg_api_smoke.py