Before we get started, I need to say a few things.
- Use the tools you are familiar with. I'm going to describe everything in terms of Google's online office suite, but use what you want.
- It's not easy to get a job. Nothing worth doing ever is. But it will be worth it. Imagine working in a functional language at work!
- You should apply to way more jobs than you think you should. Aim high, center, and low on the desirability score. That will give you some realistic targets. You'll also some optimistic targets in case you get lucky. And you'll have pessimistic targets just in case.
- Good luck! Please let me know how things are going. You have my email. I'd love to help.
Create a Google Doc (wordprocessor document) and call it "Job Applications Common Text". This is where you'll be writing a bunch of text that is required for the applications. NOTE: Never type directly into an online form. There are so many problems with back buttons, etc, and the editors are not great. Plus, if you submit the form, you may never see that text again after spending lots of time on it. What a waste! Type everything into this common text document.
Create another Google Doc and call it "Job Applications Job Descriptions". This is where you're going to organize all of the information you need for each job. You might think you'll need a spreadsheet, but you'll quickly find that each job is different (so they don't fit into a table) and they all want lots of text (which won't fit into spreadsheet cells). So use a document with a new page for each job.
You'll also be customizing your resume for each job. You can do this in Google Doc by duplicating an existing resume, copying text from the common text document, and modifying it.
Start with your ten jobs that you've already found. For each one,
- Start a new page (insert page break)
- Add the job title and company name as a second-level header
- Add the link to the job listing under the header
- Go to the page and copy the job listing text into your document
- Highlight the technologies, languages, domain knowledge, and skills they are asking for
- Make third-level headers called "Skills I need" and "Skills I have"
- Make bullet lists under the headers and add the highlighted skills above under the header they belong to
Don't forget to include the "soft skills" like communication, teamwork, resourcefulness, etc.
Start with the skills you have. Find those stories that you wrote up a few days back. Add these to the common text document with appropriate headers. For instance, I might have a header "Increased customer retention by developing a REST API in Haskell". That's got a few things in it, including 1) Technology (Haskell, REST), 2) Skill (API development), 3) Business value (customer retention). You've got to have a header to make it easy to find because you'll have a lot of stuff in that document. By making it a header, it will show up in the automatically generated table of contents. You don't need to have much text underneath. You just need some bullet points for things you want to remind yourself about. Include facts and figures. These carry the most weight.
Start customizing the resume for each job according to the skill they need that you have. There will probably be skills you don't have. We'll use those later. Just focus on making the most of what you do have.
There are different types of applications out there. Some are online. Some are email. Some still want paper. You're going to have to adapt to whatever they want. But please read their application requirements because they often use the instructions as a way to weed out people who can't follow instructions. Make it easy for the person who is accepting your application to do their job, which is to hire you. But here's a trick: unless they say otherwise in the instructions, use every opportunity to highlight your value, especially those things that they are specifically asking for. If they want you to send an email, use the email as a way to sell yourself. If they ask you for a bio, don't just say "I live in New Orleans." Say "I'm from New Orleans and I've been programming for 15 years in a variety of languages. I know kung fu. I love learning new things, solving problems, and creating value for my employer. My friends and family rely on me as someone who keeps his word...." Let it flow.
Remember, it should get easier with each job you apply to, because you're saving the text in the common text document. Each application is like an investment to make the next one easier. After a few it should feel like a smooth machine.
In the section of the job application document, make a note of the date you applied.
That should not be the end of your application process. For each job in your document, make a third-level header called "People". Look up the company's "About us" page and find programmers and especially the CTO. Add their names to a bullet list under "People". Search on Google for their Twitter accounts. Find their email addresses (often on GitHub or their web pages). Find their GitHub projects. Are they part of those online communities you researched? Add all of this to the document. Follow them on Twitter + GitHub.
Your goal is to get their attention outside of the normal application process. Here are some ideas. But please don't limit yourself to these. Just be tactful with their time.
1. The Tweet reply
If you're active on Twitter and you've followed them, you might notice a tweet about a skill that you've noted from their job application. Reply to the tweet and get in the conversation.
2. The GitHub Pull Request
Many companies have open source projects that aren't widely used outside the company. Or the employees have side projects that relate to the technologies they are requesting for the job. Find these projects, fork them, and make small improvements. Do a good job on the formatting, the commit messages, and stick to their coding standards.
3. The blog bomb
Write a blog post talking about something you did related to one of the skills they are looking for. It could be something you did in the past (even digging up an old blog post) or something you do just for this. It could even be a way to learn one of the skills they're asking for. Write up the post and tweet them a link. Tell them you thought they'd be interested because they use it at work. You could also email them about it. Bonus points for using a library that they wrote.
4. The blog question
Read a blog post from the person. Find something of merit and tweet about it. Include the person in the tweet. Also, you could ask them about some point in there to start a discussion. Write them an email about it.
5. The book shot
Take one of the skills you don't have that they need. Buy a book on the subject. Take your picture with the book. Post it to Twitter and say why you're reading it--to get a job at the company. @mention the company and the person. @mention or #metion the technology as well.
Don't just apply to a job. You must follow up. Most businesses view hiring as a necessity, but the people in the business see it as a chore. Help them through the process if you can. Here are some ways to follow up without seeming needy.
1. The resume update
You know all of those skills that they needed that you didn't have? Well, learn some of them. Each time you learn one, add it to your resume and send another application. In your cover letter, tell them why you're applying again. Did you take a course? Read some books? Do a side project? Mention the details. "I am resubmitting my application. I wanted you to have my most up-to-date resume. I have taken an online course about applicative functors and contributed to the Haskell wiki about them. I am aware that you are looking for someone with expertise in that area. They have already cleaned up my code in three side projects, etc." Then you can ask what the status of your application is and when they would like to schedule an interview. Reiterate why you are interested in their company.
2. The side email
If you've been making contact with people in the organization through Twitter and email. send one of them an email about the status of your application and when you can expect an interview. You can also ask them about what it's like to work there. Mention that you've applied!
Eventually you will be called in for an interview. Use your notes and stories to refresh what they're looking for and how you can help. Before the interview, copy into a new google doc the section from the "job applications" document for that job, the stories about the skills they are looking for from the "common text", and also any correspondence you've had with them. Break it down into a one-page note sheet for yourself. Include all of the story headers, any points you'd like to remember to bring up, and any questions you have for them. Make some mention of the correspondence you've had with them. They might not make the connection between an email or a tweet and a person.
They will probably ask for references, so have those handy, too. Remember, the interview goes both ways. Evaluate them, ask them questions, be truly interested in what they do and how they do it. Be absolutely sure to learn when you can hear back from them.
Well, you can never do enough outreach. So go out and find more job listings and put them through this process.
So, yes, the job hunt is hard. You need all the help you can get. From developing side projects, to learning the deeper parts of functional programming, to understanding the practical side. I'd love to help you, like I've helped hundreds of others. Please sign up for a membership and let's get started.
More posts in the Career Guide
- Are there enough functional programming jobs?
- Where to find functional jobs
- Where do you find the time to get productive in functional programming?
- What do you really need to know to be hireable?
- The 5 hurdles of hirability
- 10 Programming projects to boost your resume
- Join and build a social network
- Job application action plan ← you are here
- How to leap past 90% of applicants