Author image Michael Aquilina


WWW::Indeed - Perl interface to the web service


  use WWW::Indeed;

  my $indeed = WWW::Indeed->new(api_key => 'YOUR API KEY HERE');

  my @postings = $indeed->get_postings(
      'Project Manager',
      location => 'New York, NY',
      sort     => 'date',
      limit    => 25,
      days     => 14,
      filter   => 1,

  for my $posting (@postings) {
      print "$posting->{title} at $posting->{company} - $posting->{url}\n";

  print "Used " . $indeed->api_calls_used . " API calls";


This module provides an object-oriented Perl interface to the web service.


$self->get_postings('Project Manager', limit => 10)

Given a query, returns job posting that match that query.

Along with the query, takes the following parameters as a hash:

  • limit

    The number of postings that will be returned. Please note that the Indeed API has a built-in limit of 20 postings per request, so requests for more than 20 will result in multiple API calls.

    Defaults to 20.

  • location

    The location where the job postings should be located. Use a postal/ZIP code or a city and state for best results.

  • sort

    What the results should be sorted by - one of 'relevance' or 'date'.

    Defaults to 'date'.

  • offset

    The offset to begin searching from in the results. Chances are, you won't need to use this parameter.

  • days

    The limit (in days) on the age of postings. Must be no greater than 30.

    Defaults to 30.

  • filter

    Whether or not to filter out duplicate postings.

    Defaults to 0.


Returns the number of API calls used for this particular object.

$self->api_call(param1 => 'foo', param2 => 'bar')

Submits an API call to the Indeed API using the passed paramters, parses the response, and returns it as a Perl data structure. It shouldn't be necessary to use this method directly.


LWP::UserAgent, XML::Simple


In cases where the specified limit is above Indeed's maximum, one API call is used solely to determine the number of records available in the search. This should be optimized.


The author of this module is not affiliated in any way with Users must follow the API TOS (see when using this module.


Copyright (C) 2010 Michael Aquilina. All rights reserved.

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Michael Aquilina,