Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
148 lines (144 sloc) 10.1 KB
<!DOCTYPE html>
<html>
<head>
<title>Fixing Craigslist - topdan.com</title>
<meta charset="UTF-8">
<meta name="description" content="Fixing Craigslist search by filtering posts, aggregating multiple searches, grouping together and emailing important posts.">
<meta name="author" content="Dan Cunning">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@itopdan">
<meta name="twitter:title" content="Fixing Craigslist">
<meta name="twitter:description" content="Fixing Craigslist search by filtering posts, aggregating multiple searches, grouping together and emailing important posts.">
<meta name="twitter:url" content="http://www.topdan.com/projects/fixing-craigslist.html">
<meta name="og:locale" content="en_US">
<meta name="og:type" content="article">
<meta name="og:url" content="http://www.topdan.com/projects/fixing-craigslist.html">
<meta name="og:title" content="Fixing Craigslist">
<meta name="og:description" content="Fixing Craigslist search by filtering posts, aggregating multiple searches, grouping together and emailing important posts.">
<link rel="shortcut icon" href="/assets/favicon-e45cdd6cc07e8858a985e6014e38a603.png">
<link rel="stylesheet" media="all" href="/assets/site-d30c732907c1f2982374b8bab9355d72.css"><!--[if lt IE 9]><script src='//html5shim.googlecode.com/svn/trunk/html5.js'></script><![endif]-->
<script type="text/javascript">
if (!document.cookie || document.cookie.indexOf('tracking_off') == -1) {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12957077-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
}
</script>
</head>
<body id="fixing-craigslist">
<div class="container bg-black full-width">
<div class="row navigation">
<a id="top"></a> <a href="/projects/private-photo-albums.html" class="previous"><span class="fa fa-arrow-left">&nbsp;</span> <span class="desktop">Private Photo Albums</span><span class="mobile">Previous</span></a> <a href="/projects/fantasy-sportsbook.html" class="next"><span class="desktop">Fantasy Sportsbook</span><span class="mobile">Next</span> <span class="fa fa-arrow-right">&nbsp;</span></a>
<p><a href="/"><span class="fa fa-home">&nbsp;</span></a> &nbsp;»&nbsp;<span class="title desktop"><a href="/projects/index.html">Projects</a></span><span class="mobile"><a href="/projects/index.html"><span class="fa fa-folder-open">&nbsp;</span></a></span></p>
</div>
<div class="row bg-white">
<div class="col-md-12">
<div class="width-640 ml-auto mr-auto">
<p class="mt-05e mb-15e ta-right c-ccc">Published by Dan on Apr 15, 2014</p>
<h1 class="center of-yh mb-1e"><a href="/projects/fixing-craigslist.html">Fixing Craigslist</a></h1>
<div class="alert b-ccc mb-0">
<p>Fixing Craigslist search by filtering posts, aggregating multiple searches, grouping together and emailing important posts.</p>
</div>
</div>
</div>
</div>
<div class="row bg-white">
<div class="col-md-12">
<div class="width-640 ml-auto mr-auto post">
<!-- post:content:start -->
<ul>
<li>
<a href="#introduction">Introduction</a>
</li>
<li>
<a href="#the-problem">The Problem</a>
</li>
<li>
<a href="#the-solution">The Solution</a>
</li>
<li>
<a href="#the-implementation">The Implementation</a>
</li>
<li>
<a href="#conclusion">Conclusion</a>
</li>
</ul>
<h2 id="introduction"><a href="#introduction">Introduction</a></h2>
<p>Craigslist is the best place to find houses and apartments rented by individual owners or small-time real estate agents, which tend to be the places I prefer. I create two or three Craigslist searches for the area and price range I'm looking for and use <a href="http://feedly.com">feedly.com</a> to follow new posts within them.</p>
<h2 id="the-problem"><a href="#the-problem">The Problem</a></h2>
<ol>
<li>
<p>About half of the posts are for the same large complexes. While they aren't technically "spam" since they are advertising different apartments inside the same complex, they are noise, and <strong>I do not want to see them</strong>.</p>
</li>
<li>
<p>Posters also know to include the names of popular areas even though they are no where near them by using the phrase "drivable to X", which adds a bunch of junk in my search results.</p>
</li>
<li>
<p>If I do not immediately respond to a post, I will likely never return to it, even if I bookmark it or flag it with feedly.</p>
</li>
<li>
<p>Searching is <strong>an active process</strong>: I need to visit craigslist or feedly.com. It doesn't fit into my routine during the weekends or evenings, when I'm less likely to be at my computer.</p>
</li>
</ol>
<h2 id="the-solution"><a href="#the-solution">The Solution</a></h2>
<ol>
<li>
<p>Allow me to filter posts. Does the title contain a certain phrase ("Roommate")? Does the body contain a certain property manager or phone number? Does it use that same photo I've seen dozens of times before? Does it have that same address or GPS coordinates? Let's remove all the posts I don't want to see anymore.</p>
</li>
<li>
<p>Allow me to filter posts that are outside of a certain area.</p>
</li>
<li>
<p>Allow me to "remember" posts and view all remembered posts in one page.</p>
</li>
<li>
<p>Send me an email with the most recent posts and remembered posts, so I can quickly review them without having to routinely visit a website.</p>
</li>
</ol>
<h2 id="the-implementation"><a href="#the-implementation">The Implementation</a></h2>
<h3 id="posts-view"><a href="#posts-view">Posts View</a></h3>
<p><img src="/assets/projects/fixing-craigslist/posts-b54095fcfad9159b28a5cd8c4dd08d62.png" alt="Posts View"></p>
<h3 id="post-view"><a href="#post-view">Single Post View</a></h3>
<p><img src="/assets/projects/fixing-craigslist/post-b68f6321d12e3a7f1fe157675e22e62e.png" alt="Single Post View"></p>
<h3 id="filter-rules"><a href="#filter-rules">Filter Rules</a></h3>
<p><img src="/assets/projects/fixing-craigslist/rules-3eac6130589542316791f5a4082d3206.png" alt="Filter Rules"></p>
<h3 id="email-update"><a href="#email-update">Email Update</a></h3>
<p><img src="/assets/projects/fixing-craigslist/email-f603435f3f60783bdb82d992ec31a72b.png" alt="Email Update"></p>
<h2 id="conclusion"><a href="#conclusion">Conclusion</a></h2>
<p>It should be general enough to apply to item-for-sale and job postings too, though I'm not sure if I'll open it up to other people, but it was worth a couple weekend afternoons of work to alleviate some of my pressure points of using Craigslist to find apartments.</p>
<p>Let me know if you think the Craigslist filtering/email application is useful for you, and I'll give you access.</p><!-- post:content:end -->
</div>
</div>
</div>
<div class="row navigation bb-ccc">
<a href="/projects/private-photo-albums.html" class="previous"><span class="fa fa-arrow-left">&nbsp;</span> <span class="desktop">Private Photo Albums</span><span class="mobile">Previous</span></a> <a href="/projects/fantasy-sportsbook.html" class="next"><span class="desktop">Fantasy Sportsbook</span><span class="mobile">Next</span> <span class="fa fa-arrow-right">&nbsp;</span></a>
<p><a href="/"><span class="fa fa-home">&nbsp;</span></a> &nbsp;»&nbsp;<span class="title desktop"><a href="/projects/index.html">Projects</a></span><span class="mobile"><a href="/projects/index.html"><span class="fa fa-folder-open">&nbsp;</span></a></span></p>
</div>
<div class="row introduction pb-2e bb-ccc mb-1e">
<div class="col-md-6 mt-2e center">
<h1 class="mt-0"><a title="Dan Cunning" class="fs-45 fw-normal shadow-silver" href="/">Dan Cunning</a></h1>
<p class="reference mt-05e"><a title="github" class="white" href="https://github.com/topdan"><span class="fa fa-github">&nbsp;</span> GitHub</a> <a title="Twitter" class="white" href="https://www.linkedin.com/in/dancunning"><span class="fa fa-linkedin-square">&nbsp;</span> LinkedIn</a> <a title="Email" class="white" href="mailto:dan@topdan.com"><span class="fa fa-envelope">&nbsp;</span> Email</a></p>
</div>
<div class="col-sm-offset-1 col-md-4 mt-2e">
<img width="75" height="75" class="img-circle fl-left mr-10" src="/assets/dan-79508ca0775ace507f1dc34d151bba0f.jpg" alt="Dan">
<p class="underline-links">I'm a <a href="/ruby-on-rails/index.html">Ruby on Rails</a> contractor from Atlanta GA, focusing on simplicity and usability through solid design. <a class="nowrap" href="/dan-cunning.html">Read more »</a></p>
</div>
</div>
<div class="row fs-12 mt-1e center">
<div class="col-md-6">
<p class="underline-links mb-1e">View Source: <a href="https://github.com/topdan/www/blob/master/projects/fixing-craigslist.html">HTML</a> | <a href="https://github.com/topdan/www/blob/master/projects/fixing-craigslist.json">JSON</a> | <a href="https://github.com/topdan/www/blob/master/projects/fixing-craigslist.html.md">View</a></p>
</div>
<div class="col-md-6">
<p class="mb-1e">© 2012-2019 Dan Cunning. All rights reserved.</p>
</div>
</div>
</div>
</body>
</html>