Category Archives: Mail System

Recruitment System – One of my projects

I wanted to post this since a while.

The recruitment system is one of the applications I built for cha-international while working there beside developing the Middle East & North Africa travel awards system, mail marketing system, and converting all their servers from windows to Linux.

In brief the system has the following features :

  • Backend :
  1. Managing countries, Nationalities, Languages, World Areas, System Announcements.
  2. Managing Education Levels, Industries, Titles, Departments, System Reply Messages, Candidate Status, Candidates Classifications, and Quotes.
  3. Testimonials section where the company can post its clients testimonials to be displayed in the frontend.
  4. Managing 2 types of resumes : Uploaded Attachments, and Detailed filled forms Resumes.
  5. Easy form for the data entry team to add the resumes from the backend.
  6. Searching for candidates, using simple forms like name, email or advanced one which contains name, different nationalities, different languages, age, sex, industry, title, keyword in resume, etc.
  7. Consultants area where they can post / close job posting, search  for candidates, export word version of resumes, add to their favorite list, recommend them to another consultant.
  8. Consultants also can comment on the resumes, change their availability status to be seen by other consultants, and communicate with the candidate through the reply messages and keep track of those sent messages.
  9. The system has a approval workflow engine, the admins have to check the resume to approve it first.
  10. The system has a privileges section where the administrator can create a new role, assign access to certain areas in the backend to certain role, and assign the roles to system users.
  11. Feedback system where the backend users can communicate with the administrator for support tickets, etc.
  12. Auditrail system where every action in the system is logged.
  • Frontend:
  1. Simple upload form where users can just upload their resume and simple details.
  2. Advanced profile form where users can fill in all the details, and add many attachments to their profiles.
  3. Listing, Simple search, advanced search for jobs, and applying to them.
  4. Clients area where they can request certain services.
  5. Featured profiles, where a certain profiles selected by the admins showed in frontend.

The project was completely built from scratch using Zend Framework, and right now it has more than 70,000 applicant in its database, and the system is as fast as you see in the videos, these demos were taken with 50,000 record in the database.

Please don’t give me any feedback on the design ;), I am just a developer.

Here is some videos describing the different features of the system, I will try to post a better quality ones later.

 

Change your Signature

[youtube=http://www.youtube.com/watch?v=KXMg4q43Vf0]

 


Search Resumes

[youtube=http://www.youtube.com/watch?v=UUCuQ3XZmHg]

 


Apply as New Candidate

[youtube=http://www.youtube.com/watch?v=UNMVIahQAeU]

 


Send Feedback to support

[youtube=http://www.youtube.com/watch?v=-QiwYphCi2k]

 


Consultant Functionality walk through

[youtube=http://www.youtube.com/watch?v=wU6MDYO-xsw]

 


Check who applied for your job

[youtube=http://www.youtube.com/watch?v=X7_ZNVjksKg]

 


Apply for Posted Job

[youtube=http://www.youtube.com/watch?v=B06xlZr8A-w]

 

Mail System @ Office is back 2 life again.

Recently we had this problem in the company, our mails doesn’t reach some of the recipients,

after analyzing the situation, i discovered that we have 2 problems :

1- Our forward and reverse DNS doesn’t match

check the error from DnsStuff.com when i test the reverse DNS on our mail server :

Location: Egypt (high) [City: Cairo, Al Qahirah]Preparation:The  reverse DNS entry for an IP is found by reversing the IP, adding it to "in-addr.arpa", and looking up the PTR record.So, the reverse DNS entry for 217.52.xx.xxx is found by looking up the PTR record forxxx.xx.52.217.in-addr.arpa.

All DNS requests start by asking the root servers, and they let us know what to do next.

See How Reverse DNS Lookups Work for more information.

How I am searching:

Asking g.root-servers.net for xxx.xx.52.217.in-addr.arpa PTR record:

g.root-servers.net says to go to sec1.apnic.net. (zone: 217.in-addr.arpa.)

Asking sec1.apnic.net. for xxx.xx.52.217.in-addr.arpa PTR record:

sec1.apnic.net [202.12.xx.xx] says to go to ns2.xxxx-online.net. (zone: 52.217.in-addr.arpa.)

Asking ns2.nile-online.net. for xxx.xx.52.217.in-addr.arpa PTR record:  Reports mail.xxx-xxxxxxxxxxxxx.com. [from 62.140.73.2]

Answer:

217.52.xx.xxx PTR record: mail.xxx-xxxxxxxxxxxxx.com. [TTL 86400s] [A=CNAME] *ERROR* A record for mail.xxx-xxxxxxxxxxxxx.com. does not point back to original IP.  RFC1912 2.1 disallows CNAMEs.

To see the reverse DNS traversal, to make sure that all DNS servers are reporting the correct results, you can Click Here.

2- We don’t have any reference for the server in the office that we use to send direct emails in the MX Records of our domain, which makes some server doesn’t trust our emails.

Check the headers of emails from gmail when we had the problem :

Received-SPF: neutral (google.com: 217.52.xx.xxx is neither permitted nor denied by best guess record for domain of ahmed@xxx-xxxxxxxxxxxx.com) client-ip=217.52.xx.xxx;Authentication-Results: mx.google.com; spf=neutral (google.com: 217.52.xx.xxx is neither permitted nor denied by best guess record for domain of ahmed@xxx-xxxxxxxxxxxx.com) smtp.mail=ahmed@xxx-xxxxxxxxxxxx.com

I solved the 2 problems by following the next steps:

1- Created A record mailer1.xxx-xxxxxxxxxxxx.com to point to our mail server IP 217.52.xx.xxx

2- Created MX record for the A record previously created.

3- Contacted our ISP to change the reverse DNS / PTR to reply with mailer1.xxx-xxxxxxxxxxxx.com for any reverse lookup.

Now after 24 hours everything seems working perfectly,

check the reverse lockup results from DnsStuff.com :

Location: Egypt (high) [City: Cairo, Al Qahirah]

Preparation:
The  reverse DNS entry for an IP is found by reversing the IP, adding it to "in-addr.arpa", and looking up the PTR record.
So, the reverse DNS entry for 217.52.xx.xxx is found by looking up the PTR record for
 xxx.xx.52.217.in-addr.arpa.
All DNS requests start by asking the root servers, and they let us know what to do next.
See How Reverse DNS Lookups Work for more information.

How I am searching:
Asking i.root-servers.net for xxx.xx.52.217.in-addr.arpa PTR record:
       i.root-servers.net says to go to ns3.nic.fr. (zone: 217.in-addr.arpa.)
Asking ns3.nic.fr. for xxx.xx.52.217.in-addr.arpa PTR record:
       ns3.nic.fr [192.134.x.xx] says to go to ns2.nile-online.net. (zone: 52.217.in-addr.arpa.)
Asking ns2.nile-online.net. for xxx.xx.52.217.in-addr.arpa PTR record:  Reports mailer1.xxx-xxxxxxxxxxxx.com. [from 62.140.xx.x]

Answer:
217.52.31.189 PTR record: mailer1.cha-international.com. [TTL 86400s] [A=217.52.xx.xxx]

and the headers of our emails from gmail.

Received-SPF: pass (google.com: best guess record for domain of ahmed@xxx-xxxxxxxxxxxx.com designates 217.52.xx.xxx as permitted sender) client-ip=217.52.xx.xxx;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of ahmed@xxx-xxxxxxxxxxxx.com designates 217.52.xx.xxx as permitted sender) smtp.mail=ahmed@xxx-xxxxxxxxxxxx.com

I hope this would be useful for you as it was for me, have a nice mail 😉