Create resumes that are targeted at specific job postings.
Hiring managers are so slammed with stacks of resumes, that they really have to be spoonfed the exact information they're looking for. But that's a lot of work on you, the job candidate.
Furthermore, it sucks to write a resume. It's hard enough trying to remember what you did, now you also have to phrase it so that it sounds good. And did I even do anything that sounds good?
It's a two step process:
- Build a resume. Not just a resume, a huge bank of stories about projects, etc.
- Upload job description, and export a resume that's targeted specifically to it.
The stories are key. We use an AI to interview you, to prod you with questions to talk more and more about details that you've forgotten. The AI also takes care of making sure it all sounds professional. Using the AI, you can generate accomplishments & skills extracted from the stories. In my case, I have 20-30 skills for each of my jobs. Make it extremely comprehensive.
UX Design Principle: You always have the ability to edit any LLM-generated text.
When it comes time to generating the targeted resume, after uploading the job posting, the LLM analyzes the post for what's needed to be successful. You can collaborate on that analysis, and then generate a resume PDF. The final resume is mostly the same as the full resume, but filtered down to just accomplishments & skills that are relevant to the job posting.
The app is built as a frontend-only web application that interacts directly with GitHub's API for storage. This design was chosen because:
- Privacy: Your resume data is stored in your private GitHub repository, giving you full control over access
- Version Control: Git provides automatic versioning and history of all changes
- No Database: By using GitHub for storage, we eliminate the need for a separate database
- Simplicity: The frontend-only architecture means you can run it locally without complex setup
The application uses:
- React + Vite for the frontend
- Material UI for the interface
- GitHub API for data storage
- Anthropic's Claude API for AI analysis
- XML for data format (chosen for readability and merge-friendliness)
Note: Currently, this is a local-only application. You'll need to run it on your own machine - there is no hosted version.
-
Resume Editor
- Edit your full resume with clickable text fields
- Organize experience, projects, and patents
- Auto-saves to GitHub as XML
- Beautiful Material UI interface
- Light/dark mode based on system theme
-
Job Posting Management
- Import and analyze job postings
- AI-powered analysis of requirements and success criteria
- Generate tailored resumes for each position
- Export to PDF with professional formatting
- All data stored in GitHub as XML
- Clone the repository
- Install dependencies:
npm install
- Create a
.env
file with:The Github access key is acquired by runningVITE_GH_ACCESS_KEY=your_github_access_key VITE_ANTH_API_KEY=your_anthropic_key
gh auth token
. Your Anthropic key should be obtained from Anthropic here. You'll probably have to setup a credit card with Anthropic, but it likely won't cost much money. - Verify
.env
is not tracked by git:git ls-files .env # Should return no output
- Start the development server:
npm run dev
The frontend runs on port 3001 and the backend on port 3002.
- Create a private Github repository. e.g. call it
resume
orresume-curated
, whatever. This is where all your data & PDFs will be stored. - Create a file in that repo called
full-resume.xml
- Copy the contents of
EXAMPLE.xml
and paste it into ChatGPT, Claude, or whatever your favorite AI is, along with your resume, and have it convert your resume to that format. It's not a big deal if it's off by a little, it just has to get close. - Paste the XML version of your resume into
full-resume.xml
in your private repo. - Commit/push (or just use the github UI)
-
Select Repository
- Choose a GitHub repository from the dropdown (typically a private repo)
- The app will load
full-resume.xml
from the root
-
Edit Resume
- Click any text to edit
- Changes are saved automatically
- Supports rich text formatting
-
Manage Job Postings
- Create new job postings
- AI analyzes requirements
- Generate tailored resumes
- Export to PDF
/full-resume.xml
- Complete resume data (stored in your private repo)/job-postings/{company}-{title}.xml
- Job posting data/job-postings/{company}-{title}.pdf
- Generated PDFs
This repo was designed to work with agentic coding AIs, like Cursor Agent.
New features should be first described in the proper markdown file in plans/
.
While you're using an agent, have the proper plan files in your context. Doing
this helps keep the agents on the right path.
Occasionally you need to fix bugs in the plans. Discrepancies & poorly organized thoughts can confuse agents. Use a reasoning model like o1 or R1 to help write clear & concise plans.
- Built with React + Vite
- TypeScript for type safety
- Material UI components
- GitHub API for storage
- Anthropic API for AI analysis
- Fork the repository
- Create a feature branch
- Submit a pull request
This application is designed to work with private GitHub repositories. Your resume data and job applications should be stored in a private repository that only you can access. The application code itself can be public, as it contains no sensitive information.