Tonic HQ Careers
📖 The Story

Why we built a better
Bullhorn career portal

We've spent years configuring the Open Source Career Portal for our clients. We knew every limitation, every workaround, every frustrated email. So we built what it should have been all along.


The problem we kept running into

Bullhorn doesn't have a built-in career portal like other ATS vendors. Instead, they offer an open-source Angular application - the Open Source Career Portal (OSCP) - that you download, configure, and host yourself.

In theory, it's fine. In practice, it's a constant source of friction for every staffing firm that uses it.

The OSCP hasn't seen meaningful development in years. Its GitHub issues pile up unanswered. The WordPress plugin throws 403 errors. There's a bug in the compiled JavaScript bundle that breaks the sort feature. And the most common feature request from candidates - applying without uploading a résumé - is architecturally impossible because the portal uses Bullhorn's "parse résumé" endpoint, which requires a file.

The moment it clicked: We realized we were spending more time working around the OSCP's limitations than it would take to build something better from scratch. The entire portal is three API calls - search jobs, get job details, submit an application. That's it.

What we did first: research

Before writing a single line of code, we dug into the OSCP source code one more time and surveyed the competitive landscape. We already knew the pain points - we wanted to understand what everyone else was charging to solve them, and whether anyone actually had.

The OSCP deep dive

We cloned the repository, read every component, traced every API call, and catalogued every open issue. These stats are pulled live from the OSCP GitHub repo:

API Surface
3 endpoints
Search, detail, and apply. That's the entire portal.
Open Issues
41 unresolved
Including broken sort, broken WordPress plugin, and no quick apply.
Commits (last 6 months)
2 commits
Occasional doc link additions. No feature development.
Angular Version
10.2 (current: 19)
Five major versions behind. Originally released June 2020.
Tech Stack
Angular + novo-elements
Bullhorn's internal UI library. Not on npm. Hard to customize.

Where we fit

There are great companies building career sites and marketing platforms in the Bullhorn ecosystem - Haley Marketing, Staffing Future, Shazamme, and others. We know them, we see them at conferences, and they do great work. But they're solving a different problem than we are.

Those companies offer full-service marketing, complete website builds, and comprehensive digital strategies. If that's what you need, go talk to them - seriously. They're good at it.

But if you just need a career portal - a clean, modern page where candidates can find and apply for your jobs - you shouldn't have to buy a marketing agency retainer or a full website rebuild to get one. That's the gap we're filling.

Our thesis: Bullhorn should have shipped a modern career portal years ago. They didn't, so we built what it should have been - fast, mobile-friendly, and priced so every staffing firm can afford one. Not a marketing platform, not a website builder. Just the career portal, done right.

The hidden cost of "free"

The OSCP is marketed as free. It is not free. Here's what "free" actually costs you:

Hosting: You need somewhere to put it. Shared hosting on GoDaddy runs $10-20/month. A VPS with SSL is $20-50/month. That's $120-600/year before you've configured anything.

Configuration time: The OSCP requires editing JSON files, understanding Angular build pipelines, and deploying to a web server. For most staffing firms, this means hiring a developer or paying their Bullhorn partner (us, historically) to set it up. That's easily 2-5 hours of billable time.

Ongoing maintenance: When something breaks - and it does - someone has to debug an Angular application built on a proprietary UI library. That's not your average IT person's skill set. Every support ticket costs time and money.

Security risk: This is the one nobody talks about. The OSCP collects candidate personally identifiable information - names, email addresses, phone numbers, résumés. If you're hosting this on a shared GoDaddy account with no SSL certificate, no WAF, no security headers, you're transmitting PII in plaintext. That's not just bad practice - it's a compliance liability. GDPR, CCPA, and basic data protection standards require encrypted transmission of personal data. A "free" portal that exposes your candidates' information is a lawsuit waiting to happen.

When you add it up, the OSCP costs most firms $500-1,500 in the first year between hosting, setup time, and maintenance - plus the ongoing risk of running an unmaintained application that handles sensitive data.


What we built

The Tonic Career Portal is everything the OSCP should have been. Same familiar layout, modern technology, and none of the limitations.

Feature comparison

Feature Bullhorn OSCP Tonic Career Portal
Quick Apply ✗ Résumé upload required for every application ✓ Name + email - done. No file needed.
Mobile Experience ✗ Desktop layout squeezed onto small screens ✓ Mobile-first. Slide-up filters, sticky Apply button, full-screen forms.
Modern Design ~ Angular Material from 2017 ✓ Clean, modern UI. Premium feel without the premium price.
Embeddable ✗ Standalone only ✓ Standalone or iframe embed on any website
Visual Theming ✗ Edit JSON, rebuild Angular app, redeploy ✓ Admin page with live preview - colors, fonts, logo, no code
Custom Fonts ✗ Whatever the framework ships ✓ Google Fonts selector + custom font upload
Job Preview on Cards ✓ Shows description snippet ✓ 2-line preview on every card
Google for Jobs ~ Only in SSR mode (requires Node.js hosting) ✓ Schema.org markup on every page, no server needed
WordPress Integration ✗ Plugin exists but throws 403 errors ✓ Embed script works on WordPress, Squarespace, Wix - anything
Divisional Portals ✗ Fork the entire app per division ✓ One config change - different branding and filters per division
Full API Access ✗ Public API only - limited fields ✓ Public or full REST API - read and write any field
Email Notifications ✗ None ✓ Applicant confirmation + recruiter notification
SSL / Security ~ Depends entirely on your hosting setup ✓ HTTPS by default, secure credential handling, no PII exposure
Maintained ✗ 39 open issues, bugs in compiled bundles ✓ Actively developed. Issues get fixed.
Page Speed ~ Angular SPA - full framework download ✓ Static HTML - sub-second loads, minimal JavaScript
Migration Effort — ✓ Paste your OSCP URL → see your jobs instantly
True Cost ~ $500–$1,500/yr (hosting + setup + maintenance + risk) ✓ $199 one-time or $499/yr hosted. That's it.

Instant migration

Every OSCP deployment has a public app.json configuration file. We built a tool that reads it and generates a preview of your career portal on Tonic - with your actual jobs, your branding, your configuration - in seconds.

No signup. No credit card. No sales call. Just paste your URL and see the difference.

Try it with your portal →

Built by people who know Bullhorn

Tonic HQ is a Bullhorn implementation partner. We've been configuring, customizing, and troubleshooting the OSCP for our clients for years. We know what staffing firms actually need from a career portal because we've heard the same requests hundreds of times:

Every one of those is a "no" or a "it's complicated" with the OSCP. Every one of them is built into Tonic Career Portal from day one.


Ready to upgrade your career portal?

See your actual jobs on Tonic in 10 seconds. No signup required.

Preview Your Portal →