{"id":26035775,"url":"https://github.com/seanverano/careerly","last_synced_at":"2026-04-10T11:03:37.897Z","repository":{"id":280973576,"uuid":"943785800","full_name":"seanverano/careerly","owner":"seanverano","description":"Careerly offers 3 essential tools in one platform to help job seekers. Users can build their resume, practice interviews with AI feedback, or find job matches tailored to them. 💼","archived":false,"fork":false,"pushed_at":"2025-03-13T09:30:26.000Z","size":1823,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-13T10:32:13.991Z","etag":null,"topics":["api","express","full-stack","gemini-api","jwt","mongodb","nodejs","react","serperapi","tailwindcss","tomtom-api","web-speech-api"],"latest_commit_sha":null,"homepage":"https://try-careerly.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seanverano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-06T09:07:38.000Z","updated_at":"2025-03-13T09:30:31.000Z","dependencies_parsed_at":"2025-03-06T21:31:26.003Z","dependency_job_id":null,"html_url":"https://github.com/seanverano/careerly","commit_stats":null,"previous_names":["seanverano/careerly"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/seanverano/careerly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanverano%2Fcareerly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanverano%2Fcareerly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanverano%2Fcareerly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanverano%2Fcareerly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanverano","download_url":"https://codeload.github.com/seanverano/careerly/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanverano%2Fcareerly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31639526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","express","full-stack","gemini-api","jwt","mongodb","nodejs","react","serperapi","tailwindcss","tomtom-api","web-speech-api"],"created_at":"2025-03-07T05:55:35.707Z","updated_at":"2026-04-10T11:03:37.887Z","avatar_url":"https://github.com/seanverano.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Careerly**\n\nCareerly offers three essential tools in one platform to help job seekers advance their careers with ease and confidence. Users can build their resume effortlessly, practice interviews with AI feedback, or find job matches tailored to them.\n\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/S0BWA4l.png\" alt=\"Careerly Banner\" style=\"width: 100%; height: auto;\"\u003e\n\u003c/p\u003e\n\n---\n\n## **🧭 Navigation**\n\n- [📋 Project Information](#seven)\n- [❓ The Problem](#one)\n- [🏛️ Technical Architecture](#two)\n- [🌟 Key Features](#three)\n- [🚩 API Endpoints](#four)\n- [⚙️ Installation \u0026 Setup](#five)\n- [🛠️ Technologies Used](#six)\n- [🔮️ Future Plans](#eight)\n\n---\n\n## \u003ca name=\"seven\"\u003e\u003c/a\u003e📋 Project Information\n\n### **Links**\n\n- 🔗[**Private Source Code (Original)**](https://gitlab.com/uplift-code-camp/students/batch-22/groupin/projects/group-4)\n- 🔗[**Official Website**](https://try-careerly.vercel.app/)\n- 🔗[**Public Source Code**](https://github.com/seanverano/careerly)\n- 🔗[**Demo Video \u0026 Preview**](https://www.youtube.com/watch?v=UxlkN8WpmL8)\n\n**Disclaimer:**  \nThe original repository, made by our team, is hosted as a private repository on GitLab. As it poses a security risk, I decided to clone the repository to showcase the source code here.\n\nCareerly was our final bootcamp project at Uplift Code Camp, built collaboratively as a team between November and December 2024.\n\n### **Our Team**\n\n- **Sean Dustin Verano** (*Full Stack Developer*) | [LinkedIn](https://www.linkedin.com/in/sdverano/) \n\u003cbr\u003eTeam Leader, overseeing the project; Lead development of AI Interview Prep, overall UI Designer, and manages the database\n\n- **Ivan Patrick Prejoles** (*Full Stack Developer*) | [LinkedIn](https://www.linkedin.com/in/ivan-patrick-prejoles/)\n\u003cbr\u003eLead development of Tailored Job Matches and implemented both frontend and backend for two APIs related to the feature\n\n- **Patrick Dilen Reyes** (*Backend Developer*) \n\u003cbr\u003eLead development of User Authentication, implemented backend\n  \n- **Einon Cris Alcantara** (*Frontend Developer*) | [LinkedIn](https://www.linkedin.com/in/einon-cris-alcantara-6623b52bb/) \n\u003cbr\u003eLead development of Resume Builder\n  \n---\n\n## \u003ca name=\"one\"\u003e\u003c/a\u003e❓ The Problem\n\nPreparing for a job search is overall time-consuming, and traditional methods often overwhelm job seekers, leaving them unsure where to focus. \n\nA streamlined solution is needed to help job seekers spend more time focusing on improving their skills rather than spending it on tasks such as creating a resume or searching for job listings.\n\n---\n\n## \u003ca name=\"two\"\u003e\u003c/a\u003e🏛️ Technical Architecture\n\n### **Frontend (React)**\n\n- **`/`**: Homepage, platform overview with its features, and a section with our team's information.\n- **`/login`**: Login page for users to access their account.\n- **`/register`**: Registration page to create a new account.\n- **`/main-menu`**: Menu where users can choose between the three features.\n- **`/resume-builder`**: Feature 1 Page where users can build their resume.\n- **`/interview-dashboard`**: Feature 2 Page where users can manage questions and start a mock interview session with AI.\n- **`/job-finder`**: Feature 3 Page where users can search for jobs by inputting data and information.\n\n\n### **Backend (Express/Node.js)**\n\n- Authentication middleware to secure API access.\n- RESTful API for both feature 2 and feature 3.\n- Integration with Google's Gemini API for AI-powered answer feedback and rating.\n- Integration with TomTom API for location-based job search using geolocation data.\n- Integration with Serper API for enhanced job search functionality, providing results based on location and other relevant criteria.\n\n---\n\n## \u003ca name=\"three\"\u003e\u003c/a\u003e🌟 Key Features\n\n### **Resume Builder**\n\n- **Instant Preview**: Instantly view changes made to the resume as you input details.\n- **Downloadable PDF**: Easily export the resume in a professional PDF format.\n- **User-Friendly Template**: Access to intuitive UI template and forms for smooth data input.\n- **Fully Mobile Responsive**: Seamlessly use this feature on any device, with a responsive layout that adapts to all screen sizes.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/ilHgV4F.png\" alt=\"Resume Builder Preview\" style=\"width: 80%; height: auto;\"\u003e\n\u003c/p\u003e\n\n### **AI Interview Prep**\n\n- **Real-Time Voice-to-Text Conversion**: Seamlessly transcribe spoken answers for evaluation.\n- **AI-Powered Evaluation**: Analyze answers for quality and relevance using Google's Gemini API.\n- **Flexible Input Methods**: Support for both voice and text responses.\n- **Detailed Feedback Generation**: Actionable insights (rating and feedback) for better preparation.\n- **Fully Mobile Responsive**: Seamlessly use this feature on any device, with a responsive layout that adapts to all screen sizes.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/Jgdhjpb.png\" alt=\"AI Interview Prep Preview\" style=\"width: 80%; height: auto;\"\u003e\n\u003c/p\u003e\n\n### **Tailored Job Matches**\n\n- **Custom Job Preferences**: Set job title, skills, experience level, salary range, and preferred locations to refine job search results.\n- **Job Search Results**: View job listings based on your personalized preferences with the click of a button.\n- **Direct Access to Job Boards**: Easily access job listings on platforms like Glassdoor, LinkedIn, and Indeed with a simple click.\n- **Fully Mobile Responsive**: Seamlessly use this feature on any device, with a responsive layout that adapts to all screen sizes.\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/D4Zp64V.png\" alt=\"Tailored Job Matches Preview\" style=\"width: 80%; height: auto;\"\u003e\n\u003c/p\u003e\n\n---\n\n## \u003ca name=\"four\"\u003e\u003c/a\u003e🚩 API Endpoints\n\n### **User Authentication**\n\n| Method | Endpoint                | Description           |\n| ------ | ----------------------- | --------------------- |\n| POST    | `/api/v1/auth/register`     | Register a new user     |\n| POST   | `/api/v1/questions/login`     | Sign in the user |\n| GET  | `/api/v1/auth/profile` | Get the authenticated user’s profile     |\n| POST | `/api/v1/auth/logout` | Log out the user     |\n\n### **AI Interview Prep**\n\n| Method | Endpoint                | Description           |\n| ------ | ----------------------- | --------------------- |\n| GET    | `/api/v1/questions`     | Get all questions     |\n| POST   | `/api/v1/questions`     | Create a new question |\n| PATCH  | `/api/v1/questions/:id` | Update a question     |\n| DELETE | `/api/v1/questions/:id` | Delete a question     |\n| POST   | `/api/v1/interviews`            | Create a new interview      |\n| GET    | `/api/v1/interviews/:id`        | Get interview details       |\n| POST   | `/api/v1/interviews/:id/answer` | Submit an answer for review |\n\n### **Tailored Job Matches**\n\n| Method | Endpoint                        | Description                 |\n| ------ | ------------------------------- | --------------------------- |\n| POST   | `/api/v1/jobs/search-locations`            | Search for job locations      |\n| POST    | `/api/v1/jobs/search-jobs`        | Search for jobs based on user inputs       |\n\n\n---\n\n## \u003ca name=\"five\"\u003e\u003c/a\u003e⚙️ Installation \u0026 Setup\n\n### **1. Clone the repository:**\n   ```bash\n   git clone https://github.com/seanverano/careerly.git\n   ```\n\n### **2. Install dependencies:**\n**Backend**\n   ```bash\n   cd backend/auth\n   npm install\n   \n   cd backend/api\n   npm install\n   ```\n**Frontend**\n   ```bash\n   cd frontend\n   npm install\n   ```\n### **3. Set up environment variables:**\n**API (Backend)**\n ```bash\nPORT=1017\nMONGO_URI=your_mongodb_uri_api_db\nACCESS_TOKEN_SECRET_KEY=your_jwt_secret_access\nACCESS_TOKEN_EXPIRATION=1d\nGEMINI_API_KEY=your_gemini_api_key\nTOMTOM_API_KEY=your_tomtom_api_key\nSERPER_API_KEY=your_serper_api_key\n\n   ```\n**Auth (Backend)**\n ```bash\nPORT=1016\nMONGO_URI=your_mongodb_uri_auth_db\nACCESS_TOKEN_SECRET_KEY=your_jwt_secret_access\nREFRESH_TOKEN_SECRET_KEY=your_jwt_secret_refresh\nACCESS_TOKEN_EXPIRATION=1d\nREFRESH_TOKEN_EXPIRATION=7d\n\n   ```\n### **Frontend**\n ```bash\nVITE_AUTH_BACKEND_URL=http://localhost:1016\nVITE_API_BACKEND_URL=http://localhost:1017\n   ```\n\n### **4. Start the application:**\n**Backend**\n   ```bash\n   cd backend/auth\n   npm run dev\n   \n   cd backend/api\n   npm run dev\n   ```\n**Frontend**\n   ```bash\n   cd frontend\n   npm run dev\n   ```\n   \n---\n\n## \u003ca name=\"six\"\u003e\u003c/a\u003e🛠️ Technologies Used\n\n### **Frontend:**\n- React\n- React Router\n- Tailwind CSS\n- Lucide Icons\n- jsPDF\n- html2canvas\n- Web Speech API\n\n### **Backend:**\n- Node.js\n- Express\n- MongoDB/Mongoose\n- JSON Web Tokens\n- Google Gemini API\n- TomTom API\n- Serper API\n\n---\n\n## \u003ca name=\"eight\"\u003e\u003c/a\u003e🔮 Future Plans\n\n- **Expand Sign-In Options**: Adding OAuth, Google, and social media logins for easier and more secure access.\n  \n- **Transition to SaaS**: Shifting Careerly to a subscription-based SaaS platform, offering premium features and personalized services.\n\n- **Analytics Dashboard**: Introducing a dashboard to track job search, resume, and interview progress.\n\n- **Mobile App Development**: While Careerly is fully mobile-responsive and scalable on smaller screens, a dedicated mobile app would be great.\n\n---\n\n\n## \u003ca name=\"nine\"\u003e\u003c/a\u003e⚖️ License\n\nThis project is licensed under the MIT License, see the [**LICENSE**](https://github.com/seanverano/careerly/blob/master/LICENSE) file for details.\n\n---\n\n\n## \u003ca name=\"four\"\u003e\u003c/a\u003e🤝 Contributing\n\nThis project is open for contributions! Feel free to submit issues and pull requests.\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanverano%2Fcareerly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanverano%2Fcareerly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanverano%2Fcareerly/lists"}