I Built an AI That Writes My Job Applications - And It's Open Source

Published: (January 7, 2026 at 05:37 AM EST)
5 min read
Source: Dev.to

Source: Dev.to

The Problem

Job applications are painful. Most engineers go through these steps for every role:

  1. Read the JD – Extract requirements, keywords, and company culture.
  2. Tailor resume – Rewrite bullets to match the specific role.
  3. Write cover letter – Explain why you’re perfect for the position.
  4. Research company – Understand values, recent news, etc.
  5. Prep for interview – Anticipate questions and prepare answers.
  6. Follow up – Send thank‑you emails and handle rejections.

Each application can take 2–4 hours. Many people skip steps 2‑5 and send generic materials, which drives up rejection rates.

The Solution: Career Architect

Career Architect is an AI‑driven pipeline that automates the entire application process. It works with any LLM (Claude, GPT‑4, Cursor, etc.).

# Clone and install
git clone https://github.com/henryohanga/career-architect
cd career-architect
make install

# Paste a job description to the AI assistant
# AI generates everything for you
python scripts/compile_all.py   # Build PDFs

How It Works

Step 1 – Build Your Experience Lake

Create a single source of truth for your professional background:

source_materials/
├── identity.json          # Contact info, preferences
├── master_experience.md   # All your achievements
├── resumes/               # Historical resume versions
│   ├── 2024-current.md
│   └── 2023-previous.md
└── projects/              # Key project details
    ├── saas-platform.md
    └── api-redesign.md

Prompt to the AI:

“Read the setup prompt and analyze my resumes to build master_experience.md.”

The assistant extracts achievements, adds metrics, and structures everything using the Modern Builder Framework.

Step 2 – Apply to Jobs

Paste a job description and tell the AI what you need:

“I want to apply for this Senior Engineer role. Use the Career Architect pipeline.”

The AI creates a new folder, e.g., applications/2025-01-07-company-role/, and:

  • Analyzes gaps between your experience and the role’s requirements.
  • Generates a tailored resume, cover letter, and interview prep material.
  • Saves everything as Markdown files.

Step 3 – Build PDFs

One command converts the Markdown output into polished PDFs:

python scripts/compile_all.py
# Output files: resume.pdf, cover_letter.pdf

The Tech Stack

ComponentPurpose
Python 3.8+CLI tools & automation
PandocConvert Markdown → PDF/HTML/DOCX
LaTeXProfessional PDF styling
AI PromptsCore “product” – engineered instructions

Key Scripts

  • build_resume.py – Markdown → formatted PDF.
  • compile_all.py – Batch processing with progress tracking.
  • career.py – Unified CLI interface.

The AI Magic: Prompt Engineering

The real innovation lies in the prompt system. Below is an excerpt of the resume‑tailoring prompt used by the assistant:

# Role: Career Branding Expert
...

(Full prompt omitted for brevity; see the repository for the complete prompt library.)

Inputs

  • source_materials/master_experience.md
  • applications/[folder]/job_desc.md
  • source_materials/identity.json (for preferences)

Configuration

Source: identity.jsonpreferences

SettingOptions
language"en"  
resume_style"modern_builder" 
tone"professional" 

Note: Apply the appropriate style guide from style_guide.md.

Resume Styles

Modern Builder (Tech Startups)

Modern Builder Capabilities
- Systems Thinking: Architected event‑driven architecture processing **50 K events/sec**
- Technical Taste: Implemented zero‑downtime deployments reducing MTTR by **75 %**
- Ownership: Led incident response restoring service in **12 minutes**

Traditional (Enterprise)

Professional Summary
Experienced software engineer with **6+ years** building scalable systems...

Work Experience
Senior Software Engineer | TechCorp | 2020‑Present
- Led development of React SPA serving **50 000 daily users**
- Managed team of **5 engineers** improving sprint velocity by **35 %**

Multi‑Language Support

Set your language preference in identity.json:

{
  "preferences": {
    "language": "de",
    "resume_style": "traditional"
  }
}

The system automatically translates section headers and adapts tone:

