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.
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.
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.
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.
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.
Chapter 5: Filtering and sorting with Turbo Frames
Add filtering and sorting to the jobs and applicants pages using Turbo Frames and Kredis.
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.
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.
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.
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.
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.
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.
Wrapping up
Briefly recap what we built, and then find a wall of learning resources to help you on your way.