Introduction to Hotwired ATS

What is Hotwired ATS? What are we building? Plus practical tips of using this book and a sermon on taking breaks and letting ideas percolate instead of copy/pasting at hyper speed.

Read it

Chapter 1: Application setup with esbuild

Create the Rails application we will use throughout the rest of the book and configure it with all of the core tools we need to build our modern Rails 7 application.

Read it or View the source

Chapter 2: Users and accounts with Devise

Create accounts and users with Devise, including Rails 7 and Turbo compatibility workarounds. Build our first Stimulus controller to provide toast-style flash messages.

Read it or View the source

Chapter 3: Job postings

Create the CRUD interface for job postings, one of the core resources of our applicant tracking system. Add job descriptions with Trix. Use CableReady, Mrujs, and Stimulus to build a slideover drawer to manage job postings, plus a sidebar to build the same interface with Turbo Streams and Turbo Frames.

Read it or View the source

Chapter 4: Creating and moving applicants

Create the CRUD interface for managing applicants. Attach resumes with ActiveStorage. Review two methods for dragging and dropping applicants between hiring stages, one Stimulus-only method, another with StimulusReflex.

Read it or View the source

Chapter 5: Filtering and sorting with Turbo Frames

Add filtering and sorting to the jobs and applicants pages using Turbo Frames and Kredis.

Read it or View the source

Chapter 6: Viewing and contacting applicants

Build an applicant show page layout with attached resumes rendered on the page. Add the ability to send emails to applicants and receive email replies from applicants with ActionMailbox. Render applicant emails and resumes in Turbo Frames.

Read it or View the source

Chapter 7: Building a notification system

Create a reusable user notification system modeled on the Noticed gem. Add notifications when new inbound emails are received. Render notifications in real time with Turbo Stream broadcasts and Stimulus. Dismiss read notifications with StimulusReflex.

Read it or View the source

Chapter 8: Public-facing application pages

Build public account and job pages to collect inbound job applications from anonymous users. Use CableReady to collect applications. Context-aware broadcasting of new applications in real time with StimulusReflex and CableReady.

Read it or View the source

Chapter 9: User management

Build the CRUD interface for account users. Invite newly created users to login to their user accounts. Edit existing users inline with Turbo Frames. Render errors inline across the application.

Read it or View the source

Chapter 10: Interactive charts with StimulusReflex

Use ApexCharts to render charts on the account dashboard. Use StimulusReflex to adjust chart data in response to user feedback.

Read it or View the source

Chapter 11: Applicant comments and user mentions

Add internal comments to applicants. Mention users in comments with StimulusReflex and tributejs. Notify users when they are mentioned in a comment. Configure Sidekiq for background jobs.

Read it or View the source

Wrapping up

Briefly recap what we built, and then find a wall of learning resources to help you on your way.

Read it