An AI-powered content generator that helps job seekers create tailored cover letters, recruiter responses, and follow-up messages using OpenAI's GPT API.
- 🤖 AI-Powered Generation: Uses OpenAI's GPT-3.5 to generate personalized content
- 📝 Resume Storage: Automatically saves and loads your resume for convenience
- 🎨 Multiple Content Types: Generate cover letters, email responses, or outreach messages
- 🎯 Multiple Tones: Choose from professional, casual, or witty tones
- 📊 Usage Tracking: 10 free generations per day with automatic daily reset
- 📱 Mobile-First Design: Fully responsive design that works on all devices
- 🎨 Beautiful UI: Built with PrimeReact and TailwindCSS using the Lara Dark Amber theme
- 📄 PDF Export: Export generated content as PDF
- 📋 Copy to Clipboard: Easy copying of generated content
- 🧙♂️ Wizard-Themed Experience: Magical notifications and loading animations
- ⚡ Loading Overlay: Wizard-themed loading spinner during content generation
- Framework: Next.js 15+ with App Router
- Language: TypeScript
- Styling: TailwindCSS + PrimeReact
- UI Components: PrimeReact (Lara Dark Amber theme)
- AI: OpenAI GPT-3.5 API
- PDF Export: html2pdf.js
- Form Handling: React Hook Form
- Validation: Zod
- Node.js 18+
- npm or yarn
- OpenAI API key
-
Clone the repository
git clone <repository-url> cd hire-my-ai
-
Install dependencies
npm install
-
Set up environment variables Create a
.env.localfile in the root directory:OPENAI_API_KEY=your_openai_api_key_here
Get your OpenAI API key from: https://platform.openai.com/api-keys
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
- Homepage: Click "Get Started" to begin
- Resume Input: Paste your resume (automatically saved for next time)
- Job Posting: Paste the job description and select your preferred tone
- Generate: Use the SplitButton to choose your content type:
- Cover Letter: Traditional job application format
- Email Response: Reply to a recruiter's email
- Outreach: Cold email to introduce yourself
- Review & Export: Review the generated content and export as PDF or copy to clipboard
src/
├── app/ # Next.js App Router pages
│ ├── api/ # API routes
│ ├── builder/ # Resume & job input page
│ ├── result/ # Generated content display page
│ └── layout.tsx # Root layout with providers
├── components/ # Reusable UI components
│ ├── hero-section.tsx # Homepage hero component
│ ├── resume-input.tsx # Resume input component
│ ├── job-posting-input.tsx # Job posting input component
│ ├── usage-display.tsx # Daily usage tracker
│ └── toast-provider.tsx # Toast context provider
├── lib/ # Library configurations
│ └── providers/ # React providers
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── hooks/ # Custom React hooks
POST /api/generate- Generates content using OpenAI with support for multiple types
| Variable | Description | Required |
|---|---|---|
OPENAI_API_KEY |
Your OpenAI API key | Yes |
- Connect your repository to Netlify
- Build settings (automatically configured via
netlify.toml):- Build command:
npm run build - Publish directory:
.next - Node version: 18
- Build command:
- Add environment variables in Netlify dashboard:
OPENAI_API_KEY: Your OpenAI API key
- Deploy
The project includes a netlify.toml file that automatically configures:
- Build command and publish directory
- Node.js version
- Redirects for SPA routing
- Serverless functions configuration
- Import your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy
-
Build the project
npm run build
-
Deploy the
.nextdirectory to your hosting provider
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
The app is configured to work seamlessly in both local development and production environments. The API routes will work locally with your .env.local file and on Netlify with environment variables set in the dashboard.
See CHANGELOG.md for a complete list of changes and features.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions, please open an issue on GitHub.
Built with ❤️ using Next.js, TypeScript, and OpenAI