Programming Languages Used in the ai-job-search Project
The ai-job-search repository combines Python for automation scripts, LaTeX for document templates, YAML for CI/CD workflows, and TypeScript for optional agent utilities.
The MadsLorentzen/ai-job-search project orchestrates job application workflows through a polyglot codebase that handles PDF verification, CV generation, and security linting. Understanding the programming languages used in the ai-job-search project reveals how each component—from security guards to document compilation—interacts within the repository's architecture.
Core Automation: Python
Python serves as the primary engine for the project's automation logic, driving CLI tools, security validation, and test suites.
Security and Linting Tools
In tools/security_guards.py, the project implements runtime safety checks that validate file integrity and permissions before execution. The tools/lint_skills.py module enforces coding conventions across the codebase, ensuring consistent style in agent definitions and configuration files. Comprehensive unit coverage exists in tests/test_security_guards.py, which validates these critical security functions using the standard library’s unittest framework.
# tools/verify_pdf.py (simplified implementation)
from pathlib import Path
import subprocess
def is_searchable(pdf_path: Path) -> bool:
"""Return True if the PDF contains searchable text."""
result = subprocess.run(
["pdfinfo", str(pdf_path)],
capture_output=True,
text=True,
)
return "Encrypted:" not in result.stdout
Document Generation: LaTeX
LaTeX provides deterministic typographic control for professional PDF documents, maintaining version-friendly plain-text source files for résumés and cover letters.
CV and Cover Letter Templates
The cv/main_example.tex file defines the résumé structure with precise geometric margins and font controls, while cover_letters/cover_example.tex provides the cover letter template. These sources compile into PDFs through automated pipelines, ensuring consistent output across different environments without proprietary software dependencies.
% cv/main_example.tex (excerpt)
\documentclass{article}
\usepackage{geometry}
\geometry{margin=1in}
\begin{document}
\section*{Professional Experience}
\textbf{Software Engineer} at TechCorp\\
Automated deployment pipelines using Python and GitHub Actions.
\end{document}
Infrastructure and Configuration
YAML for CI/CD Pipelines
The .github/workflows/ci.yml file orchestrates continuous integration as code, triggering Python test suites and LaTeX compilation on every pull request. This YAML configuration ensures that document generation and security checks run automatically before code merges, enforcing quality gates at the repository level.
JSON for Agent Settings
Structured configuration for Claude-based automation agents resides in .claude/settings.json and related JSON files. These settings decouple agent behavior from implementation logic, allowing users to modify parameters without editing Python source code.
Documentation and Auxiliary Scripts
Markdown Documentation
Project documentation utilizes Markdown files such as README.md and AGENTS.md to provide human-readable setup guides, skill specifications, and usage instructions. These files follow standard GitHub-flavored Markdown syntax with fenced code blocks and tables for clarity.
TypeScript Agent Utilities
While not required for core functionality, the repository includes TypeScript source files under the .agents directory, such as .agents/skills/linkedin-search/cli/src/helpers.ts. These optional Node.js modules provide enhanced web scraping capabilities for LinkedIn and other job portals, complementing the primary Python automation layer.
Summary
- Python powers the automation scripts, security validation in
tools/security_guards.py, and test coverage intests/test_security_guards.py. - LaTeX generates professional PDF documents through templates located in
cv/main_example.texandcover_letters/cover_example.tex. - YAML defines CI/CD pipelines in
.github/workflows/ci.yml, automating test execution and document compilation. - JSON configures agent behavior in
.claude/settings.jsonand other configuration files. - Markdown provides project documentation in
README.mdand specification files. - TypeScript supports optional CLI agents for web scraping tasks, though these remain separate from the core Python workflow.
Frequently Asked Questions
What is the main programming language for automation logic in ai-job-search?
Python serves as the primary automation language, handling security checks in tools/security_guards.py, linting in tools/lint_skills.py, and PDF verification utilities. The language’s extensive standard library and subprocess management capabilities make it ideal for the file manipulation and external tool orchestration required by the job search workflow.
Why does the project use LaTeX instead of HTML or Word for documents?
LaTeX provides deterministic typographic control and version-friendly plain-text source, enabling precise CV formatting through cv/main_example.tex and cover letter templates in cover_letters/cover_example.tex. The .github/workflows/ci.yml pipeline compiles these sources automatically, ensuring consistent PDF output across different environments without requiring proprietary software.
Are the TypeScript files in the .agents directory required to run the core project?
No, the TypeScript utilities are optional. They provide enhanced functionality for specific tasks like LinkedIn scraping via files such as .agents/skills/linkedin-search/cli/src/helpers.ts, but the core ai-job-search workflow operates entirely through Python scripts and LaTeX compilation. Users can utilize the main features without installing Node.js or the .agents dependencies.
Where does the project define its continuous integration settings?
The CI/CD configuration resides in .github/workflows/ci.yml as a YAML file. This workflow triggers Python test suites, runs security guards, and compiles LaTeX documents to verify that both code and CV templates remain functional after every commit.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →