These docs use Slate to convert markdown files into the Bullhorn Rest API Docs Site.
Entity and operation reference pages can be created and updated with the rest-api-docs Claude plugin (in the claude-resources repo / Bullhorn Claude marketplace). It verifies fields, types, and required/read-only flags against the entity code and /meta, preserves the load-bearing table format, and drafts the CHANGELOG entry for you.
The full path from a code change to the live site at bullhorn.github.io/rest-api-docs is five steps:
Make required changes in the repo
In Claude Code / Cowork (with this repo and the entity-source repo available):
/rest-api-docs:update-api-doc <Entity or operation> # e.g. Timesheet, or "search"
The skill edits the entity or operation page under source/includes/, registers any brand-new page in source/entityref.html.md, and drafts the CHANGELOG entry. It stops there — branching, the PR, and publishing are manual. Review the diff and the skill's handoff summary before continuing.
Branch off dev (PRs target dev — never master, per CONTRIBUTING.md). Name the branch after the Jira ticket:
git checkout dev && git pull
git checkout -b f/BH-XXXXX # e.g. f/BH-101708
git add source/includes/...
git commit -m "<entity>: <change>" # e.g. "timesheet: units BigDecimal + amount field"
git push -u origin f/BH-XXXXXOpen a PR on GitHub from your branch into dev. Use the same <entity>: <change> title, link the Jira ticket, and paste the skill's handoff summary (source citations + breaking notes) into the description so reviewers can verify against code.
After review approval, merge the PR into dev. Resolve any CHANGELOG conflicts by keeping both entries under the current release section.
Trigger the publisher job — it builds the Slate site and deploys it to the gh-pages branch that serves the public docs site:
API_Documentation_publisher (bosjenkins.bullhorn.com → Dev-Practice → API_Documentation_publisher)
Run "Build Now", wait for the job to go green, then confirm the change is live. The published site lags the merge until this job runs — merging alone does not publish.
Local preview (optional):
bundle install && bundle exec middleman serverserves the site atlocalhost:4567so you can eyeball tables and anchors before opening the PR.
You're going to need:
- Ruby 2.7+ (we recommend using rbenv or RVM)
- Bundler -
gem install bundler
# Install dependencies
bundle install
# Start the local development server
bundle exec middleman serverYou can now see the docs at http://localhost:4567
# Build the Docker image
docker-compose build
# Run the development server
docker-compose up-
Import
Code Generation.postman_collection.jsonto Postman -
Fill out the script parameters under the 'Pre-request scripts' tab as follows:
- If documentation has already been generated for your entity, copy and paste the full file contents as the
currentDocumentationparameter - If generating documentation for a new entity, fill out the
originalEntityparameter with the name of the entity (no spaces) - For either of the above cases, if the entity belongs to a specific mission, fill out the
originalEntityMissionparameter with the mission name
- If documentation has already been generated for your entity, copy and paste the full file contents as the
-
Send the request
-
View your Postman console (
View -> Show Postman Console, orCtrl+Alt+Con Windows) and copy the new documentation -
Paste the new documentation in the corresponding file in this repository
To deploy to GitHub Pages:
# Build and deploy the site
bundle exec rake publishThis will build the static site and push it to the gh-pages branch.
This documentation site is built with:
- Middleman 4.6 - Static site generator
- Sass/SCSS - For styling with variables and mixins
- Ruby 3.0 - Runtime environment
- Sprockets - Asset pipeline for CSS/JS compilation
- SCSS files are compiled automatically by Sprockets
- The site uses a responsive design that works on desktop and mobile
- Syntax highlighting is provided by Rouge
- Search functionality is built-in for easy navigation
- Bundle install fails: Make sure you have Ruby 2.7+ installed
- Middleman server won't start: Check that all dependencies are installed with
bundle install - CSS not loading: Ensure SCSS files are properly named and located in
source/stylesheets/
For more information about Slate, see the official Slate documentation.