Fog Creek

How We Use FogBugz for Recruiting

If I told you I ate my own dog food, would you think I was gross? Or would you know what I meant? That at Fog Creek we use our products internally as a kind of quality control and real-world test case.

Well, it’s the latter. I swear! One way we eat our own dog food at Fog Creek is by using FogBugz as an Application Tracking System (ATS) for all our recruiting. We’ve used FogBugz in this fashion for as long as our company’s been in business (some 16 years and counting!), and it works really well. I’ve outlined the process below so you can replicate it within your own company too.


Handling Job Applications

The first step is to have an Admin create a Project that will act as your Inbox. At the Creek, all applications from candidates sent to arrive in our Inbox. Every case is initially assigned to “Recruiting” which is a catch-all account we created so as to not overwhelm. I sort the inbox reverse chronologically by Area, so the most recent, “Not Spam” cases are the ones I see first.

Note: these are screenshots from our *actual* recruiting inbox - the names and cases are blocked out to protect our applicants!

Note: these are screenshots from our *actual* recruiting inbox – the names and cases are blocked out to protect our applicants!

We’ve set it up so every candidate who applies to a position at Fog Creek receives an auto-response from our Recruiting Robot with information about how recruitment works at Fog Creek.


With this response, candidates don’t have to worry if you’ve received their resume or not, and the fact that it’s canned, but still has personality sets it far apart from the generic forms most ATSs send out. We get loads of love for our robot – it sets the tone that this recruitment process actually won’t suck.

Reviewing Cover Letters

Moving on: We’ll use the story of a fictitious candidate who applied for a QA position at Fog Creek to walk you through our application process.

As the de-facto Head of Recruiting, I’m the first to take a look at each resume and cover letter. If you have a larger team, you can assign any member you like to this task. When I click into my applicant’s case, I see that Martha loves Fog Creek and that she wants to join our QA team.


Using the “Correspondent” column on the left, I can also she that Martha’s applied to Fog Creek before.

As the robot promised, we get back to every applicant, moving forward or not. If Martha were lacking, I’d reply to her email with a polite rejection using a snippet. Luckily for her, Martha has passed my initial screen. For my next step, I’ll move her from the Inbox to our Recruiting Queue, another Project in our FogBugz instance.


At this point, I also update the case’s Area – which corresponds to the position to which the candidate is applying – and the Milestone, which correlates to the whichever stage of the interview process the candidate is in. At Fog Creek we have 10 potential milestones, which include things like ‘Sales Pitch’, ‘SysAdmin Take Home Problem’ and ‘In-person with CEO’ – you can set your milestones to match whatever recruitment processes you have in place.

Lastly, I assign Martha’s case to Jude and request a resume screen. I’ve updated the “Due” date on the left side of the case and given Jude 1 full day to complete his screen. This is a great way to get rid of one of tech recruiting’s worst bottlenecks – waiting on developers to screen resumes! Lastly, I’ve subscribed to the case to make sure I see all updates. For example – if the candidate writes back in, I’ll get an email alerting me to the correspondence.

The Recruiting Queue

While Jude is reviewing Martha’s resume, let’s pause, and I’ll tell you a bit more about the Recruiting Queue. And just so you know – you’re about to get a super exclusive look into our *actual* queue – you are so lucky!

I organize my queue as follows: All active cases, sorted by Area (Position), then Milestone (Stage in the Process). Currently, I’m hiring on my SysAdmin & Support teams; you’ll see candidates for those 2 positions, plus Martha’s QA resume, below:

I sort this way so I can see how many candidates I have in the queue for each position, and so I can tell, of those candidates, how many are in each stage of the process. I star the cases that require my attention but I haven’t had time to respond to yet.

Sometimes I want to take stock of how many candidates I have in each stage of the process, so I’ll re-sort by Milestone to see how many “code screens” or “in-person interviews” are taking place this week and next.


I try to evenly distribute the load of recruiting and not put too much work on any one person. When I want to double check to make sure I’m meeting my goal, I’ll switch it up and resort by “Assigned To”


Yikes! I’ve got a lot of work to do. So let’s move on quickly!

From Resume Screening to Interview

Back to Martha: Jude has now completed his screen and (hurray!) Martha is moving on to the next round, which is a code screen. He’s assigned his case back to me, the Recruiter, to move her forward.

Because I subscribed to the case, I got an email with Jude’s assessment. I click into the case, change Milestone to “code screen”. Then use my snippets again to reach out to Martha and schedule an interview. I can email her right from FogBugz, which is handy for keeping all correspondence in one place.


Before I send, I’ll also update the “Due” date. I usually give candidates a day or two to respond.

Once we’ve gotten to the in-person stage, I notify each person interviewing Martha so they can add their interview times to their calendars. I keep the case assigned to myself as I’ll be facilitating the interview while Martha’s in the building.

After each interview, the interviewer edits the case with his/her feedback on the candidate’s performance. In Martha’s case – all hires! (we only hire those we all agree on, here’s why)


Sending out Offers

The next stage is the fun part of recruiting – the offer stage! Hiring people is the best; it’s also full of conversations that include personal and private information that a potential new employee doesn’t necessarily want to share with their potential new co-workers. To preserve Martha’s privacy, I move Martha’s case from the “Recruiting Queue” project to “Hiring” which has limited access. We have 2 Milestones in Hiring – Offer & Onboarding. Right now, Martha is in the Offer Stage, because we made her an offer. If Martha accepts the offer, she’ll move to “onboarding”. After her first month at the company, she’ll move from “Hiring” to our “Archive,” another secure project with access limited to admins, so that no employees can see what their coworkers said when hiring them.

And that’s it! We’ve gone from application to hire entirely within FogBugz. So, if you’re frustrated with the ATS your recruiting team is using, or if you’re a recruiter looking for a new system, I’d definitely recommend FogBugz. It’s simple, clean, easy to use, easy to teach(!) and reliable. If you have questions or want more information on how this works, find me on Twitter or email me –

Do you want to hire the best developers? Watch our video guide.