.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/adr/0029-settings-dir-is-cwd-relative.md
docs/adr/0030-write-cv-slot-map-and-user-info-refactor.md
docs/adr/0031-host-distro-provides-moderncv.md
docs/adr/0032-nested-user-info-subdirs-and-search-terms-split.md
docs/adr/0033-skills-grouped-dual-consumed-pool.md
docs/adr/0034-re-vendor-moderncv-1-2-0.md
docs/adr/0035-cv-layout-migration-from-cv-7-and-personalinfo-refactor.md
docs/adr/0036-classifier-solo-calls-batching-retired.md
docs/adr/0037-http-3xx-detected-as-external-redirect.md
docs/adr/0038-combine-system-and-user-prompts-via-stdin.md
docs/adr/0039-content-gate-drops-empty-raw-description.md
docs/adr/0040-parallel-classify-worker-pool.md
docs/adr/0041-llm-enricher-replaces-per-source-enrich.md
docs/adr/0042-card-structure-hardcoded-layout-retires.md
docs/adr/0043-classifier-three-check-matches-verdict-and-triage-profile-merge.md
docs/adr/0044-template-buckets-and-claude-skills-seeded-by-init.md
docs/adr/0045-log-files-grouped-into-layer-subdirs.md
docs/adr/0046-runtime-data-subdir.md
docs/adr/0047-parser-owns-body-production-gates-bundle.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/atomic_write.py
src/application_pipeline/compile_cv_cmd.py
src/application_pipeline/content_gate.py
src/application_pipeline/dedup_counters.py
src/application_pipeline/failure_report.py
src/application_pipeline/freshness_gate.py
src/application_pipeline/gates_bundle.py
src/application_pipeline/init_cmd.py
src/application_pipeline/llm_enricher.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/content_pool/__init__.py
src/application_pipeline/content_pool/errors.py
src/application_pipeline/content_pool/parser.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/card_store.py
src/application_pipeline/extracts/errors.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/moderncvcolorblack.sty
src/application_pipeline/latex/moderncvcolorblue.sty
src/application_pipeline/latex/moderncvcolorgreen.sty
src/application_pipeline/latex/moderncvcolorgrey.sty
src/application_pipeline/latex/moderncvcolororange.sty
src/application_pipeline/latex/moderncvcolorpurple.sty
src/application_pipeline/latex/moderncvcolorred.sty
src/application_pipeline/latex/moderncvcompatibility.sty
src/application_pipeline/latex/moderncvstylebanking.sty
src/application_pipeline/latex/moderncvstylecasual.sty
src/application_pipeline/latex/moderncvstyleclassic.sty
src/application_pipeline/latex/moderncvstyleempty.sty
src/application_pipeline/latex/moderncvstyleoldstyle.sty
src/application_pipeline/latex/slot_map.py
src/application_pipeline/latex/tweaklist.sty
src/application_pipeline/llm/__init__.py
src/application_pipeline/llm/agent_output.py
src/application_pipeline/llm/body_strip.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/body_fetch.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/skills_pool/__init__.py
src/application_pipeline/skills_pool/parser.py
src/application_pipeline/templates/__init__.py
src/application_pipeline/templates/application-pipeline/.gitignore
src/application_pipeline/templates/application-pipeline/config.py
src/application_pipeline/templates/application-pipeline/cv-template/cv_skeleton.tex
src/application_pipeline/templates/application-pipeline/setup/cron-install.sh
src/application_pipeline/templates/application-pipeline/setup/cron-uninstall.sh
src/application_pipeline/templates/application-pipeline/setup/cron.sh
src/application_pipeline/templates/application-pipeline/user-info/cv/content_pool.tex
src/application_pipeline/templates/application-pipeline/user-info/cv/facts.tex
src/application_pipeline/templates/application-pipeline/user-info/cv/profile.png
src/application_pipeline/templates/application-pipeline/user-info/cv/signature.png
src/application_pipeline/templates/application-pipeline/user-info/search-terms/keywords.md
src/application_pipeline/templates/application-pipeline/user-info/search-terms/negative-keywords.md
src/application_pipeline/templates/application-pipeline/user-info/search-terms/skills.md
src/application_pipeline/templates/application-pipeline/user-info/triage-profile/match-criteria.md
src/application_pipeline/templates/application-pipeline/user-info/triage-profile/self-description.md
src/application_pipeline/templates/application-pipeline/user-info/triage-profile/writing-style.md
src/application_pipeline/templates/claude/skills/_shared/APPLICATION-FOLDER-ARG.md
src/application_pipeline/templates/claude/skills/_shared/BUILD-CONTRACT.md
src/application_pipeline/templates/claude/skills/_shared/CONVENTIONS.md
src/application_pipeline/templates/claude/skills/_shared/SLOT-MAP.md
src/application_pipeline/templates/claude/skills/_shared/STARTUP-APPLICATION.md
src/application_pipeline/templates/claude/skills/_shared/STARTUP-TRIAGE.md
src/application_pipeline/templates/claude/skills/_shared/STRIP-DOWN.md
src/application_pipeline/templates/claude/skills/_shared/TRIAGE-ROUTING.md
src/application_pipeline/templates/claude/skills/analyse-listing/SKILL.md
src/application_pipeline/templates/claude/skills/iterate-cv/SKILL.md
src/application_pipeline/templates/claude/skills/write-cv/SKILL.md
src/application_pipeline/templates/prompts/__init__.py
src/application_pipeline/templates/prompts/classify_relevance.md
src/application_pipeline/templates/prompts/judge_top_n.md
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_atomic_write.py
tests/test_card_store.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_compile_cv_smoke.py
tests/test_component_log.py
tests/test_config_loader.py
tests/test_content_gate.py
tests/test_content_pool_parser.py
tests/test_dedup_counters.py
tests/test_dedup_store.py
tests/test_facts_consolidation.py
tests/test_failure_report.py
tests/test_freshness_gate.py
tests/test_gates_bundle.py
tests/test_init_cmd.py
tests/test_latex_templates.py
tests/test_llm_enricher.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_quota_wall.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_skills_pool_parser.py
tests/test_slot_map.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