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 \needspace and \enlargethispage commands

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:

Summary

  • Four-stage pipeline: Research, CV tailoring, cover letter generation, and interview preparation
  • Dynamic LaTeX generation: Creates cv/main_<company>.tex and cover_letters/cover_<company>_<role>.tex with company-specific content
  • ATS verification: Uses pdftotext to confirm machine-readable text extraction before submission
  • Command-driven: Initiated via /apply with support for individual step execution
  • Profile-aware: All tailoring references CLAUDE.md to 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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →