Moonlight updates
Moonlight updates
www.moonlightwork.com

New Job Match Indicator and Password Manager Integration

 

New

    

Improvement

  

We have recently made a couple of updates to Moonlight that improve the user experience:

  1. Enhanced Compatibility with Password Managers: We've made improvements to how Moonlight interacts with password managers. This enhancement simplifies the login and password reset processes, allowing you to gain more security benefits from your chosen password manager.
  2. New Job Match Counter: For developers, a new counter now indicates open Job matches directly. This feature aims to simplify identifying available opportunities, streamlining your search for the next great project.

image.png

These updates, though small, are steps towards improving your experience with Moonlight. We're eager to hear your thoughts and suggestions on these changes. Your feedback is invaluable as we continue to enhance Moonlight.

Improved Skill Selection Navigation

 

New

    

Improvement

  

In our ongoing efforts to make the Moonlight platform better, we've made a small update to the skill selection process. We had received a few comments from users that adding skills to profiles and job posts was a cumbersome process, so we have added keyboard navigation to make it easier. Now, developers can use their keyboard to navigate and select items from the skill list and hiring companies can do the same when writing job descriptions.

This enhancement is part of a series of incremental improvements we're rolling out as we continuously improve the platform.

We hope this update makes your interaction with Moonlight smoother and look forward to bringing more improvements your way.

image.png

Improved Hours Recording for Developers

 

New

 

Improvement

  

We made a couple of improvements to the way that developers log their hours each week:

  • It was previously possible to select a date earlier than the start date for the job, so this has been fixed.
  • If the arrows were used to increase or decrease the number in the 'Hours' box the changes were in units of 0.01, which made this control impractical. This has been changed to units of a quarter of an hour - 0.25. image.png

These are minor updates made as part of the ongoing improvements we are making to Moonlight!

New membership plans for hiring companies

 

New

 

 

With the acquisition of Moonlight by PullRequest, we have made some updates to how pricing and payments work on Moonlight.

What the changes mean for you:

  • Membership pricing: We have consolidated pricing to two simple plans - one for hiring contractors, and another for hiring contractors + employees. Sign in to review the plans.
  • No more invoice fees: There is no longer a markup added to in-app payments. Developers keep 100% of what you pay, and their name will show up on your credit card bill (instead of Moonlight).
  • Your active jobs: You'll still have ongoing access to any jobs where you already hired someone. The developer will need to agree to our new terms and re-connect Stripe to continue getting paid.
  • Update payment method: We switched to PullRequest's Stripe account, so you need to re-add any credit cards to pay invoices on Moonlight. Add payment methods here.
  • Updated terms: We've updated our terms of service and privacy policy.

Ready try it out? Join the membership 👉

Dismiss job matches

 

New

 

 

The #1 most-requested feature by developers is now live. You can dismiss matches on the jobs page that are not a good fit!

Dismissable job post

Dismiss jobs that you are not interested in, and they will be moved to the "inactive" page. That way, you can better track your active applications and new matches. If you change your mind, you can undo the dismissal from the "Inactive jobs" page.

In the future, we plan to improve and customize your matches based on the jobs you dismiss.

Share Moonlight job posts publicly

 

New

 

 

Today we are making it easier to share job posts on Moonlight. Now you can copy the link and share outside the Moonlight app!

How this helps companies hire:

  • Get more applicants applying to your job
  • Share job posts directly from your website, in an email, or on social media
  • Depend on Moonlight's vetting process for all candidates

For developers:

  • Invite people in your network to apply and get a referral bonus
  • Apply directly to Moonlight job posts you see online

Copy the share link on any active job post to share your job post!

tropicast.png

Web chat supports longer messages

 

Improvement

 

 

You can now send messages up to 40,000 characters in length through the Moonlight app. The limit used to be 1,000 characters.

Why were messages limited to 1,000 characters? We were validating inputs with regular expressions, and the Go standard library only supports pattern matching up to 1,000 characters.

Removing Embedly link enrichment from chat

 

Improvement

 

 

We're spending some time this week improving in-app chat! As a first small change, we're removing link enrichment. We used Embedly to show extra cards about links. But, we realized that the cards were taking up a lot of space, and making chat hard to use.

Before (with link enrichment):

Moonlight chat screenshot with link enrichment

Now (without link enrichment):

Moonlight chat screenshot without link enrichment

Fixes to file uploads

 

Fix

 

 

We've had some occasional bug reports that file uploads sometimes failed. Users would upload something like a profile photo, resume, or data file, and get this error when they went to view the file:

Screen Shot 2019-12-18 at 11.12.23 AM.png

It turned out that we were incorrectly URL encoding file names. The file was correctly uploaded, but we returned an incorrect URL to access the file!

Technical details

On the backend, we use Google Cloud's Signed URL feature to let users directly upload files to the cloud.

Here's how it works:

  1. Frontend makes a UserFileUploadRequest request with the name of the file and the MIME-type
  2. The backend returns two URLs: a ServingURL, which is the public link where the file can be accessed forever, and the UploadURL, which is a temporary, signed link where the file can be uploaded.
  3. The frontend uploads the file to UploadURL
  4. The file can be accessed at ServingURL

Moonlight's API would immediately URL-encode the file name, then generate the Serving and Upload URLs. As we analyzed what was happening, we realized that the Google Cloud API was already URL-encoding the name of the file. So, our code ended up double-encoding the file for the UploadURL, but only single-encoding the ServingURL. So, any filenames that contained URL-unsafe characters would fail. Whoops!

Recommended code for Signed URLs on Google Cloud

We deployed the below fix and added some tests.

Screen Shot 2019-12-19 at 8.53.05 AM.png

But wait, there's more!

When you upload a resume to Moonlight, we display it on your profile via the filename. We also updated this link tag component to URL-decode file names. So, links display better now 👍

decoding-label.png

add-resume.gif

Improved Job Matching

 

New

 

 

At Moonlight, we match companies and developers based on the intersection of their skills and experience. We are pushing live several improvements to make connections more relevant and effective.

Matching algorithm
We recently updated our matching algorithm to provide more relevant matches. You will see the improvements in our main app and in the weekly newsletter. We are already observing the matches based on this version of the algorithm with the intent to make ongoing improvements.

Weekly newsletter
We have trimmed down the amount of information in the Newsletter while ensuring that the matches you see are a better fit.

Sample developer job matches newsletter: developer-newsletter.png

Sample company candidate matches newsletter: company-newsletter.png

Make sure your skills and profile are up-to-date so that we can give you the best matches possible. Let us know how you like the newsletter enhancements!