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:
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.
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:
- "Can candidates apply without uploading a résumé?"
- "This doesn't work on my phone."
- "Can we change the colors to match our brand?"
- "We need separate portals for our IT and Healthcare divisions."
- "The WordPress plugin stopped working."
- "Can we show custom fields on the job listing?"
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 →