Job Search Websites

This is more of a rant than a software design blog post. Over the past two or three years I’ve done quite a bit of job hunting. It’s still a painful process to look for a new job. Fortunately, my job search is over and I think I’ve finally found the job I can retire from. But back to the subject I really want to talk about. The job search website itself. There are a lot of them and they all have a lot of problems.

Let Me Hide Records!

My first, issue is that I can’t mark off jobs that I don’t want to see again. These are usually jobs that don’t match my search criteria or it’s a company that I have no interest in, or maybe the company is located too far away. What happens is that I go back a few days later to run my search again and these jobs just keep popping up. Especially the jobs that nobody wants (I see post dates from months ago, and that’s a clue that nobody wants that job). If there was a feature where you could add to the “don’t show me this job again” list, it would save me a lot of time. If the job post is updated, I might want it to show back up in my search list. Maybe the company changes their requirements or the job description and now it’s more appealing. Maybe they up their acceptable range of pay and now I can afford to take that job. I could see it showing back up on my search list, with maybe an “updated” note tag or something.

As the Crow Flies

This is a problem that drives me crazy. I enter the radius of how far I am willing to drive. Let’s say twenty miles max. Then the search pulls in all jobs in a twenty mile circular distance. Here’s the issue: I used to live in Germantown, Maryland and I would enter a job search for a .Net job within twenty miles. Here’s a map:

The green circle shows a twenty mile radius. My job list for such a search will contain mostly jobs in the Herndon, Reston and Ashburn area because that is the location of the largest data centers in the world. The problem that I have with a job in those areas is that the Potomac River is in the way and there are only two bridges from Germantown that cross that river. One bridge is on the beltway and the other is up at Point of Rocks (or further up at Brunswick). It would take an hour and a half to two hours to drive that far (during rush hour). The travel distance to Herndon is 35 miles by road.

Job search websites should compute according to the shortest route (at least). Google maps has this capability and there are programs and databases that compute this properly. A really good website would allow you to enter the amount of drive time. That would be more appropriate because a job in Frederick is really fast to travel to because it’s against the flow of rush hour traffic. So I would be willing to drive three times farther to a job in Frederick than to a job toward D.C.

Job Filter Criteria

There seems to be a universal problem with job filters. The number one filter that gives me the most trouble is the senior level filter. If I’m looking for a senior level developer position, I don’t want to see any entry level jobs. Sometimes I can get around this if there is a minimum acceptable pay amount. Many times, those jobs are just incorrectly marked or not marked in any way. The software that recruiters use should have a required field that determines what skill level the job entails. This can be a broad range that is exclusive (radio button selected). Like junior, mid-level and senior. I could even accept the occasional mid-level bleeding into my senior level searches. But I should never see any junior level jobs in my list if I specify a senior level position.

Some sites don’t respect the search criteria. I found that searching for C# jobs can bring in jobs looking for C and a lot of sites will mix in Java with any .Net searches. I should be able to select from a filter list of languages or stack to exclude Java listings.

Ridiculous Job Descriptions

This is the fault of companies that are posting the job and not anything wrong with the job search website. I see some postings that list crazy requirements. Medical software companies are some of the biggest abusers of this. They will list required experiences that include things like HL7, MU3 and they might even throw in experience in their own custom software as a requirement. To me, that says “GO AWAY!”. I don’t give those jobs the time of day. There are too many senior level developer jobs out there to waste my time just trying to figure out the industry specific acronyms. I worked at a medical software company for almost four years and I can tell you how long it took me to learn what I needed to know about HL7 to do my job: Less than one day. That’s right. The algorithms are in the specifications. HL7 has been around forever and MU3 is also a specification that, while it is complex, it can be broken down to the tiny piece, I as a developer, need to know right now to do my job.

What should be listed in the job description? The stack that the programmer will need to work in (if there is only one). HL7 and MU3 could be listed under the “bonus” section of knowledge. Keep the list of technology as short as possible. Maybe five items. You’ll never find a developer that has all fifty technologies that you are using. If you’re looking for a senior level developer, you don’t need a laundry list. Only the top three to five technologies. Better yet, leave the requirements list off and give a paragraph describing what technologies your team is currently working with.

Don’t list technologies like RabbitMQ as a requirement. Unless you have some complicated usage of this technology that requires a specialist. Any competent developer can figure out how to install and use RabbitMQ for queuing. Redis is another example that should not be listed under the requirements. I would put these technologies in a paragraph that describes your environment. Build some excitement about the technologies a potential new-hire would be working with but don’t make it required knowledge. It takes very little time to teach a developer how to connect to Redis and read or write data to it. Especially if they already have experience with database usage with ORMs like Entity Framework. I learned Lua on one job so I could use Redis for more a more advanced problem. I would never put Lua scripting knowledge in the required list.