EnglishGermanSpanish
ExperienceBerufserfahrungExperiencia
EducationAusbildungEducación
SkillsKenntnisseHabilidades

Extending the System

Adding New Resume Styles

Create a new style in .prompts/style_guide.md:

### Style: `minimalist`

**Best for:** Design‑focused roles, creative positions  

**Language Patterns**
1. Clean, concise bullets  
2. Focus on impact over process  
3. Visual/portfolio emphasis  

Custom Prompts

Add industry‑specific prompts under .prompts/:

.prompts/
├── cybersecurity.md   # Security‑specific language
├── fintech.md          # Finance terminology
└── gaming.md           # Game‑dev focus

Integration Examples

GitHub Actions Workflow

name: Build Job Application
on:
  push:
    paths:
      - 'applications/**'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Build PDFs
        run: python scripts/compile_all.py
      - name: Upload artifacts
        uses: actions/upload-artifact@v3
        with:
          name: application-materials
          path: applications/**/*.pdf

Real Results

User‑reported improvements

MetricBeforeAfter
Application time3‑4 hrs30 min
Rejection rate95 %60 %
Effort (subjective)HighMinimal
Personalization levelLowHigh
Speed of process70 % faster
Interview callbacks3× more
Gap‑analysis match qualityBetter matches

Getting Started

Prerequisites

  1. Python 3.8+
  2. An AI assistant (Claude, GPT‑4, Cursor, etc.)
  3. Pandoc + LaTeX (for PDF generation)

Quick Start

# Clone and set up the repo
git clone https://github.com/henryohanga/career-architect
cd career-architect
make install

# Configure your profile
#   • Edit source_materials/identity.json
#   • Add historical resumes to source_materials/resumes/

# Build your experience lake
# Prompt the AI: “Use Career Architect setup prompt”

# Generate applications
# Paste a JD to the AI: “Use Career Architect for this role”
python scripts/compile_all.py

The Philosophy

  1. AI as a Collaborator – AI assistants act as senior partners; prompts are crafted to exploit AI strengths while keeping human judgment central.
  2. Modern Builder Framework – Emphasizes ownership, systems thinking, and measurable impact—key traits for senior engineering roles.
  3. Unopinionated by Design – Supports multiple styles and languages; there is no single “right way” to write a resume.

Challenges & Learnings

  1. Prompt Engineering is Hard – Effective prompts require deep knowledge of AI limits and human psychology; what works for GPT‑4 may fail with Claude.
  2. Balancing Automation vs. Personalization – Over‑automation yields generic output; the goal is structured guidance that still lets personality shine.
  3. Multi‑Language Complexity – Translation is only part of the story; cultural adaptation of professional norms is essential.

Future Roadmap

  1. Web Interface – Friendly UI for non‑technical users.
  2. ATS Optimization – Advanced keyword matching for applicant‑tracking systems.
  3. A/B Testing – Compare different resume versions automatically.
  4. Team Features – Managers can assist team members in building their applications.
  5. Integration APIs – Connect with LinkedIn, Indeed, and other job platforms.

Call to Action

If you’re tired of spending hours on job applications, give Career Architect a try:

  1. Star the repo – Show your support.
  2. Try it out – Run it against a sample job description.
  3. Contribute – Add new styles, languages, or features.
  4. Share – Help other developers land better jobs.
  • GitHub:
  • Product Hunt: Coming Soon

Built with ❤️ by a developer, for developers. MIT licensed.

SEO Keywords

  • AI job applications
  • Resume automation
  • AI prompt engineering
  • Career development tools
  • Open source developer tools
  • Job search automation
Back to Blog

Related posts

Read more »

Backend Transitioning to AI Dev

After working with LLMs, I believe the hardest part of the transition for backend engineers isn't the math—it's unlearning determinism. In traditional distribut...

Did you know?

The cloud isn’t just about technology; it’s changing how businesses operate. Companies can now launch products faster, scale services instantly, and reach globa...

'Chainguard' image for secure service

Security‑First Container Images with Chainguard If you work in DevOps or system‑backend development, one of the biggest sources of stress is security. Even tho...