Executing a view programmatically with input filters I've created a View to search for suitable jobs. Along with View I want to give a "Subscribe" button for those who want matching jobs(if any) be delivered in their inbox daily. I want to save the input entered in the exposed filters and run the View at night in a batch for all those who have subscribed for jobs.

I will add a "Subscribe" button along with "Apply" in the Views form. So if any logged-in user selects the "Subscribe" button I want to: 1) Save the input of exposed filters; 2) Run this view every night and see if any new matches are found; 3) Email the user with new jobs found.

Is there any easy way to do it? Is there any module to help me?

I can use Views Saved Searches module to save current user selection of exposed filters.  This input could be fed when calling view programmatically.

Also two more useful links: Using Views Programmatically Drupalcamp &amp; get the result view creates.

EDIT:
I need someone to provide me practical in-use implementation that can save my time.
I don't think that you need to execute the view programmatically. Because it's meaningless. Views just fetches data from the tables which you show and display it, it's all it does.
I think you need to alter Exposed Filter form and add your additional submit callback which on submission writes the searched strings into your custom table. And then you can query those table (from which table views fetch data.) with saved string as condition..
All of this logic must be run on cron job..

EDIT:
I don't know this can help you or not, but here is a very poor example. Not very performance friendly :). OPTIMIZE IT.

function MY_MODULE_form_views_exposed_form_alter(&amp;$form, &amp;$form_state) {
   if ($form['#id'] == 'MY_EX_FORM_ID') {
      if(user_is_logged_in()) {
         $form['actions'] = array(
            '#type' =&gt; 'actions',
         );

         $form['actions']['submit'] = $form['submit'];
         $form['actions']['subscribe'] = array(
            '#type' =&gt; 'submit',
            '#value' =&gt; 'Subscribe',
            '#submit' =&gt; array('my_ex_form_subscribe_submit'),
         );
         unset($form['submit']);
      }
   }
}


function my_ex_form_subscribe_submit($form, &amp;$form_state) {
   global $user;
   $account = clone $user;

   $input_val = $form_state['values']['field_adv_price_first']['min']; //Find your input field value and change this..

   db_insert('MY_SUBSCRIBE_TABLE')
      -&gt;fields(array(
         'uid' =&gt; $account-&gt;uid,
         'email' =&gt; $account-&gt;init,
         'input_val' =&gt; $input_val,
      ))
      -&gt;execute();
}


function MY_MODULE_cron() {
   $subscribed_query = db_select('MY_SUBSCRIBE_TABLE', 'mst');
   $subscribed_query
      -&gt;fields('mst', array('uid', 'email', 'input_val'))
      -&gt;execute()
      -&gt;fetchAllAssoc('id'/* id - is the primary key of MY_SUBSCRIBE_TABLE */);


   // Supposing that your view is querying for the node table to fetch jobs, by title field
   if(!empty($subscribed_query)) {
      foreach($subscribed_query as $key =&gt; $val) {
         $nids = db_select('node', 'n')
            -&gt;fields('n', array('nid'))
            -&gt;condition('title', '%' . db_like($subscribed_query[$key]['input_val']) . '%', 'LIKE')
            -&gt;execute()
            -&gt;fetchCol();

         if(!empty($nids)) {
            foreach($nids as $nid) {
               $node_url = url('node/' . $nid, array('absolute' =&gt; TRUE));
               $template = 'New job is found in our site and blablabla... &lt;a href="'. $node_url . '"&gt;BLABLABLA&lt;/a&gt;';

               // Suppose that you are using SwiftMail library.. You can use drupal's mail system as well. It's up to you
               $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
                  -&gt;setUsername('MYGMAILUSERNAME')
                  -&gt;setPassword('MYGMAILPASS');

               $mailer = Swift_Mailer::newInstance($transport);

               $message = Swift_Message::newInstance()
                  -&gt;setFrom(array('no-reply@'.$_SERVER['SERVER_NAME'] =&gt; 'MY-SITE.com'))
                  -&gt;setTo(array($subscribed_query[$key]['email']))
                  -&gt;setBody($template, 'text/html');
               $mailer-&gt;send($message);
            }
         }
      }
   }
}