How to Tailor Applications to Specific Company Requirements Using the AI Job Search Assistant
The AI Job Search Assistant automatically tailors CVs and cover letters to specific company requirements by analyzing job postings, scoring fit against your profile, and generating company-specific LaTeX documents that emphasize relevant competencies.
The open-source repository MadsLorentzen/ai-job-search provides an end-to-end workflow that helps candidates tailor applications to specific company requirements using Claude Code. This system moves beyond generic templates by researching employer priorities, restructuring content, and verifying ATS compatibility before submission.
The Four-Stage Tailoring Workflow
The Job Application Assistant skill orchestrates a tightly-coupled pipeline defined in .claude/skills/job-application-assistant/SKILL.md. Each stage transforms raw job posting data into polished, company-specific application materials.
Research and Fit Evaluation
The workflow begins by fetching the job posting via WebFetch and parsing it for required competencies, keywords, and priorities. The system researches the company through website analysis, LinkedIn profiles, and recent news, then scores the opportunity against your candidate profile using the framework defined in 04-job-evaluation.md.
This evaluation produces a detailed scoring table and actionable recommendation: apply immediately, call the recruiter first, or skip the opportunity. The research phase ensures all subsequent tailoring targets the specific pain points and technical requirements mentioned in the posting.
CV Tailoring with LaTeX
Once the fit is confirmed, the assistant reads your base CV from cv/main_example.tex and creates a company-specific version at cv/main_<company>.tex. Following the rules in 05-cv-templates.md, the AI performs structural adjustments:
- Rewriting the profile statement to mirror the company's stated values
- Reordering sections to prioritize relevant experience
- Emphasizing bullet points that match the posting's keywords
- Cutting low-relevance lines while preserving strict two-page layout using
\needspaceand\enlargethispagecommands
The tailoring preserves the moderncv formatting while ensuring every line speaks directly to the employer's requirements.
Cover Letter Generation
Using the style guidelines in 03-writing-style.md and the template in 06-cover-letter-templates.md, the assistant generates cover_letters/cover_<company>_<role>.tex. The letter explicitly connects your concrete experiences to the role's requirements, avoids clichés, and references "Claude Code" where AI tooling is mentioned in your background.
The cover letter complements the CV by narrative storytelling that bridges your past achievements with the company's specific challenges.
Interview Preparation and ATS Verification
The final stage uses 07-interview-prep.md to assemble STAR-format answers and role-specific talking points. All documents are compiled using lualatex for the CV and xelatex for the cover letter.
An ATS check extracts the PDF text layer using pdftotext to verify that contact details remain literal text (not images) and that keywords appear correctly in the text layer. The workflow iterates until both PDFs satisfy the strict verification checklist outlined in the README.
Triggering the Tailoring Commands
You initiate the workflow using Claude Code slash commands. The /apply command starts the full pipeline, while you can request individual steps after initial evaluation.
# Start the complete workflow with a job posting URL
/apply https://jobindex.dk/job/1234567
After the research phase completes, you can request specific tailoring:
# Generate only the tailored CV for a specific company
Create cv/main_acme-corp.tex based on the evaluation
# Generate a cover letter for a specific role
Write a cover letter for Data Engineer at Acme Corp
Source File Reference
The tailoring logic depends on these key configuration files:
.claude/skills/job-application-assistant/SKILL.md— Formal definition of the assistant's steps and allowed toolsCLAUDE.md— Candidate profile containing education, experience, and skills used for matching04-job-evaluation.md— Scoring framework that maps posting requirements to your profile05-cv-templates.md— LaTeX layout rules and tailoring constraints06-cover-letter-templates.md— Cover letter structure and style requirements
Summary
- Four-stage pipeline: Research, CV tailoring, cover letter generation, and interview preparation
- Dynamic LaTeX generation: Creates
cv/main_<company>.texandcover_letters/cover_<company>_<role>.texwith company-specific content - ATS verification: Uses
pdftotextto confirm machine-readable text extraction before submission - Command-driven: Initiated via
/applywith support for individual step execution - Profile-aware: All tailoring references
CLAUDE.mdto ensure authentic representation of your experience
Frequently Asked Questions
How does the AI evaluate if a job matches my profile?
The system uses the scoring framework in 04-job-evaluation.md to compare required competencies against your CLAUDE.md profile. It assigns weighted scores to technical skills, cultural fit indicators, and experience levels, then outputs a recommendation to apply, call first, or skip based on threshold matches.
What LaTeX commands ensure the CV stays within two pages?
The tailoring process uses \needspace{3\baselineskip} to prevent awkward page breaks and \enlargethispage{2\baselineskip} as a last resort when content slightly exceeds limits. These commands are applied automatically while the AI removes low-relevance bullets to maintain the two-page constraint defined in 05-cv-templates.md.
Can I run individual steps without the full workflow?
Yes. After running /apply to complete the initial research and evaluation, you can request specific artifacts. Ask the assistant to "Create the tailored CV for [Company]" or "Write the cover letter for [Role]" to execute individual stages without repeating the entire pipeline.
How does the system verify ATS compatibility?
The assistant runs pdftotext on the compiled PDFs to extract the raw text layer. It verifies that contact information appears as literal text rather than image data, confirms that section headings parse correctly, and checks that keywords from the job posting appear in the extracted text. This ensures applicant tracking systems can index your qualifications properly.
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 →