Recruiters…Sigh.

I’m going to go a little off subject here (job search websites) and go into a super-rant. Recruiters. Software engineers don’t need these people. If you’re a software engineer and you’re not familiar with these people, you will learn. Recruiters have been the biggest waste of my time. Things could be different. These people could be making big bucks placing software engineers into positions with different companies. If they acted like they were job placement agents, I would have stuck with a recruiter until they found me a job and they could have collected their fee. In the end, no recruiter has ever collected money from placing me in a job. Why? Because they always crash and burn.

Here’s what they do. They show up in my email or they call and leave a message my phone or they show up in my message box on sites like LinkedIn. They leave me a message that is vague about the job they have and they think I’m a great fit. They just want to have a quick chat to see what I’m looking for. So I bite. I figure, “Yeah, this person sounds like they want to earn a fee to place me in a job and I just happen to be looking for a job right now!” Then I get into a telephone conversation or a text message conversation (in the case of LinkedIn). I describe my skills and what I’m looking for. After that I don’t hear from them again. I suspect that many times after they ask what my current wage is, that ends the conversation. The other instance is that they ask if I’ve sent out any resumes already or I might mention that I have sent resumes and they ask which companies. Then I list the companies I’ve sent resumes to and the one they were going to place me in is on my list. So I say: “Put me in your Rolodex and call me back when you have another match.” I assume these people are trying to place developers into a job. What they are really trying to do is find a developer they can jam into the one job they are collecting a fee from. I ask myself, if they could place me in that job, couldn’t they take my skills that they just collected over the phone, and place me in another job? They could, but they won’t.

On my last job search, I entertained quite a few recruiters. It was part of an experiment that I was running. I had a suspicion that I wanted to confirm. Recruiters are only trying to find a body to fit the job they are working right now. I know this, because I talked to no less than three different recruiters who were all trying to fill the same job. That was quite discouraging. That tells me that dozens of recruiters are competing to fill a position instead of trying to place a person. They could do both: Look for multiple people to fit a position and look for multiple jobs to place a person. Once they have collected information about what a developer is looking for, they could find multiple matches for companies that pay them a fee and try to get interviews lined up. Let’s call it a job match-making service. This would be ideal for software engineers because we could just find a recruiter and let them do the leg work.

Some of these recruiters probably work for the company that is looking to fill the job. I remember Credible Behavioral Health hired three on-site recruiters to look for tech people. Unfortunately, these people are not very good at finding people. I still get emails from them that there are job openings at Credible for senior software engineering positions. This always puts a smile on my face. That poor recruiter doesn’t even realize that I worked there for four years and quit for a reason. If I get calls from three different recruiters from the same company, that just means they are not sharing information about who they are calling (or they are independent recruiters). If they work for the same company, they should create a shared list of potential candidates. They should also look at the resumes or on-line work history (like the LinkedIn Profile) to match anyone who might have already worked at the company they are working for (Credible is one of the companies listed on my resume). A little research can save them and me a lot of time.

In the 90’s there were companies that performed a service called job placement. They received a fee from the company that hired you. They probably had a list of companies that would pay a fee to find people and then they would help the candidates prepare for interviews and give them pointers on how to get the job. This was a very nice service that I used to get a job at Pirelli in California in the late 90’s. I ended up interviewing at one company first and it didn’t work out. I didn’t care for the company and they didn’t think I was a good fit. A week later, I had an interview lined up with Pirelli. They hired me right away. It was so painless. I still have really great memories about that job placement agency. To my knowledge those companies don’t exist any more.

I also have memories of contracting companies. Those still exist and I refuse to take a contract position. They usually pepper my email in-box with job offers, which I promptly delete. They don’t usually pursue me beyond the email spamming level. They know that at my experience level, I don’t have to take a contract position. They also know that I know this.

Finally…

I’m going to wrap up this blog post for now. I have notes about what I don’t like about the whole job placement process and how broken I think it is. I could probably write a medium sized novel about the subject (and I could add enough humor from my own experiences to keep you in stitches) but I’ll try and condense it down to blog-post size. Some of what I have to rant about include code tests that provide no value, to multiple interviews and dragging out the process too long. I know what results these companies are getting and I can compare and contrast the difference between companies that get really good developers with companies that get really poor developers.

Leave a Reply