Open-source AI-powered CV tailoring platform for the DACH job market
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 59f891f · analyzer v27 · 1w ago
skills & prompt files 1
- agent-rules Applire-Applire-59f891f/AGENTS.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 695
filesystem 13
- fs Applire-Applire-59f891f/backend/applire/config.py :19
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/main.py :23
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/ocr/tesseract.py :42
image = Image.open(BytesIO(image_bytes)) - fs Applire-Applire-59f891f/backend/applire/providers/llm/debug_log.py :91
with open(path, "a", encoding="utf-8") as fh: - fs Applire-Applire-59f891f/backend/applire/retention/worker.py :135
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/services/cover_letter.py :38
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/services/cv.py :46
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/services/cv_parser.py :162
doc = fitz.open(stream=file_bytes, filetype="pdf") - fs Applire-Applire-59f891f/backend/applire/services/job.py :21
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/services/linkedin.py :176
with zf.open(name) as f: - fs Applire-Applire-59f891f/backend/applire/services/oracle/stance.py :16
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/services/thumbnails.py :25
from pathlib import Path - fs Applire-Applire-59f891f/backend/applire/storage/local.py :23
from pathlib import Path
shell / exec 1
- shell Applire-Applire-59f891f/backend/applire/main.py :19
import subprocess
network 7
- net Applire-Applire-59f891f/backend/applire/providers/embedding/ollama.py :20
import httpx - net Applire-Applire-59f891f/backend/applire/providers/llm/capabilities.py :148
import httpx - net Applire-Applire-59f891f/backend/applire/providers/llm/ollama.py :24
import httpx - net Applire-Applire-59f891f/backend/applire/schemas/job.py :20
from urllib.parse import urlparse - net Applire-Applire-59f891f/backend/applire/services/application.py :33
from urllib.parse import parse_qsl, urlencode, urlsplit - net Applire-Applire-59f891f/backend/applire/services/color_detection.py :42
from urllib.parse import urlparse - net Applire-Applire-59f891f/backend/applire/services/scraper.py :31
from urllib.parse import urlparse
database 105
- db Applire-Applire-59f891f/backend/alembic/env.py :5
from sqlalchemy import pool - db Applire-Applire-59f891f/backend/alembic/versions/0001_initial_users.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0002_job_analyses.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0003_master_profiles.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0004_gap_analyses.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0005_interview_sessions.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0006_generated_cvs.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0007_job_analyses_source_url.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0008_generated_cvs_template.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0009_uploads.py :10
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0010_gap_categories.py :20
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0011_interview_sessions_iter14.py :13
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0012_create_flow_sessions.py :13
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0013_iter17_foundation.py :17
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0014_flow_sessions_nullable_job_id.py :12
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0015_add_cv_section_editor_columns.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0016_embedding_vectors.py :15
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0017_gap_embedding_score.py :14
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0018_berufsbild_taxonomy.py :17
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0019_photo_consent.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0020_add_color_profiles.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0021_color_schemes.py :11
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0022_rename_color_tables.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0023_add_generated_cover_letters_table.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0024_add_flow_session_cover_letter_fk.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0025_user_settings_ui_language.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0026_nullable_job_analysis_id.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0027_gap_clusters.py :9
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0029_deterministic_match_score.py :32
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0030_recolor_eu_blue.py :38
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0031_ui_language_not_null.py :31
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0032_jd_language.py :34
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0033_ats_report.py :21
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0034_unique_active_session.py :28
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0035_staged_extraction.py :27
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0036_profile_snapshots.py :27
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0037_generated_cv_error_code.py :28
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0038_cv_import_jobs.py :27
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0039_gap_keyword_ledger.py :28
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0040_gap_input_fingerprint.py :28
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0041_gap_analysis_jobs.py :26
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0042_user_settings_hide_predownload_notice.py :25
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0043_application_source_url.py :26
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0045_application_submitted_pins.py :27
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0046_application_stale_cv_dismissed.py :26
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0049_target_pages.py :39
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0050_truthfulness_report.py :31
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/alembic/versions/0051_document_origin.py :32
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/applire/db/session.py :20
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine - db Applire-Applire-59f891f/backend/applire/main.py :28
from sqlalchemy import text - db Applire-Applire-59f891f/backend/applire/mcp/deps.py :28
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/mcp/server.py :75
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/models/application.py :35
from sqlalchemy import DateTime, ForeignKey, String, Text, UniqueConstraint - db Applire-Applire-59f891f/backend/applire/models/color_profile.py :21
from sqlalchemy import DateTime, JSON, String - db Applire-Applire-59f891f/backend/applire/models/color_scheme.py :21
from sqlalchemy import Boolean, DateTime, Float, JSON, String - db Applire-Applire-59f891f/backend/applire/models/company.py :21
from sqlalchemy import DateTime, ForeignKey, Text - db Applire-Applire-59f891f/backend/applire/models/cover_letter.py :22
from sqlalchemy import DateTime, ForeignKey, String, Text - db Applire-Applire-59f891f/backend/applire/models/cv.py :22
from sqlalchemy import DateTime, ForeignKey, Integer, JSON, String, Text - db Applire-Applire-59f891f/backend/applire/models/flow.py :21
from sqlalchemy import DateTime, ForeignKey, String, UniqueConstraint - db Applire-Applire-59f891f/backend/applire/models/gap.py :21
from sqlalchemy import DateTime, Float, ForeignKey, Index, JSON, Text, text - db Applire-Applire-59f891f/backend/applire/models/gap_job.py :34
from sqlalchemy import DateTime, Index, String, Text, Uuid, text - db Applire-Applire-59f891f/backend/applire/models/import_job.py :31
from sqlalchemy import JSON, DateTime, String, Text - db Applire-Applire-59f891f/backend/applire/models/job.py :21
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/applire/models/profile.py :21
import sqlalchemy as sa - db Applire-Applire-59f891f/backend/applire/models/session.py :21
from sqlalchemy import DateTime, ForeignKey, Index, Integer, JSON, String, text - db Applire-Applire-59f891f/backend/applire/models/uploads.py :21
from sqlalchemy import DateTime, ForeignKey, Integer, JSON, Text - db Applire-Applire-59f891f/backend/applire/models/user.py :21
from sqlalchemy import Boolean, DateTime, String - db Applire-Applire-59f891f/backend/applire/models/user_settings.py :21
from sqlalchemy import Boolean, DateTime, ForeignKey, Integer, String - db Applire-Applire-59f891f/backend/applire/retention/worker.py :50
from sqlalchemy import text, update - db Applire-Applire-59f891f/backend/applire/routers/admin/color_schemes.py :21
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/application.py :32
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/cover_letter.py :22
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/cv.py :23
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/cv_color.py :24
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/documents.py :22
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/flow.py :21
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/job.py :23
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/jobs.py :31
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/profile.py :29
from sqlalchemy import delete, select, update - db Applire-Applire-59f891f/backend/applire/routers/profile_enrich.py :24
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/routers/profile_roles.py :23
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/session.py :23
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/routers/settings.py :25
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/application.py :35
from sqlalchemy import case, select, update - db Applire-Applire-59f891f/backend/applire/services/color_detection.py :47
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/color_schemes.py :22
from sqlalchemy import select, update - db Applire-Applire-59f891f/backend/applire/services/cover_letter.py :42
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/cover_letter_pdf.py :26
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/cv.py :56
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/cv_assist.py :29
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/cv_diff.py :32
from sqlalchemy.ext.asyncio import AsyncSession - db Applire-Applire-59f891f/backend/applire/services/cv_section_editor.py :31
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/documents.py :21
from sqlalchemy import func, select - db Applire-Applire-59f891f/backend/applire/services/flow/orchestrator.py :35
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/gap.py :35
from sqlalchemy import desc, select - db Applire-Applire-59f891f/backend/applire/services/gap_jobs.py :32
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/job.py :23
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/matching.py :35
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/photo.py :28
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/profile/__init__.py :28
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/profile/import_jobs.py :36
from sqlalchemy import or_, select - db Applire-Applire-59f891f/backend/applire/services/profile/reconcile/agent_bridge.py :31
from sqlalchemy import desc, select - db Applire-Applire-59f891f/backend/applire/services/profile/role_add.py :36
from sqlalchemy import select - db Applire-Applire-59f891f/backend/applire/services/profile/snapshots.py :35
from sqlalchemy import delete, select - db Applire-Applire-59f891f/backend/applire/services/session.py :39
from sqlalchemy import select
tool registrations 3
- get_profile Applire-Applire-59f891f/backend/applire/mcp/server.py :317
- analyze_gaps Applire-Applire-59f891f/backend/applire/mcp/server.py :381
- get_flow_state Applire-Applire-59f891f/backend/applire/mcp/server.py :782
declared dependencies 25
- mcp@==1.28.1
- fastapi@==0.136.3
- uvicorn@[standard]==0.32.1
- pydantic@==2.11.4
- pydantic-settings@==2.7.0
- sqlalchemy@[asyncio]==2.0.36
- asyncpg@==0.30.0
- alembic@==1.14.0
- mistralai@==1.3.0
- openai@==1.59.6
- anthropic@==0.109.1
- httpx@==0.28.1
- python-dotenv@==1.2.2
- pymupdf@==1.25.3
- python-docx@==1.1.2
- pypdf@==6.13.3
- python-multipart@==0.0.31
- jinja2@==3.1.6
- playwright@==1.49.0
- beautifulsoup4@==4.12.3
- colorgram.py@>=1.2.0
- lxml@==6.1.0
- tenacity@==9.0.0
- aiosqlite@==0.20.0
- pgvector@==0.3.6