Skip to content

paescuj/jaa

Repository files navigation

Job Application Assistant

Keep track of your ongoing job applications and impress your future employer with a unique way of applying

License CI

Key FeaturesUsageBuilt WithDisclaimerLicense

Demo

Key Features

  • Admin area where you can manage all your job applications:
    • Upload of generic and job-specific application documents (PDFs)
    • Automatically generates and stores screenshots of job ads and documents
  • Dedicated access for each company:
    • Web page with introduction text, application documents and chat widget
    • Companies will be able to filter, search, drag'n'drop and download application documents and contact you
  • Customizable "Intro" text and "About" page
  • Support for multilingualism
  • Light & dark mode
  • Responsive & accessible

Usage

Development

Development - Initialization

Initialize and start the dev environment:

# Random access data will be generated and displayed during initialization
./run.sh init

Development - Commands

Start dev environment when already initialized:

./run.sh

Run arbitrary docker-compose command:

./run.sh cmd ps

Destroy the dev environment:

./run.sh destroy

Production

Currently intended for a single Docker swarm host with Traefik configured.

Production - Initialization

Initialize the app:

# Docker host where the app is deployed to
export DOCKER_HOST='ssh://user@remotehost'
# Domain under which the app will be available
export PUBLIC_DOMAIN='jaa.example.org'
# Registry where the image will be pushed to (e.g. your Docker Hub user or URL to another registry)
# (if omitted, the image is uploaded directly to your DOCKER_HOST)
export REGISTRY_PREFIX='docker-hub-user'
export JAA_ENV='prod'

# For further configuration variables, consolidate the 'run.sh' script.
# You can also change them later on in the '.env.prod' file.
# Some examples:
# export CHATWOOT_SMTP_ADDRESS='mail.example.org'
# export CHATWOOT_SMTP_USERNAME='chatwoot@jaa.example.org'
# export CHATWOOT_SMTP_PASSWORD='your-mail-account-password'

# Random access data will be generated and displayed during initialization
./run.sh init
Chatwoot
  • Log in to the «Job Application Assistant» with the admin user, go to the settings tab and click on the Chatwoot instance link.

  • Create a Chatwoot account.

    (Hint: Use your name as company name)

  • Get your API token from the profile settings page.

  • Back in the «Job Application Assistant», click on the Chatwoot setup button and paste your token there.

Production - Commands

Update / redeploy the app:

JAA_ENV='prod' ./run.sh

Run arbitrary docker command:

JAA_ENV='prod' ./run.sh cmd stack ps jaa

Undeploy and delete everything (⚠️):

JAA_ENV='prod' ./run.sh destroy

Built With

Jaa is built with the following great open source components:

  • Next.js - The React Framework for Production
  • Chakra UI - A simple, modular and accessible component library
  • Iconoir - The Definitive Open Source Icons Library
  • Directus - Open-Source Data Platform
  • PostgreSQL - The World's Most Advanced Open Source Relational Database
  • Chatwoot - Open-source, self-hosted customer communication platform
  • Docker - Containerization technology
  • ... and many more

Disclaimer

This project was created for fun and as a playground to experiment with different technologies. When it comes to frontend libraries, I definitely prefer Vue, but I wanted to create my own application with React and Next.js to gain some experience. The project also serves as a showcase of how to use various features of Directus.

No active maintenance to be expected!

License

MIT

About

Job Application Assistant - Keep track of your ongoing job applications and impress your future employer with a unique way of applying

Topics

Resources

License

Stars

Watchers

Forks