github Python analyzed · update queued 59f891f

Applire/Applire

github

Open-source AI-powered CV tailoring platform for the DACH job market

maintainer
Applire
license
AGPL-3.0
first seen
2026-06-09
last seen
2026-08-01
releases · 30d
3
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio · http counts 0 tools · 0 res · 0 prompts permission surface via code analysis

No tools enumerated yet for this server.

skills & danger signals github-tarball
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

code evidence vv0.37.2-beta · github-tarball
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