Apply To All Jobs on AngelList

TL;DR: Copy and Paste this code snippet into AngelList Jobs page to apply to all jobs.

$('a.interested-button').each(function(_, button) {$(button).click()})

AngelList is a useful resource for startups, investors, and individuals looking for startup jobs. For this post, I fall into the latter category. As part of my recent job search, I perused the jobs section of AngelList, and I even expressed that I was interested in a few startups. As I went through this job search process, I asked if there was an easier way to go about this.

AngelList Jobs

My solution was to apply to all the jobs within a given search. The first thing I noticed was that a user must click on an “Yes, I’m interested” button. When I examined the source code closer within Google Chrome’s Inspector, I realized that the “Yes, I’m Interested” buttons had a class of .interested-button and that each startup item had its own button already rendered to the page.

interested-button

The actual solution took only one line of jQuery to implement:

$('a.interested-button').each(function(_, button) {$(button).click()})

The End You scroll to the bottom until you have all the search results loaded onto the page and you see “The End”

Apply all using the script in the console

Apply script with the console

Expressed Interest Now you’ve successfully applied to all the jobs within a given AngelList jobs search by pasting the above snippet into the console.

One Catch Add note to show interest There is one catch however. You will not be able to apply to jobs that require a note as part of you showing your interest in the job. For a bulk apply all, this seems like a small problem. Pareto’s Principle applies here.

This being said, I do believe that a more targeted approach to job searching is more effective. A strategy where you find a handful of companies you are interested and you express interest via a warm connection or at the very least a direct email to someone within the organization with hiring authorization. You could use a tool like DirectContact to find these individuals’ email addresses

A Fix In case someone at AngelList is reading this, here is one possible solution to prevent this script from working in the future. Instead of POSTing a user is interested directly from an .interested-button click, require a user to have opened the startup job description. This way a boolean variable must be toggled before an interest is POSTed.

My modeling/acting career in the Philippines

Want to fast-track your modeling career in the Philippines? Start your modeling and acting career in the Philippines. Click Here to Join The Program Be Discovered.

I’m writing this on the flight back from my three months endeavor to become a model/actor in the Philippines. Here I want to write about my experience.

For the longest time, my brother and I have heard from other Filipino family and friends that we were good looking and that we could become ‘Sikat’, popular. We would hear, “If you went back to the Philippines, then you could become ‘artista'”, or an actor. For the most part we appreciated the compliment but left it at that for many years. It wasn’t until I was not attending school and I was considering interesting experiences I wanted to try, did I finally decide to take the leap and try to become an actor in the Philippines.

The conversation with my mom started with me telling her my plans to return to college in the Fall after taking a year off after my sophomore year. This was around the end of May and during the Summer months of the Philippines. She was planning to go to the Philippines anyways for my Grandmother’s 70th birthday, so she asked me if I wanted to go. Lastly, off the cuff and casually she suggested that could also try becoming an actor while we’re there and she would help.

When such suggestions are made I typically ask myself, “Why not?” I’ve been told that I could make it for a good part of my life. I had nothing locking me down to being in the States until school starts in September. It sounded like an unique experience to say the least. Best to take chances and risks while you’re young and without too much responsibility. All of these thoughts eventually brought me to say yes.

May 24, 2014, I arrived at Ninoy Aquino International Airport. The week I arrived consisted of seeing family and hanging out with the family. While we were catching up with family, my mom and I talked about how I came to the Philippines to try to become a model/actor. Once they knew, they supportively told me about people and places I should talk and go to. An uncle I only just met, though I was told otherwise, told me co-founded a talent agency in the Philippines and knew a lot about the entertainment industry. He gave me a few contacts I should try to get in contact with.

The contact’s name was Patricia AKA ‘Pat’. My uncle describe her as a socialite. She supposedly hanged out with people in the industry and could provide introductions. We started messaging, and she asked for a “set card”. I had to good what a set card was and create one in Photoshop. [SET CARD]

We tried to setup a lunch with one of her director friends, but the scheduling didn’t work out. Despite her being quite responsive and promising via messages, nothing really came from talking to her. A dead end.

At the same time I was messaging Pat, I followed up with a someone my aunt knew. This person, Jane, knew talent agencies in Manila and even had her daughter in appear a few times on TV and in print ads. She was willing to bring us around and show us the agencies to register at. These agencies included Discovery and ModelShop. Discovery ended up being another dead end, but ModelShop ended up being one of the three agencies that messaged me the most with new castings.

When my mom, Jane, and I arrived at ModelShop we got out of the elevator around the 30th floor of a tall building right in the middle of hot and humid Makati. I had a white t-shirt on, but a yellow sweater in my hand. This was my first time visiting an agency, so I nervously rushed to the the bathroom to change before anyone saw me in my street clothes. I really had nothing to worry about since I eventually realized this agency wasn’t as good as Jane brought me to believe. Nonetheless, I got dressed and filled out the necessary paper work to register my contact info and bio data. Then I was off to the shooting room for my first VTR, Video Tape Recording.

The VTR is the most fundamental thing every talent has to do for each casting. It is the only thing they really judge you own to begin with. So what is a VTR? [VTR VIDEO]

Please follow the following: 1. Your name, age, and height? 2. Any previous commercials or acting experience? 3. Any sports or hobbies? 4. Please turn to the right, turn towards the camera, and smile. 5. Please turn to the left, turn towards the camera, and smile. 6. Face front 7. Facial expressions. Please make the facial expression for each word I say while saying “Yes” 1. Happy 2. Sad 3. Surprised 4. Scared 5. Thinking 6. Worried 7. Super Happy 8. Thank you.

This whole process typically takes less than a minute to complete depending if the caster has extra things for you to do, in which case it is a good sign that they might like you. When I said this is the fundamental thing you’d do for castings, I meant it. You don’t only do this for filings agencies but for every single casting you’d do.

Some VTRs or Go-Sees vary on what they want you to do. Sometimes there’s fun and memorable VTRs. I remember one where you had to pretend that the camera was your crush and you needed to do cute things towards the camera. Another casting had me drink coffee with an expression of it tasting great. I specifically remember this one because the room was so cold. It was serious cold. I think they actually put the air conditioning on the highest they could in order to have all the talents actually cold for when it was their turn to drink the coffee. I felt sorry for the girls in their dresses.

I am not sure how I got this far into this post and I haven’t mentioned the girls. As you can imagine the girls you’d see at VTRs are attractive. Even though we were in the Philippines, there were some from Brazil, France, and other parts of the world. I joked with my brother that if I wanted to find an attractive girlfriend, then I knew were to go. Although my type isn’t Filipinas, I actually found a few I was attracted to. This all being said, after being surround by attractive people for a while, it becomes the norm. Not to say the girls were less attractive, but the effect you get lessens.

After doing a filing with ModelShop, I also filed with Reco and Monaco. These three were the agencies that I got casting texts from the most frequently. The way you find out about castings was through text messages. You would just wait for a text with a time, place, and any special requirements like type of clothing. The interval between VTRs spanned somewhere between a day and a week or so. I’ve had it where there were multiple VTRs in a day that took up the whole day.

The VTRs take up the whole day because of the waiting. For anyone interested in doing the model/acting route, I definitely recommend going earlier. If the text says you have a VTR between 1pm – 5pm, then get there a little before 1pm. Not only would you get done quicker, but it also has the effect of you staying in the mind of a caster longer. [Reference to casting tips about getting there early]

The combination of both the wait and the doing the same exact VTR was so annoying I actually consider creating a SaaS, Software as a Service, online web app to streamline the whole process for both the talents going to the castings and the casters selecting which talents they want in the commercial. This is one of those startup ideas I wish was out in the world but not so much that I want to actually build it, thus I’m writing it here for anyone to execute on. You’re welcome.

The core inefficiency in the casting of talents for commercials etc are the agencies. The agencies receives 30% of the the project’s payment for representing a talent. The agencies justifies this 30% because of their overhead in finding more opportunities for their talents. Since I did not sign a contract with any agency, although I was offered two contracts with one including a free gym membership at Gold’s Gym, I was technically a freelancer for three modeling agencies. Sometimes the agencies would send the same exact message with the same details on when and where to go. The only difference would be the name they attached to the bottom. So obviously they all had similar sources but wanted to “brand” the message so they get the proper credit for when a talent is selected. If only a talent had access to these “White-label” castings, then a talent would not need to share that 30%. Aside from finding opportunities for a talent, an agency can also help with career advice. This advice would have some bias of course.

Another inefficiency I alluded to earlier was the wait and the VTR itself. Depending on how many other people are also there and how early you get to the venue, the typical wait can be anywhere from 30 minutes to as much as 5 hours… After the wait you’d be asked to do the same exact thing you are always asked to. There are exceptions, but the base VTR stays the same. The way to solve this is to have each talent have a profile page with a video doing the normal VTR. It’s really that simple. The internet has had profile pages since the day of Myspace.

After you create a profile page, you open up models/talents to be messaged with more opportunities directly. That means the talents get more of the project’s fees and spend less time waiting to do something repetitive. The casters benefit by having a larger pool of talents to pull from and at lower overhead. This has the potential to even lower how much a project’s budget is as well. Of course you can’t just allow any person on the internet message these people, there should be some sort of verification that the person/organization indeed has an real opportunity for work and is real.

This type of web app should sound familiar. It’s a marketplace. Like all marketplaces you have the chicken and the egg problem. Which side should you focus on? I would suggest focusing on the models as they are open to more work and a larger cut of the project’s budget. The companies and faster searching are fewer but are more frequent in their search for talent. The business model could be priority listings, ads, or transaction fees. This marketplace tries to eliminate the middleman, the agency.

There you go a startup idea that anyone can take and run with. I would love to hear if anybody actually does work on this or even if someone has critiques to give. Feedback welcome.

Back to the story about my career as a model/actor. By mid-June my brother had joined me in the Philippines to also pursue this whim, this dream, this notion of becoming an “artists”. We both enrolled in singing and acting classes. Our 14 singing classes were taught at Ryan Cayabyab School of Music in Ortigas. Our month-long acting class was taught at Actor Studio East in Cubau.

Part two some time in the future…

Possible Email Ruby Gem

PossibleEmail Gem on GitHub PossibleEmail on RubyGems

This is a continuation of my projects relating to using the undocumented Rapportive API. My previous project, Find Anyone’s email: A Ruby script, was a popular project that spurred an issue on Github requesting the script to be written as a gem. After some work, here is the final product.

There were a few motivations in making this gem. When I first released the find-any-email script, I always thought of it as a proof-of-concept instead of the end all be all. Not only did it feel like a hack, but I thought about how easy and interesting it would be to integrate the functionality into a web app if the script was converted into a gem. Another motivation I had going into this project was to improve on my RSpec specification writing. I recently finished reading through the RSpec Book, and I wanted to practice writing specs for this project. If you actually take a look at the gem’s source code, then you might notice there are 75 tests for the gem. Those 75 tests were the result of going through TDD process of Red-Green-Refactor numerous times.

I’m interested to see how this gem would be used in other people’s projects. I was actually considering of creating a sort of SaaS product around the gem or an iPhone app. It seems that these types of email-mining things are of value to some people specifically sales and business people. I actually have something up that I built a few months ago, DirectContact, but I put it on the shelf at the moment. The ideas still seems to have value for people, so I might pick it back up after finishing another project. It gets a bit old thinking about a fairly simple idea after you’ve been thinking about it for awhile.

I would like to tip my hat to Jordan Wright for being a big inspiration for this gem after he wrote his python library Rapportive

CS139P Red and Black Playing Card Suits

I am currently going through Stanford’s CS139P iPhone Application Development Course for iOS 7. I came upon the problem of having my suits only showing black for diamonds, spades, hearts, and clubs.

I started to look at other repos on GitHub of the same project, and I saw I had the same exact thing as the working solution. I then tried to copy validSuits class method in PlayingCard.m directly into my own project, and that fixed it. The problem might have been with choosing the wrong special character from the special character panel. After some looking around in the various tabs, I found the correctly colored suits and I was able apply them again.

+ (NSArray *) validSuits
{
    return @[@"♦️", @"♠️", @"♣️", @"♥️"];
}

You can copy the above class method into the PlayingCard.m to have red and black Playing Card suits.

I tried searching online, but there were no solutions to this problem. Hopefully the search engines indexes this page for others running into the same problem.

When your Backbone JS View Events not Firing

This is a direct copy of this file on GitHub. I’m reproducing here because I think it is a great checklist that actually solved my problem when my view events were not firing.

I’ve been using backbone.js to > develop some javascript-heavy application recently.

I find it quite common for new comers to come into the following > problem: why ain’t my view events firing?

By “view events” I mean a events hash like the following in a > Backbone View class declaration.

class Mine.Views.TasksNew extends Backbone.View
  events:
    "click #preview_button":"parse"
    
  constructor:(options)->
    super(options)
    
  parse:(e)->
    alert 'clicked'

  ...

When your events are not firing, the following is a useful > checklist to go through.

  1. Maybe you have in the previous class declaration something like “el:\$(‘#myelement’)” and expecting the View to be bound to that specific element. But be cautious! The class declaration may be executed before the page is fully loaded. (This is common since I have seen most people put the class declaration before everything else). Please try to move “el:\$(‘#myelement’)” to the spot where you instantiate the View class and maybe the problem could be solved.

  2. Maybe your “el” is too restrictive. You should be know that the objects mentioned in the events hash are restricted inside the el element.

  3. Be aware of the order inside "click #preview_button":"parse"! It’s event followed by selector followed by handler. Did you reversed the order?

  4. Trace down the code using firebug,etc. The code of backbone.js is well readable.

This checklist incorporated the bad things that has happened to me > that makes my events not firing. Hope it helps you!

My specific problem was solved after hitting the second item on the checklist. “el” was too restrictive. I had el: '#posts', so my events were being restricted to within the #posts div. I changed the el to el: '#posts', and that solved my problem of the events not being fired. I’m sure this checklist would come in handy one day.

The difference between -> and => in CoffeeScript

I had this following code:

@collection.each (post) ->
  $(@el).append @template(post.attributes)
@

I was running in an issue where @el and @template were returning Uncaught TypeError: undefined is not a function. I even created a StackOverflow question about it.

I got the template to render by using jQuery directly like so,

$('#posts').append _template.( $('#home-post-template').html() ).

So this told me that the el or template was not within the scope of the each function. I remembered I was originally referencing one of Buzzstarter’s Backbone files and I had => instead of the -> I had now. Just trying things, I switched out -> for =>. Now it was working. Of course I couldn’t switch it out without understanding why it made a difference. So to the CoffeeScript documentation about the fat-arrow. It basically passes another function passing the outer context of this into an argument. This can be better illustrated with the conversion of CoffeeScript to normal Javascript

Old CoffeeScript

    @collection.each (post) ->
      $(@el).append(@template(post.attributes))
    @

Javascript Equivalent

    this.collection.each(function(post) {
      return $(this.el).append(this.template(post.attributes));
    });
    return this;

New CoffeeScript

    @collection.each (post) =>
      $(@el).append(@template(post.attributes))
    @

Javascript Equivalent

    this.collection.each((function(_this) {
      return function(post) {
        return $(_this.el).append(_this.template(post.attributes));
      };
    })(this));
    return this;

Once I saw the Javascript of the CoffeeScript with =>, it was painfully obvious what I was doing wrong and how => solved the problem. This error was due to my unfamiliarity to CoffeeScript, but Js2Coffee is quite useful in learning the differences.

New Appreciation for Programming

I recently started a new internship at Buzzstarter working with a team of experienced developers. One of the benefits of this internship is to view how good code is written. My first two weeks involved viewing their application’s source code and using similar techniques to build an introduction project.

A specific instance of seeing good code was when I saw a class method called enum.

  def self.enum(options)
    options.each do |attr, values|
      values_method = attr.to_s.pluralize

      class_eval <<-RUBY, __FILE__, __LINE__ + 1
        def self.#{values_method}
          #{values}
        end

        def #{attr}
          self.class.#{values_method}[read_attribute(:#{attr})]
        end

        def #{attr}=(value)
          idx = self.class.#{values_method}.index(value.to_sym)
          raise 'Enum not found' unless idx

          write_attribute(:#{attr}, idx)
        end
      RUBY
    end
  end

The method uses a bit of meta-programming, or at least that’s what I think this is doing, to write attributes to the database. The difference is that the values being written to the database are integer values instead of strings. As it was explained to me, this is a feature MySQL has, but PostgreSQL does not have. This allows for both reading and writing attributes to be quicker. You would then use the the enum method like so.

enum current_status: [:off, :on]

The enum method creates a getter and setter using the attribute current_status with the value being the index of the value within the values array passed in.

There are too many instances already where I’ve read some code and was left smiling about the new technique I just learnt. Not only does viewing the application’s source code show me how good code is written, but making the introduction project has me writing better code.

I am fortunate that I have one of the engineers reviewing my code via code reviews. During these code reviews, Radil, would comment on the specific lines with what I needed to change. I would make the necessary changes until I can create a branch with the feature working, then I would create another pull request. There are about ten parts to the project, but I am still only on the third part. I can already tell there is much more for me to learn.

TinyMCE, ActiveAdmin, and Rails 4

I was installing TinyMCE so I could have a WYSIWYG editor on a textarea within ActiveAdmin when I got the following error.

No route matches [GET] "/assets/tinymce/themes/advanced/theme.js"

I found the similar issue on the tinymce-rails gem’s docs. Losing TINY mce in dev when switching from 3.5.8 to 4.0.2 in Dev

The issue was caused by a change in TinyMCE’s theme. Apparently TinyMCE 4 replaced the ‘advanced’ theme with the ‘modern’ theme. Sure enough when I edited my active_admin.js.coffee CoffeeScript file to:

#= require active_admin/base
#= require tinymce
$(document).ready ->
  tinyMCE.init
    mode: "textareas"
    theme: "modern"
    editor_selector: "tinymce_editor"
  return

That solved the issue I was having. I followed along with this answer on StackOverflow to install tinyMCE to rails.

Start of Buzzstarter Internship

I just started my internship at Buzzstarter ‘Buzzstarter is the world’s first scalable programmatic content marketing platform.’ As a trial, I am currently interning part-time and remotely, but if everything goes well, then it would become more around next month. This is my first day meeting the team via Google Hangout, and I participated in my first Scrum. I’m being on-boarded right now, but I’m learning about their development process and philosophies.

I’m currently going through the intro project they have for new devs, and I’m enjoying building this small project. Its basically a blog application using all the gems they actually use on the real Buzzstarter project. One gem I especially find enjoyable is ActiveAdmin. This is my first time using the ActiveAdmin gem, and I’m really liking it. The one thing that surprised me was not having to explicitly define the resource’s controller. ActiveAdmin handles all that for us. I’m currently only on the second part of the project, but the project’s tasks are well defined and easily researchable.

Buzzstarter intro project on GitHub

Buzzstarter uses Agile development to develop software. Although I have heard of Agile development before, I have never used the methodology directly. Despite not being familiar with Agile directly, the basic concepts I read about in the Buzzstarter wiki about Agile showed that Agile has similarities to the concepts I’ve read about in Lean Startup. Things like: Embrace Failure, Deliver Smallest Product you can, Iterate Constantly, and Collect feedback. They’re straightforward concepts after being exposed to them before.

As part of the development process, we are using various tools to help with development. We use well known tools like Pivotal Tracker, Basecamp, and GitHub. We also use tools I have never heard of up until this point. Tools like Segment.io, Flowdock, Errbit. This is one of benefits I see in working with a team. I am able to be exposed to gems and services that I would not normally be exposed to.

I’ve installed the app on my local machine successfully, and I’m looking forward for the rest of this internship.