SEO: best way to deal with short lifetime URLs?

If you know before time when this page (job advert) will expire then consider including an unavailable_after META tag (or X-Robots-Tag HTTP response header) to inform search engines (ie. Google) before time:

<meta name="googlebot" content="unavailable_after: 30-Mar-2014 18:00:00 GMT">

Reference: Robots Exclusion Protocol: now with even more flexibility

For a "period of time" after the listing has expired I would go for a hybrid of all 3 of your options...

  • Show the job advert but make it clear that the position is closed. This is informative to users who have bookmarked the page.
  • Provide links to related jobs/pages and perhaps a prominent link to the main job listing page (since you mention that in #2). Providing useful information to the user and keeping their attention.
  • Return a 404 (or perhaps 410) HTTP Status Code (not the default 404 page). This will inform search engines not to index/return the page in search results. 404s are not harmful to ranking - they are a fact of the web.
  • There should be no links to this page on the website itself.

After the "period of time", remove the expired job advert and serve the default 404 page (which should contain relevant links to current job adverts).