Inspiration

As someone actively applying to jobs and internships, We found ourselves constantly rewriting resumes and cover letters to match each role—often without ever hearing back. It became a time-consuming and mentally draining process. We built this tool to simplify that experience. By automatically generating tailored, professional-grade application materials, this project helps save time, reduce stress, and make every application feel a little more effortless.

What it does

This tool uses Google’s Gemini API to generate tailored resumes and cover letters based on a user’s existing resume and a job description. Users simply paste their resume and the job posting, then click one of two buttons; Generate Cover Letter or Generate Tailored Resume. The tool intelligently analyzes both inputs and crafts professional, ATS-friendly application materials in seconds. It’s designed to save time, reduce repetitive writing, and help users submit personalized, polished applications with ease. The generated content can also be copied or downloaded instantly for use.

How we built it

We built the application using Node.js and Express for the backend, paired with a clean and responsive HTML, CSS, and vanilla JavaScript frontend. The core functionality is powered by Google’s Gemini 1.5 API, which we accessed through the @google/generative-ai SDK. Once a user submits their resume and a job description, our backend constructs a structured and context-rich prompt tailored to either generate a cover letter or a fully rewritten resume. This prompt is then sent to Gemini, which returns polished, professional content in real time.

On the frontend, we focused on a seamless user experience—allowing users to paste their content, trigger generation with a single click, and instantly copy or download the output. Styling was done with custom CSS for a modern, friendly interface that works well on both desktop and mobile. We used nodemon during development for live reloading and tested the app locally on macOS using VS Code. The entire project is modular, easy to extend, and deployable as a lightweight personal productivity tool or even a public-facing web service.

Challenges we ran into

One of the first challenges was getting the Gemini API to respond reliably. At first, I encountered 404 errors and permission issues, which turned out to be related to missing billing setup and incorrect model references. Even after resolving those, structuring the prompt to consistently return well-formatted resumes (especially following a strict template) required several iterations of testing and tweaking.

On the development side, managing the Node.js server came with its own set of frustrations—such as ports being blocked, server instances not shutting down cleanly, and debugging when things silently failed. Setting up CORS, ensuring payloads were properly parsed, and making sure large inputs didn’t break the request were all part of the process.

Additionally, formatting the generated output in a way that felt clean and easy to download (especially for resume content) was trickier than expected, and led to exploring different file output options like .txt and .pdf.

Overall, it was a valuable learning experience in backend setup, prompt engineering, and troubleshooting API-based workflows.

Accomplishments that we're proud of

We’re proud of building a fully functional AI-powered tool that transforms the job application process into something fast, efficient, and personalized. What started as a simple idea became a polished app with two distinct generation modes—cover letters and resumes—each tailored to real-world needs.

We successfully integrated the Gemini 1.5 API, engineered custom prompts for quality output, and created a clean, intuitive user interface. Getting the API to consistently generate resume content in a structured, ATS-friendly format felt like a big win. We also implemented file download functionality so users can instantly save and use their documents.

Most of all, we’re proud of solving a problem that many job seekers face—saving time, reducing burnout, and making each application feel a bit less overwhelming.

What we learned

This project was a deep dive into working with AI APIs in a real-world web app. One of the biggest takeaways was learning how to properly implement a generative AI service—specifically Google’s Gemini 1.5 API—using the official @google/generative-ai Node.js SDK. Understanding how the API wrapper works, how to format input and handle responses, and how to debug when things go wrong was a big part of the learning curve.

We also learned the importance of prompt engineering. Getting useful, well-structured responses from the AI required careful wording, especially when generating documents with specific formatting like resumes. We experimented with different prompt strategies to guide the model toward producing clean, professional output.

On the backend, we strengthened our knowledge of Express.js, CORS configuration, and proper request handling for large inputs. On the frontend, we learned how to create a user-friendly experience that supports real-time AI interactions, along with additional features like content downloading.

Overall, this project helped us understand the power—and the quirks—of integrating AI into web apps, and gave us practical skills in building smarter, more interactive tools.

What's next for Resume Pilot

The next big step is turning Resume Pilot into a Chrome extension. The goal is to make it even more seamless for users by allowing the tool to automatically grab job descriptions directly from job boards like LinkedIn, Indeed, or Glassdoor. Instead of copy-pasting the job description manually, the extension would detect when you're on a job posting and extract the relevant details with a single click.

We also plan to improve the output formatting, especially for resumes, by supporting PDF generation with styled templates, giving users ready-to-submit documents that look professional out of the box.

Long-term, we’d love to explore:

  • Saving user profiles to reduce repetitive input

  • Smart tone or industry presets (e.g., tech startup vs. finance)

  • Multilingual support

  • And possibly, real-time editing with AI suggestions

The vision is to make Resume Pilot a quick, intelligent assistant that integrates right into the job search workflow, so users can focus less on formatting and more on getting hired.

Built With

Share this project:

Updates