This project is a web application that allows users to paste their CV text and generate a summary using an advanced natural language processing model. The application is built with modern web technologies and leverages cloud services to provide a seamless and efficient user experience.
- Background
- Summary
- Technologies
- Features
- Getting Started
- Configuration
- Deployment
- Contributing
- License
The CV Summary App was developed to simplify the process of summarizing long CVs or resumes. It uses a large language model (LLM) to provide concise summaries that highlight the key aspects of a user's professional experience. This tool is especially useful for recruiters and HR professionals who need to quickly assess a candidate's qualifications.
This application allows users to input their CV text and, with the click of a button, generate a summarized version. The summary is generated using the Claude-3 Sonnet model from Anthropic, a state-of-the-art LLM known for its ability to understand and generate human-like text. The app is built with Next.js for the frontend and integrates with AWS services like Lambda and API Gateway to handle backend logic and API calls.
- Next.js: A React framework that provides server-side rendering and static site generation, ensuring fast performance and a great user experience.
- TypeScript: Provides static typing, enhancing code quality and developer productivity.
- Tailwind CSS: A utility-first CSS framework for creating responsive and modern user interfaces.
- AWS Lambda: A serverless compute service that runs your code in response to events and automatically manages the underlying compute resources.
- AWS API Gateway: A managed service that allows developers to create, publish, maintain, monitor, and secure APIs at any scale.
- AWS Bedrock: A fully managed service that provides easy access to advanced LLMs like Claude-3 Sonnet for various text generation and processing tasks.
- CV Text Input: Users can paste their CV text into a textarea for processing.
- Generate Summary: On clicking the "Generate Summary" button, the app calls an API to summarize the CV.
- Display Summary: The generated summary is displayed on the same page for easy access.
- Responsive Design: The app is designed to work on both desktop and mobile devices.
- Node.js: Ensure you have Node.js installed. You can download it from nodejs.org.
- AWS Account: You will need an AWS account to configure and deploy the backend services.
- Clone the repository:
git clone https://github.com/gocallum/gencvsummary.git cd cv-summary-app
npm install
npm run dev
Navigate to http://localhost:3000 to see the app in action.
To configure the API endpoint dynamically instead of hard-coding it into the application, follow these steps:
Create a configuration file: Create a .env.local file in the root directory of your project.
NEXT_PUBLIC_API_ENDPOINT=https://unnw2h2x8g.execute-api.ap-southeast-2.amazonaws.com/default/GenerateCVSummary
`` const apiEndpoint = process.env.NEXT_PUBLIC_API_ENDPOINT;
const handleSubmit = async (e: React.FormEvent) => { e.preventDefault();
try { const response = await fetch(apiEndpoint, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ cv_text: cvText }), });
const result = await response.json();
setSummary(result);
} catch (error) { console.error('Error generating summary:', error); } }; ``
Ensure .env.local is added to .gitignore to prevent it from being committed to version control:
echo .env.local >> .gitignore
Deploy Lambda function: Package your Lambda function and deploy it using the AWS CLI or AWS Console. Configure API Gateway: Create or update your API Gateway to point to your Lambda function.
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for more information.