Opus helps you to find a job

Finding a job may be a time and energy-consuming task. Opus is a program written to help people to send their application more easily. It can be used to generate personalized cover letter. I began to write it several years ago and I took the time to enhance it with the aim to help other people.

During this experience, I got better at python programming, I learned graphical interfaces with pyQt and how to make a windows self extracting executable.

Opus is basically a "mass mailing system" based on templates. The user adapts his cover letter with keywords that are substituted with data coming from an excel file.

Opus is still in an early stage. User is responsible of its use and of the messages that are sent.


Opus is a opensource software. There is a self extracting executable availaible for windows but it is possible to use it from the sources.

Opus is written in python. It needs the following dependencies:

  • appdirs
  • lxml
  • xlrd
  • PyQt5

Just clone the git repository after installing the dependencies in a python virtualenv.

 git clone https://gitlab.com/jnanar/opus.git
 cd opus
 virtualenv venv
 source venv/bin/activate
 pip install .

You can test it with its demo data and configure it later (see section getting started).

 python3 opus.py

It is also possible to download the sources as a zip file on the repository.

Getting started

TLDR (windows): Download Opus for windows and launch it. See the generated files in directory %temp%\opus\data\sent. Edit %temp%\opus\data\list.example.xlsx, generate the letters and see what happens.

sha256sum opus_win_1.0.1.exe 
9d94f1fc41d4dc26632a0dce13120c68b4454d390f4eb59bebe1f350bb048d89  opus_win_1.0.1.exe
  1. Download Opus start pack which contains a sample configuration file and templates.
  2. Rename the configuration file to opus.ini and personalize it. (see section Configuration).
  3. Edit or copy the repository (data/list.example.xlsx) with Libreoffice or Excel. (see Repository edition)
  4. Personalize the cover letters. Two templates are available: spontaneous application and application for an offer. (see Letters edition)
  5. Launch Opus. Two interfaces are available: CLI (in french) and a GUI. (see Interfaces). I will assume that you use the graphical interface.
  6. You can configure Opus by editing the settings. The best idea is to select the configuration file of the Opus start pack and rename the templates. You can link your own templates in the 'file' section. Once you are ready, generate the letters.
  7. The files are generated in the output directory (see Configuration).
  8. Once you have edited the letters and the mails (remove the bold texted that was substituted), you can convert it to PDF. If Libreoffice 5 is installed, Opus can convert all the document at once. if not, you can convert the .docx to PDF with Word.
  9. You may now send the mail. A copy is sent to your adress. Once the mails are sent, you must edit the first column of the repository (xlsx file). Only empty first cells allows the generation of the letters.This prevent to sent multiple times the same application. I strongly advise to move the generated documents in another folder. It will help you to keep in mind what you have already sent.

I strongly suggest to sent the first letters to your email in order to see what the recruter will get.


Two interfaces are available: cli and gui. The launch opus.py with option -i or --interface to select it. By default the graphical interface is chosen.

Graphical interface(GUI)

Opus Gui: Cover letter generation Opus Gui: Settings Opus Gui: About

Command line interface (CLI)

This interace is usefull but it is only avaible in french for now.

Opus Cli


The ini file has 3 sections.

Personal information

  • Your full name
  • The subject of mails for spontaneous applications
  • the subject of mails when responding to offers
  • Your lang (EN).

The files

  • Templates of letters
  • Your CV (PDF file)
  • The repository (data/list.example.xlsx by default),
  • emails templates
  • output directory (/data/sent/ by default)

Send emails

You need to configure the smtp options in order to be able to send emails. These parameters depends on your email provider (eg gmail, hotmail, etc)

The parameters are:

  • smtp server address
  • user name
  • password (clear text in the ini file).
  • port number.

If one of those parameters do not need to be set, just indicate None. The following example show a server that does not need authentication:

server = example.com
user = None
password = None
port = 25

Repository edition

Each line of the xlsx file corresponds to an application. The information of each column are processed and used in the cover letter and the email. The editable fields are:

  1. sent indicate something if the application must not be sent. For example if you already sent the email to this company.
  2. company: company name
  3. sector
  4. nom: if you sent the application to a person whose name is known.
  5. gender: the gender of the recipient (Sir, madam, Sir or madam)
  6. interest: your interest for the company
  7. offer: the offer reference
  8. subject: the reference of the offer to put in the subject mail.
  9. email: the email recipient
  10. language: lang: EN or FR
  11. web, telephone, number, information: complementary useful information. These data are not used yet.

Edition of the cover letters

Several fields are available

  • TIME: the date of the day
  • GENDER: the gender of the recipient (Sir, madam, Sir or madam)
  • INTEREST: your interest for the company
  • COMPANY: company name
  • SECTOR: the sector of the company
  • OFFER: the reference of the offer.

The same fields are usable in the emails.

Help !

  • The log is located in %temp%\opus\opus.log on windows (exe file) and in the main directory otherwise.
  • You can contact me, I will try my best to help users.

About the Windows program

The following configuration file was used:

;Config file generated by 7z SFX Builder v2.1.)


Good luck !