I Built an AI That Writes My Job Applications - And It's Open Source
Source: Dev.to
The Problem
Job applications are painful. Most engineers go through these steps for every role:
- Read the JD – Extract requirements, keywords, and company culture.
- Tailor resume – Rewrite bullets to match the specific role.
- Write cover letter – Explain why you’re perfect for the position.
- Research company – Understand values, recent news, etc.
- Prep for interview – Anticipate questions and prepare answers.
- 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
| Component | Purpose |
|---|---|
| Python 3.8+ | CLI tools & automation |
| Pandoc | Convert Markdown → PDF/HTML/DOCX |
| LaTeX | Professional PDF styling |
| AI Prompts | Core “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.mdapplications/[folder]/job_desc.mdsource_materials/identity.json(for preferences)
Configuration
Source: identity.json → preferences
| Setting | Options |
|---|---|
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:
| English | German | Spanish |
|---|---|---|
| Experience | Berufserfahrung | Experiencia |
| Education | Ausbildung | Educación |
| Skills | Kenntnisse | Habilidades |
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
| Metric | Before | After |
|---|---|---|
| Application time | 3‑4 hrs | 30 min |
| Rejection rate | 95 % | 60 % |
| Effort (subjective) | High | Minimal |
| Personalization level | Low | High |
| Speed of process | — | 70 % faster |
| Interview callbacks | — | 3× more |
| Gap‑analysis match quality | — | Better matches |
Getting Started
Prerequisites
- Python 3.8+
- An AI assistant (Claude, GPT‑4, Cursor, etc.)
- 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
- AI as a Collaborator – AI assistants act as senior partners; prompts are crafted to exploit AI strengths while keeping human judgment central.
- Modern Builder Framework – Emphasizes ownership, systems thinking, and measurable impact—key traits for senior engineering roles.
- Unopinionated by Design – Supports multiple styles and languages; there is no single “right way” to write a resume.
Challenges & Learnings
- Prompt Engineering is Hard – Effective prompts require deep knowledge of AI limits and human psychology; what works for GPT‑4 may fail with Claude.
- Balancing Automation vs. Personalization – Over‑automation yields generic output; the goal is structured guidance that still lets personality shine.
- Multi‑Language Complexity – Translation is only part of the story; cultural adaptation of professional norms is essential.
Future Roadmap
- Web Interface – Friendly UI for non‑technical users.
- ATS Optimization – Advanced keyword matching for applicant‑tracking systems.
- A/B Testing – Compare different resume versions automatically.
- Team Features – Managers can assist team members in building their applications.
- 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:
- Star the repo – Show your support.
- Try it out – Run it against a sample job description.
- Contribute – Add new styles, languages, or features.
- 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