ApplyWise (I didn't find a better name) is a comprehensive job application assistant that helps you streamline your job search process. It provides a suite of tools to make your job hunting more efficient and effective. Check HOW_IT_WORKS.md for a more detailed explanation.
- CV PDF Parser: Extract skills and experience from your resume automatically
- Application Tracking System (ATS): Keep track of all your job applications in one place
- [In development] Custom Resume Builder: Generate tailored resumes for each job application
- [In development] Custom Questions: Generate tailored answers for for each job application custom questions
- [In development] Cover Letter Generator: Create personalized cover letters for each position
- Interview Preparation: Get customized interview questions based on job descriptions
- Interview Practice Tool: Prepare effectively for your upcoming interviews
- Ruby 3.2.2 (check
.ruby-version
for exact version) - PostgreSQL
- Node.js 18+ and Yarn
- Docker (optional, for development)
- OpenAI API key and organization ID (Unless you just want to use the ATS to organize your search)
-
Clone the repository:
git clone https://github.com/j4rs/ApplyWise.git cd ApplyWise
-
Install Ruby dependencies:
./bin/setup
-
Install JavaScript dependencies:
yarn install
-
Set up OpenAI credentials:
# Create your credentials file EDITOR="code --wait" bin/rails credentials:edit
Add the following structure to the credentials file:
mission_control: http_basic_auth_user: admin http_basic_auth_password: your_mission_control_password aws: access_key_id: your_aws_id secret_access_key: your_aws_secret open_ai: dev: access_token: your_openai_api_key organization: your_openai_organization_id
-
Set up environment variables:
touch .env
Example of my local env vars:
SOLID_QUEUE_IN_PUMA=true LAUNCHY_DRY_RUN=true # used by letter_opener BROWSER=/dev/null # used by letter_opener ESBUILD_UPDATE_SERVER_PORT=3036 REACT_APP_RAILS_ENV=development RAILS_PORT=3100
-
Start the development server:
./bin/dev
The application will be available at http://localhost:3100
and the active jobs dashboard at http://localhost:3100/active_jobs (use the credentials for mission control set in step [4]).
The application does not send real emails (yet). So capture them with letter_opener
at http://localhost:3100/letter_opener
Alternatively, you can use Docker for development (not tested):
docker compose up
- Backend: Ruby on Rails 8.x
- Frontend: React + JS + TypeScript
- Database: PostgreSQL
- Styling: Tailwind CSS
- Deployment: Kamal (Docker-based)
- AI Integration: OpenAI API
Contributions to ApplyWise are welcome:
- Fork the repository
- Create a new branch for your feature:
git checkout -b your-feature-name
- Make your changes and commit them:
git commit -m "Description of your changes"
- Push to your fork:
git push origin feature/your-feature-name
- Create a Pull Request
- Follow Ruby style guide and use Rubocop for linting
- Follow TypeScript/React best practices
- Write clear commit messages
- Include tests for new features
- Update documentation as needed
If you find a bug or have a feature request, please open an issue on GitHub with:
- A clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
This project is licensed under the MIT License - see the LICENSE file for details.