CoverCraft is a project that generates cover letters from a job description and a resume using an AI model powered by ChatGPT-3. This project is built using Go (Golang), PostgreSQL, and the Echo web framework for creating a web-based application with simple HTML forms.
Before you can run the CoverCraft project, you need to have the following prerequisites installed:
-
Go (Golang): Install it from the official Go website.
-
PostgreSQL: Install PostgreSQL and create a database for the project. Update the database connection configuration in
config/db.go. -
OpenAI API Key: Acquire an API key from OpenAI to use the ChatGPT-3 AI model.
-
Clone the CoverCraft repository to your local machine:
git clone https://github.com/yourusername/CoverCraft.git cd CoverCraft
Install project dependencies using the provided Makefile:
make installStart the application using the Makefile:
make runAlternatively, you can start the application using docker compose with the following commands:
make compose-build
make compose-upAccess the CoverCraft application by navigating to http://localhost:your_port in your web browser.
Use the simple HTML forms to input a job description and resume.
Submit the form to generate a cover letter using the AI model powered by ChatGPT-3.
The project is organized into the following directories:
-
app/main.go: Contains the entry point of the application. -
config/db.go: Manages the database connection and configuration. -
domain/repositories: Contains the data access layer. -
domain/aggregates: Houses business models with access roots. -
domain/interfaces/http: Contains HTTP interfaces and handlers for various components, such as job handling and cover letter optimization. -
domain/services: Contains the service layer to interact with ChatGPT-3 for generating cover letters. -
domain/valueobjects: Contains request value objects used in the application. -
entities: Contains database entities, such as the Job entity. -
templates: Contains HTML templates for rendering web pages.
Contributions to CoverCraft are welcome! If you have ideas for improvements, new features, or bug fixes, please create a pull request. For major changes, please open an issue first to discuss your ideas.
This project is licensed under the MIT License.