{"id":13507376,"url":"https://github.com/tsurupin/job_search","last_synced_at":"2025-03-30T08:30:29.999Z","repository":{"id":215174511,"uuid":"77706369","full_name":"tsurupin/job_search","owner":"tsurupin","description":"An app to search startup jobs scraped from websites written in Elixir, Phoenix, React and styled-components. ","archived":false,"fork":false,"pushed_at":"2017-05-22T04:03:21.000Z","size":16456,"stargazers_count":96,"open_issues_count":1,"forks_count":17,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-04-22T13:33:17.263Z","etag":null,"topics":["elasticsearch","elixir","otp","phoenix","react","redux","scraping","styled-components"],"latest_commit_sha":null,"homepage":"http://demo.job-search.tsurupin.com/","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsurupin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-12-30T19:33:25.000Z","updated_at":"2023-10-04T22:31:48.000Z","dependencies_parsed_at":"2024-01-07T21:54:44.356Z","dependency_job_id":null,"html_url":"https://github.com/tsurupin/job_search","commit_stats":null,"previous_names":["tsurupin/job_search"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsurupin%2Fjob_search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsurupin%2Fjob_search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsurupin%2Fjob_search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsurupin%2Fjob_search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsurupin","download_url":"https://codeload.github.com/tsurupin/job_search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246296325,"owners_count":20754623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elasticsearch","elixir","otp","phoenix","react","redux","scraping","styled-components"],"created_at":"2024-08-01T02:00:32.488Z","updated_at":"2025-03-30T08:30:28.999Z","avatar_url":"https://github.com/tsurupin.png","language":"Elixir","funding_links":[],"categories":["Applications"],"sub_categories":[],"readme":"[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/tsurupin/job_search/blob/master/LICENSE)\n[![Deps Status](https://beta.hexfaktor.org/badge/all/github/tsurupin/job_search.svg)](https://beta.hexfaktor.org/github/tsurupin/job_search)\n\n# [Startup Job](http://demo.job-search.tsurupin.com/)\n\n\n**Startup Job** is a sample project to search startup jobs scraped from various websites written in [Elixir](http://elixir-lang.org/)/[Phoenix](http://www.phoenixframework.org/)(Backend) and [React](https://facebook.github.io/react/)/[Redux](http://redux.js.org/)(Frontend).\n \nThis project is an umbrella project.\n - Customer app is for processing data and rendering contents. \n - Scraper app is for scraping data from websites.\n \n\nDemo\n-------\n[http://demo.job-search.tsurupin.com/](ttp://demo.job-search.tsurupin.com/)\n\n![](https://cloud.githubusercontent.com/assets/1782169/26284819/c05013f8-3df8-11e7-908b-3907c284aa92.gif)\n\nMotivation\n-------\nI created this app to understand Elixir/OTP and get more familliar with React.\n\nMain Technology Stack\n-------\n* React\n* Redux\n* Elixir\n* Phoenix\n* Elasticsearch\n* [styled-components](https://styled-components.com/)\n\n\nRequirements\n-------\n- Elixir 1.4+\n- Phoenix 1.3+\n- Node 7.0+\n- PostgreSQL 9.4+\n- Elasticsearch\n\n\nDevelopment\n--------\n\n### Setup\n1. Get the repo.\n\n        % git clone git@github.com:tsurupin/job_search.git\n        \n2. Install Elasticsearch in local environment.\n\n   [Mac OS](https://chartio.com/resources/tutorials/how-to-install-elasticsearch-on-mac-os-x/)\n\n3. Change username and password of PostgreSQL \n\n       % vi apps/customer/config/dev.exs\n        \n3. Setup your environment.\n\n        % cd apps/customer\n        % mix deps.get\n        % mix ecto.setup\n        % cd assets\n        % npm install \n        \n        \n4. Scrape data \n\n        % cd ../../scraper         \n        % mix deps.get \n        % iex -S mix\n        % Scraper.Site.Accel.Show.perform(\"http://google/com\", \"Test\", \"Software engineer\", \"San Francisco, CA, US\", :test)\n        % Scraper.Site.A16z.Show.perform(\"http://google/com\", \"Sample\", \"Senior software engineer\", \"Seattle, WA, US\", :test)\n        % Scraper.Site.Sequoia.Show.perform(\"http://google/com\", :test)\n        % Customer.Builder.EsReindex.perform  \n        \n5. Create a new OAuth account([URL](https://console.developers.google.com/apis/credentials)) (Optional. Google OAuth account is needed to login and logout)\n\n        1. Click `Create credentials` and Choose OAuth client ID\n        2. Select Web Application and Set Authorizedredirect URIs as `http://localhost:4000/auth/google/callback`\n        3. Set Client ID, Client secret and Authorized redirect URI of your OAuth account in apps/customer/config/dev.exs\n        \n        \n6. Run customer application.\n\n        % cd ../customer\n        % mix phx.server\n\n7. Verify that the app is up and running.\n\n        % open http://localhost:4000\n\nTodo\n-------\n 1. Make Selenium work in background in server.\n 2. Enable users to download their favorite jobs in csv.\n 3. Synchronize favorite jobs with Google Sheets.\n\n\nLicense\n-------\n The project is available as open source under the terms of the MIT License.\n\n\nTroubleshooting\n-------\n Please create an [issue](https://github.com/tsurupin/job_search/issues).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsurupin%2Fjob_search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsurupin%2Fjob_search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsurupin%2Fjob_search/lists"}